我在Delphi 7的一个项目中工作,我对Delphi 7的语言或运行时不是特别熟悉。我正在尝试调试一个问题,其中一个窗体是可见的和绘制的,等等,但由于某些原因,OnShow事件没有被调用。在什么情况下会发生这种情况?我到底应该去哪里看?
发布于 2011-09-22 06:52:14
对我来说唯一有意义的解释是OnShow事件没有正确地连接到您的处理程序。签入对象检查器或.dfm表单。如果您使用代码进行连接,请确保您的连接足够早。
发布于 2011-09-22 17:06:02
在不调用OnShow事件的情况下,当窗体使用
ShowWindow(Form.Handle, SW_SHOW); 我在过去的一些项目中看到过这样的事情,这对Delphi来说真的是一个糟糕的想法。
发布于 2011-09-23 09:05:42
你应该在这里勾选
第一个OnShow()必须去掉。
type
TForm2 = class(TForm)
procedure FormShow(Sender: TObject); // <--- IM HERE!
private
{ Private declarations }
public
{ Public declarations }
end;其次..。
implementation
{$R *.dfm}
procedure TForm2.FormShow(Sender: TObject); <--- IM HERE!
begin
//this time will trigger
end;最后,您应该打开Dfm查找FormShow事件
object Form2: TForm2
Left = 0
Top = 0
Caption = 'Form2'
ClientHeight = 284
ClientWidth = 418
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnShow = FormShow <--- IM HERE! without this it will not trigger the OnFormShow
PixelsPerInch = 96
TextHeight = 13
end如果仍然不起作用,它可能会引用其他函数名OnShow = FormStart或wat函数名。
https://stackoverflow.com/questions/7507547
复制相似问题