//unit1代码 uses unit2;procedure TForm1.Button1Click(Sender: TObject); begin with Tform2.Create(self) do begin ShowModal; free; end; end;//unit2代码 private FFirstShow: boolean;procedure TForm2.FormCreate(Sender: TObject); begin FFirstShow := true; end;procedure TForm2.FormActivate(Sender: TObject); begin if FFirstShow then begin ShowMessage('ok'); FFirstShow := false; end; end;
to newyj: 你只解决了“只做一次”,但没有解决在SHOW 出FORM之后再自动做事情这一点关键。
uses unit2;procedure TForm1.Button1Click(Sender: TObject);
begin
with Tform2.Create(self) do
begin
ShowModal;
free;
end;
end;//unit2代码
private
FFirstShow: boolean;procedure TForm2.FormCreate(Sender: TObject);
begin
FFirstShow := true;
end;procedure TForm2.FormActivate(Sender: TObject);
begin
if FFirstShow then
begin
ShowMessage('ok');
FFirstShow := false;
end;
end;
onactive
onshow
onpaint
这四钟方法都可以 执行优先级 自上而下 自己选一个吧
const wm_MYMsg= WM_USER+$1001;
然后再form的onshow事件中发送此消息到这个窗口。然后再这个消息处理函数中运行你的过程。对于修改了控件,而没有显示可能是由于你的过程运行太快,系统来不及刷新得缘故,凡是在修改控件属性的后面增加一条语句:update;强制刷新。