工作中需在Dll中动态生成一个窗体,在窗体的OnActivate事件中动态生成一个Frame嵌在其左部(Align=AlLeft),但是系统提示:该Frame没有父窗口!("SupplierStateFrame" Has No Parent Window),但是,在动态生成Frame的代码中,我指定其父属性了啊!
------------------------------------
TmpFrame:=TSupplierStateFrame.CreateParented(AForm.Handle);
With TSupplierStateFrame(TmpFrame) Do
Begin
OtherConditionPanel.Push;
SearchBtn_M.OnClick := SearchBtn.OnClick;
SelfADOQuery:=DMFrm.TmpMainADOQ;
GridFrame1.GridInfo.GridADOQ:=SelfADOQuery;
TmpFrame:=GridFrame1;
TmpMenuItem:=ShowOrHideLeftFramePM;
SelfADOQuery.AfterOpen:=TmpMainADOQDataAfterOpen;
ShowHideLeftFrameBtn.OnClick:=MySplitterMoved;
GetTreeObjectInfo;
SetCheckTreeState(True);
GetSupplierState_CLB(False);
Name:='TmpGridFrame';
// Parent:=Self;
Width:=176;
Align:=AlLeft;
Show;
Update;
End;
-----------------------------------
------------------------------------
TmpFrame:=TSupplierStateFrame.CreateParented(AForm.Handle);
With TSupplierStateFrame(TmpFrame) Do
Begin
OtherConditionPanel.Push;
SearchBtn_M.OnClick := SearchBtn.OnClick;
SelfADOQuery:=DMFrm.TmpMainADOQ;
GridFrame1.GridInfo.GridADOQ:=SelfADOQuery;
TmpFrame:=GridFrame1;
TmpMenuItem:=ShowOrHideLeftFramePM;
SelfADOQuery.AfterOpen:=TmpMainADOQDataAfterOpen;
ShowHideLeftFrameBtn.OnClick:=MySplitterMoved;
GetTreeObjectInfo;
SetCheckTreeState(True);
GetSupplierState_CLB(False);
Name:='TmpGridFrame';
// Parent:=Self;
Width:=176;
Align:=AlLeft;
Show;
Update;
End;
-----------------------------------
With TSupplierStateFrame(TmpFrame) Do
Begin
OtherConditionPanel.Push;
SearchBtn_M.OnClick := SearchBtn.OnClick;
SelfADOQuery:=DMFrm.TmpMainADOQ;
GridFrame1.GridInfo.GridADOQ:=SelfADOQuery;
TmpFrame:=GridFrame1;
TmpMenuItem:=ShowOrHideLeftFramePM;
SelfADOQuery.AfterOpen:=TmpMainADOQDataAfterOpen;
ShowHideLeftFrameBtn.OnClick:=MySplitterMoved;
GetTreeObjectInfo;
SetCheckTreeState(True);
GetSupplierState_CLB(False);
Name:='TmpGridFrame';
Parent:=AForm; ////////////////////
Width:=176;
Align:=AlLeft;
Show;
Update;
End;
-----
何况,出错是在“TmpFrame:=TSupplierStateFrame.CreateParented(AForm.Handle)”
这儿出的错,好痛苦哦。
用“TmpFrame:=TSupplierStateFrame.Create(AForm.Handle)"也不行。