在做一個停車場控制系統,主界面中間是一個RzPageControl,有一個Tabsheet,為監控刷卡分頁,其中顯示監控畫面,點擊按鈕“出入記錄”時,會先判斷RzPageControl中是否存在出入記錄分頁,沒有就在RzPageControl中添加一個“出入記錄”的分頁
代碼如下:
procedure TFrmMain.PageAddForm(aPage: TRzPageControl; aForm: TForm; TaFormClass: TClass; FormName: string);
begin
try
Application.CreateForm(TComponentClass(TaFormClass), aForm);
aPage.UseDockManager := True;
LBInterface.Log.WriteLog('3:' + IntToStr(aPage.PageCount) + FormName, 3);
aForm.ManualDock(aPage, nil, alClient);// (aPage); //融合至pageControl,
LBInterface.Log.WriteLog('4:' + IntToStr(aPage.PageCount) + FormName, 3);
aForm.Caption := FormName;
aForm.Position := poMainFormCenter;
aForm.Visible := True; //這個比用 show效果更好
aPage.ActivePageindex := aPage.PageCount - 1;
// TODO -Eternally: PageAddForm default body inserted
except
on E:Exception do
begin
LBInterface.Log.WriteLog('9:' + e.Message, 3);
end;
end;
end;
系統運行一段時間后點擊“出入記錄”,執行到aForm.ManualDock(aPage, nil, alClient)時無法添加分頁,程式沒有報錯,有存錯誤日志9:Error saving device context,
uj5u.com熱心網友回復:
應該是RzPageControl本身的問題吧,之前我用RzLabel就出現過類似的問題uj5u.com熱心網友回復:
可以換Cx試試看uj5u.com熱心網友回復:
aPage.UseDockManager := True;這一句沒法編譯通過,TRzPageControl無此屬性。除了這句,貼出的代碼可以正常執行。根據樓主的描述,實際已經發生了錯誤,只不過被例外處理陳述句輸出到日志中。不在IDE中除錯,這樣輸出反而更難定位了。問題可能在這些代碼之外或是某個版本的bug。uj5u.com熱心網友回復:
貼出過完整代碼,看看!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/58217.html
標籤:VCL組件開發及應用
