![]() |
Füllen einer ComboBox im OnCreate eines Frames
Hallo,
ich möchte eine ComboBox cmbBeruf mit Strings befüllen, wenn das Frame frameStammdaten erstellt wird, in etwa so:
Delphi-Quellcode:
Anschließend wird das Frame mit InsertControl in die Hauptform eingefügt. Wenn ich Items.Add weglasse, funktioniert es wunderbar. Doch wenn ich Items.Add hinzufüge - das trifft scheinbar nicht nur für ComboBox, sondern für alle Controls zu, die TStrings beinhalten?!? - wird das Frame ohne Fehlermeldung (!) einfach nicht eingefügt: Ich nehme an, dass es nicht richtig erstellt wird. Kann mir jemand von Euch helfen?
constructor TframeStammdaten.Create(AOwner: TComponent);
begin inherited Create(AOwner); with cmbBeruf.Items do begin Add('Irgendein Beruf'); Add('Noch ein Beruf'); end; // Weitere Controls initialisieren end; |
Re: Füllen einer ComboBox im OnCreate eines Frames
Hallo,
der Code sieht OK aus. Zitat:
Also machst du doch was anderes. Zeige den wirklichen Code oder probier es aus - Auskommentieren - Testen - Code wieder reinnehmen Ausserdem würde ich das with mal ersetzen
Delphi-Quellcode:
Heiko
cmbBeruf.Items.Add('Irgendein Beruf');
cmbBeruf.Items.Add('Noch ein Beruf'); |
Re: Füllen einer ComboBox im OnCreate eines Frames
Hi,
Ich würde den Code evtl. lieber wirklich ins "echte" OnCreate des Formulars schreiben und nicht in den constructor. Gruß Neutral General |
Re: Füllen einer ComboBox im OnCreate eines Frames
Existieren die Steuerelemente überhaupt zu dem Zeitpunkt schon?
|
Re: Füllen einer ComboBox im OnCreate eines Frames
@hoiko: Das with zu ersetzen, bringt wohl nicht so viel :o). "In etwa so", weil noch ungefähr 20 andere Berufe hinzugefügt werden...es klappt aber schon mit einem nicht. Das mit dem Auskommentieren habe ich schon gemacht. Deshalb weiß ich ja, woran es hängt, aber eben nicht warum.
@Neutral General: Ein Frame hat kein "echtes" OnCreate. Deswegen diese Lösung. @Michael: Ja, inherited Create() müsste eigentlich schon alle Elemente erzeugen. Assigned(cmbBerufe) liefert auch True. Nachtrag: Es bringt auch nichts, die Werte schon in der Entwurfsansicht festzulegen!?! |
Re: Füllen einer ComboBox im OnCreate eines Frames
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Siehe Anhang |
Re: Füllen einer ComboBox im OnCreate eines Frames
Liste der Anhänge anzeigen (Anzahl: 1)
@alzaimar: Ja, das funktioniert. Aber nur, wenn ich das Frame zur Design-Time in die Form einfüge. Wenn ich es zur Runtime einfüge (mit InsertControl) geht es nicht...Hab's noch einmal angehängt.
|
Re: Füllen einer ComboBox im OnCreate eines Frames
Füge dem Frame doch eine Methode "FillComboBox()" hinzu. Diese Methode füllt dann die Combobox und wird von deinem Code aufgerufen nachdem das Frame eingefügt wurde.
|
Re: Füllen einer ComboBox im OnCreate eines Frames
Hallo phorax,
warum verwendest du InsertControl?
Delphi-Quellcode:
Gruß Hawkeye
procedure TMainForm.ButtonClick (Sender: TObject);
var Frame: TframeStammdaten; begin Frame := TframeStammdaten.Create(Self); // InsertControl (Frame); Frame.Parent := Self; end; |
Re: Füllen einer ComboBox im OnCreate eines Frames
@Hawkeye219: Weil ich offenbar keine Ahnung habe :oops: . Danke!!! Das hat das Problem gelöst! Super!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz