Auf Objekte in Dynamisch erzeugtem PageConrtrol zugreifen
-
Hallo, habe da mal eine Frage ...
und zwar erzeuge ich mit einem Klick auf einen Button Neue Tabs in PageControl1 und die beinhalten immer Memos.
TTabSheet *TabSheet = new TTabSheet( PageControl1 ); TabSheet->Name = "Tab_" + IntToStr(id); TabSheet->PageControl = PageControl1; TabSheet->Parent = PageControl1; TabSheet->Caption = asName; TMemo *Memo = new TMemo( TabSheet ); Memo->Name = "Memo_" + asName; Memo->Parent = TabSheet; Memo->Align = alClient; Memo->Lines->Clear(); Memo->Lines->Add( "leer" + IntToStr(id)); Memo->ScrollBars = ssVertical; Memo->WordWrap = false;So, und nun mein Problem. Wie kann ich im nachhinein auf die Memos zugreifen? Bin da nirgends fündig geworden.
? Also wenn ich den Inhalt von dem Memo im gerade angeklickten TAB speichern will ?
Stehe grade voll aum Schlauch ... sry ... ich hoffe ihr könnt mir weiterhelfen ... (Und versteht was ich machen will)
-
Möglich wäre das über die Controls- oder Components-Eigenschaft. FindComponent() ginge sicherlich auch.
Sinnvoller ist es aber sicherlich, Dir beim Erstellen der Memos diese Instanzen in einem (dynamischen) Array
zu speichern.Gruß,
Alexander
-
Genau bei dem reinschreiben in ein dynamische Array hängts bei mir total. Wie kann ich dass denn machen?
//Edit: OK ... steht in den FAQ ^^
Und nun die lsg, wie ichs dann gemacht habe:
DynamicArray<TMemo*>mMemo;Mein Array erzeugt
TTabSheet *tTabSheet = new TTabSheet( PageControl1 ); tTabSheet->Name = "Tab_" + IntToStr(id); tTabSheet->PageControl = PageControl1; tTabSheet->Parent = PageControl1; tTabSheet->Caption = asName; mMemo.Length = id+1; //Bei jedem Durchlauf mein mMemo um 1 vergrößern mMemo[id]= new TMemo( tTabSheet ); mMemo[id]->Name = "Memo_" + asName; mMemo[id]->Parent = tTabSheet; mMemo[id]->Align = alClient; mMemo[id]->Lines->Clear(); mMemo[id]->Lines->Add( "leer" + IntToStr(id)); mMemo[id]->ScrollBars = ssVertical; mMemo[id]->WordWrap = false;Jetzt kann ichs auch ausserhalb aufrufen. Danke für den Denkanstoß ^^