Borland Delphi 7 IDE のステータス バーに時計などを表示するモジュールを作成する方法を知りたいです。
2 に答える
StatusBar にテキストを挿入するには、最初にパネルを挿入する必要があります。ステータスバーを選択し、「パネル」プロパティを見つけて (またはステータスバーをダブルクリックして)、「新規追加」をクリックします。その後、プロパティ「テキスト」でパネル内に必要なものを書き込むことができます (1 つまたは複数のパネルを挿入できます)。プログラムで行うには、次のようにします。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[0].Text := 'Today is: ' + FormatDateTime('dd/mm/yyyy hh:nn:ss', Now);
end;
OP から詳細な回答が得られなかったので、Delphi の編集ウィンドウのステータス バーにアクセスする方法を少しデモンストレーションして投稿します。邪魔なレイアウトのない新しい個別のステータス パネルを追加することに成功しなかったので、INS/OVR インジケーター パネルのテキストを変更するだけです。
免責事項: Delphi 7 がインストールされたマシンにはまだアクセスできないので、BDS ("Galileo") IDE でアクセスしました。ただし、違いは小さいはずです。主な違いは、編集ウィンドウを見つける方法にあると思います。
キー文字列は次のとおり'TEditWindow'
です。編集ウィンドウのクラス名、および編集ウィンドウが所有するコントロール名'StatusBar'
。TStatusBar
これらの文字列は、バージョン間で一貫しています。
{ helper func, see below }
function FindForm(const ClassName: string): TForm;
var
I: Integer;
begin
Result := nil;
for I := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[I].ClassName = ClassName then
begin
Result := Screen.Forms[I];
Break;
end;
end;
end;
procedure Init;
var
EditWindow: TForm;
StatusBar: TStatusBar;
StatusPanel: TStatusPanel;
begin
EditWindow := FindForm('TEditWindow');
Assert(Assigned(EditWindow), 'no edit window');
StatusBar := EditWindow.FindComponent('StatusBar') as TStatusBar;
(BorlandIDEServices as IOTAMessageServices).AddTitleMessage(Format('StatusBar.Panels.Count = %d', [StatusBar.Panels.Count]));
//StatusPanel := StatusBar.Panels.Add;
StatusPanel := StatusBar.Panels[2];
StatusPanel.Text := 'HAI!';
end;
initialization
Init;
finalization
// nothing to clean up yet
別のメモ:ご覧のとおり、私は Open Tools API を使用してデバッグ メッセージのみを出力し、IDE と対話するにはネイティブ VCL クラスを使用します。したがって、このコードはパッケージに含まれている必要があります。
上記のコードは、unit
に含まれるの関連部分ですpackage
。ToolsAPI
touses
句と他の適切な参照単位を追加することを忘れないでください(あなた次第です)。rtl
パッケージには, vcl
and designide
(重要!)が必要です。セクションからテストケースを直接実行するのでinitialization
、パッケージをインストールするだけでテストケースを実行して何らかの結果を得ることができます。