使用我正在進行的基於TFrames的組件集項目,我遇到了各種實例,我想在運行時用一個TFrame的組件(通常是非可視的)替換其中一個這是在運行時動態生成的。參考或教程來澄清對象引用混淆
我想我可能已經找到了我的直接問題的答案here,但是在我發現它之前,我自己進行了深入的探索和實驗,現在已經很清楚,我已經瞭解了很多關於Delphi如何處理對象引用特別是關於表單/框架,以及(通常)作爲對象引用的類屬性而非非指針值。
一個實驗中的一個具體例子是在這裏:
(在三個TButtons形式)
procedure TForm1.Button3Click(Sender: TObject);
var
MyButton : TButton;
begin
MyButton := TButton.Create(Self);
MyButton.Caption := 'New Button';
MyButton.Parent := Form1;
Form1.Button2 := MyButton;
Form1.Repaint;
ShowMessage('Button2 caption = ' + Form1.Button2.Caption);
end;
不與創建按鈕取代Button2的,但同時顯示在表格上。 ShowMessage結果表明Button2的標題仍然=「Button2」
我發現自己在問「這個'非替換'是獨特的形式,還是對其他類也是如此?等等。簡言之,我發現了另一個我自己無知的地方。 ;-)我發現在處理實例/對象引用/ derefencing /類定義/類屬性等時,事情的行爲通常與他們期望的完全一樣,但其他時候,完全沒有,甚至沒有關閉。
很明顯,我需要在這方面進行研究。而不是圍繞這一主題愚蠢的問題旋轉後交愚蠢的問題,我想我會問這個來代替:
什麼是獲得在微妙的區別更好地把握一個真的很好的參考或教程Re:怎麼德爾福手柄這樣的事情?
在此先感謝您的幫助!
你想達到什麼目的?像所有的語言和環境一樣Delphi有自己的做事方式。在Delphi中創建動態表單確實很容易,所以如果你解釋它是什麼,你正試圖實現它們可能會有幫助 – 2009-10-26 07:59:06