我寫這樣一份申請表// //標籤頁訪問方法:創建表格
有上有一個的PageControl, 在頁面控件創建Tabsheets, 在Tabsheets一種主要形式,表格被放置。
這有助於用戶可以多次創建一種類型的表單,如在多個選項卡中打開的標準PDF查看器,但顯示不同的數據,本質上是相同的形式。
這工作得很好,非常有用!不幸的是有什麼不工作很重要,這就是問題所在:
此代碼將正常工作:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := 'Hello';
end;
然而,字幕會改變,如果我想調用一個方法來代替,就像這樣:
Procedure changeLabel(str : String);
Begin
Form1.Label1.Caption := str;
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
changeLabel('Hello');
end;
我在Form1.Label1.Caption獲得訪問衝突:= str;在程序
這裏是我創建的形式:
procedure TfrmPage.CDMA1Click(Sender: TObject);
var
TabSheet: TTabSheet;
frmTest : TForm;
begin
TabSheet := TTabSheet.Create(PageControl1);
TabSheet.Caption := 'kjklhhj';
TabSheet.PageControl := PageControl1;
frmTest := TForm1.Create(Nil);
frmTest.Show;
frmTest.Parent := TabSheet;
end;
我所做的一切,每個人都在這裏說:another stackoverflow question
我的問題,如何能在新創建的窗體,釘在Tabsheet,訪問自己的程序而不拋出異常?另一個可能很重要的部分:當我有delphi自動創建窗體時,沒有訪問衝突,但該方法對窗體沒有任何影響,所以我認爲這個過程可能會改變錯誤窗體上的東西,一個還沒有創建(它給AV),而不是我剛剛創建的那個,或者應用程序不是在我的新窗體上調用方法,而是在某個窗體尚未創建的地方調用它。
如果我自動創建的形式,調用過程可能變化的時候,應用程序啓動,而不是新的形式創建的窗體上的標籤..
任何幫助,將不勝感激,因爲我已經一直沒有真正的幫助谷歌上搜索了幾個小時,現在這個問題提前:)
謝謝您的回答,我用它和整理等小親後瑕疵,它似乎工作,但由於某種原因,我的應用程序(不是一個正常的測試應用程序)現在不允許我編輯一些簡單的編輯框:(即使在一個全新的形式,呃,也許有什麼建議嗎? –
不客氣! 'TEdit'具有'Enabled'和'ReadOnly'屬性。如果它不能分別檢查那些是「真」還是「假」,那就提出一個新問題。 –