我想知道如何在Borland Delphi 7 IDE状态栏上编写模块来显示时钟或其他东西,因为我知道它可能但我无法找到!
答案 0 :(得分:2)
要在StatusBar中插入文本,您必须先插入一个面板。 只需选择您的状态栏,找到属性"面板" (或在状态栏上双击)并单击"添加新的"。 之后,您可以在属性" Text"中找到您想要的内容。 (您可以插入一个或多个面板)。 要以编程方式执行此操作,您可以执行以下操作:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[0].Text := 'Today is: ' + FormatDateTime('dd/mm/yyyy hh:nn:ss', Now);
end;
答案 1 :(得分:0)
由于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交互我确实使用Native VCL类。因此,此代码必须在包中。
上面的代码是unit
的相关部分,应该包含在package
中。不要忘记将ToolsAPI
添加到uses
子句以及其他适当的引用单位(由您决定)。
套餐应该需要rtl
,vcl
和designide
(重要!)。
由于我直接从initialization
部分运行测试用例,因此安装软件包足以让测试用例运行并产生一些结果。