把Form融合到tabsheet中后,form的activecontrol取值不对
自己做了个简单的例子,又取不到值
//form1部分代码
procedure TForm1.Button1Click(Sender: TObject);
var
tb: TTabSheet;
frm: TForm2;
begin
tb := TTabSheet.Create(PageControl1);
tb.PageControl := PageControl1;
frm := TForm2.Create(tb);
frm.Parent := tb;
frm.BorderStyle := bsNone;
frm.Align := alCLient;
frm.Show;
end;
//form2部分代码
//设置eidt1的右键菜单
procedure TForm2.N1Click(Sender: TObject);
var
cc: TWinControl;
begin
cc := self.ActiveControl;
showmessage(cc.ClassName);
end;
自己做了个简单的例子,又取不到值
//form1部分代码
procedure TForm1.Button1Click(Sender: TObject);
var
tb: TTabSheet;
frm: TForm2;
begin
tb := TTabSheet.Create(PageControl1);
tb.PageControl := PageControl1;
frm := TForm2.Create(tb);
frm.Parent := tb;
frm.BorderStyle := bsNone;
frm.Align := alCLient;
frm.Show;
end;
//form2部分代码
//设置eidt1的右键菜单
procedure TForm2.N1Click(Sender: TObject);
var
cc: TWinControl;
begin
cc := self.ActiveControl;
showmessage(cc.ClassName);
end;
就怕听到这样的答复,原程序都是写好的dll,我现在是加个壳子来调用,改成frame基本不可行,工作量太大
则可以考虑取出所有的控件看看。
Form1.Components[i]
窗体控件多的情况下,不知道对效率有多少影响