以下代码有效!
with pagecontrol1 do
begin
case Myindex of
0: activepage := tabsheet1;
1: activepage := tabsheet2;
2: activepage := tabsheet3;
end;
end;
show;
以下代码不起作用
with pagecontrol1 do
begin
case Myindex of
0: activepage := tabsheet1;
1: activepage := tabsheet2;
2: activepage := tabsheet3;
end;
end;
showmodal;
如何解决这个问题?
答案 0 :(得分:0)
问题是当我在运行时创建一个新表单,并在使用showmodal之前设置活动页面时,该命令似乎被忽略,但是如果我将其显示为正常“show”则可行。
我为那些因使用postmessage而感兴趣的人做了一个解决方法,因此在显示模态表单后可以触发命令。
...
private
Procedure WM_UserPage(var Msg: TMessage); message WM_USER+1;
...
procedure TForm2.UserPage(var Msg: TMessage);
begin
with pagecontrol do
case Msg.LParam of
0: activepage := tabsheet1;
1: activepage := tabsheet2;
2: activepage := tabsheet3;
end;
end;
from my first form I call :
procedure TForm1.ShowPage(PageNumber: integer);
var
MyForm : TForm2;
begin
MyForm := TForm2.create(self);
with MyForm do
try
PostMessage(MyForm.Handle, WM_USER+1, 0, PageNumber);
showmodal;
finally
FreeAndNil(MyForm);
end;
end;