Delphi 使用预定义的选项卡打开表单时出现问题

Delphi 使用预定义的选项卡打开表单时出现问题,delphi,Delphi,下面的代码有效 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 := tabshee

下面的代码有效

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;

如何解决这个问题?

问题是,当我在运行时创建一个新表单,并在使用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;

你能说得更准确些吗?有什么问题?调用
showmodel
后会发生什么?您从哪个方法调用代码,它似乎是表单的一部分。这将有助于为这个问题添加上下文。你必须定义“不起作用”以及你期望发生的事情。