function OpenPageForm(PageCtrl: TcxPageControl; AClassForm: TClass; AForm: TForm; ACaption: string): THandle;
var
I: Integer;
bool: Boolean;
begin
bool := False;
with PageCtrl do begin
for I := 0 to PageCount - 1 do begin
if SameText(Trim(Pages[i].Caption), Trim(ACaption)) then begin
bool := True;
ActivePageIndex := i;
Result := ActivePage.Tag;
end;
end;
end;
if not bool then begin
Application.CreateForm(TComponentClass(AClassForm), AForm);
//Application.CreateForm(TComponentClass(GetClass('Thomefor')),AForm);
with AForm do begin
ManualDock(PageCtrl);
Caption := ACaption;
Visible := True;
end;
with PageCtrl do begin
ActivePageIndex := PageCount - 1;
ActivePage.Tag := AForm.Handle;
Result := ActivePage.Tag;
end;
end;
end;
怎么樣修改才能把AClassForm: TClass; AForm: TForm引數變成sting型別的
例如:function OpenPageForm(PageCtrl: TcxPageControl; AClassForm: string; AForm: string; ACaption: string): THandle;
下面該怎么樣修改,剛學習delphi求助! 謝謝大牛們!
uj5u.com熱心網友回復:
寫過類似的代碼,不過在公司,沒有相關的代碼,我得回去給你找找我記得我是在資料庫存了兩個值,一個formClass 一個 formName;
比如Form1 TForm1;
然后再form1代碼最后面的時候,需要進行注冊Tform1
然后每次打開Tab的時候,判斷Tab是否存在,如果不存在,則創建form。
但是也有點bug,就是Tab不能free,如果free了,無法在創建Form,當然可能你有更好的辦法,我是每次Tab關閉的時候,吧Tab隱藏。
你可以查下資料先,如果找不到的話,我晚上回去給你找找。
uj5u.com熱心網友回復:
可以free掉,但現在我上面的函式不知道怎么修改了,求大牛幫忙修改..
uj5u.com熱心網友回復:
AClassForm: TClass;----AClassForm.ClassName --得到類名
AForm: TForm
----AForm.Name --得到表單的名字
----AForm.ClassName --得到表單的類名
uj5u.com熱心網友回復:
function OpenPageForm(PageCtrl: TcxPageControl; AClassFormName: string; AForm: string; ACaption: string): THandle;begin
if getClass(AClassFormName) <> nil then
begin
................
end;
end;
initialization
RegisterClass(Tfrom1);
finalization
UnRegisterClass(Tfrom1);
end.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/124553.html
標籤:VCL組件開發及應用
