![]() |
FindComponent auf TabSheet
Moin Moin,
auch nach längerem Suche hier und anderswo ist es mir nicht gelungen, einen funktionierende Abfrage auf den Inhalt einer zur Laufzeit erzeugten Combobox oder auch Editbox auf einem ebenfalls zur Laufzeit erzeugten TabSheet eines zur Designzeit erzeugten PageControls zu produzieren. Folgender Code läuft problemslos durch:
Code:
In der Form Main auf dem Pagecontrol CitiesPageControl wird bei jedem Buttonclick eine neues Tabsheet mit der Combobox mit dem korrektem Namen erzeugt. Aber jede Form von Abfrage oder Zuweisung auf den Inhalt beispielsweise - .Text - der Combo bringt nichts.
procedure TMain.CreateCitySheetsClick(Sender: TObject);
var I:Integer; CitiesPageControlCount: integer; NewPage: TTabSheet; NewCitySelectCombo: TComboBox; begin CitiesPageControlCount := CitiesPageControl.PageCount + 1; NewPage := TTabSheet.Create(Main.CitiesPageControl); NewPage.Parent := Main.CitiesPageControl; NewPage.PageControl := Main.CitiesPageControl; NewPage.Name := 'CityNumber' + IntToStr(CitiesPageControlCount); NewPage.Caption := 'Stadt Nr.' + IntToStr(CitiesPageControlCount); NewCitySelectCombo := TComboBox.Create(NewPage); NewCitySelectCombo.Parent := NewPage; NewCitySelectCombo.Name := 'CitySelectCombo' + IntToStr(CitiesPageControlCount); NewCitySelectCombo.Left := 8; NewCitySelectCombo.Top := 4; NewCitySelectCombo.Visible := True; NewCitySelectCombo.Items.LoadFromFile(ProgrammPfad+'\Stadtliste.txt'); end;
Code:
als eins von mehreren Versuchen zum Beispiel funktioniert nicht. Natürlich ist eine Framelösung auch möglich, aber wieso geht dieser Mist nicht?
TComboBox(Main.CitiesPageControl.FindComponent('CitySelectCombo1')).Text := 'Hamburg';
Was fehlt da? creehawk |
AW: FindComponent auf TabSheet
Weil Du als Owner nicht das PageControl, sondern das dynamisch erzeugte TabSheet angegeben hast.
Zitat:
Delphi-Quellcode:
NewCitySelectCombo := TComboBox.Create(CitiesPageControl);
|
AW: FindComponent auf TabSheet
x.FindComponent such nach Komponenten, welche x als Owner besitzen.
x.FindControl such nach Komponenten, welche x als Parent besitzen. Also, wie Detlef es schon richtig sagte, kannst du nur das finden, wovon CitiesPageControl der Besitzer ist. Und warum wird da überall auf die Variable Main zugegriffen? (Self oder weglassen) |
AW: FindComponent auf TabSheet
Heiliger BimBam.
Ich habe nun wirklich jede Antwort zum Thema im Netz gelesen, aber glaubst du DAS habe ich gesehen.... Ich danke vielfältig. creehawk Ups, äh - MAIN - , weiß ich auch nicht, Angewohnheit seit Jahrhunderten.... |
AW: FindComponent auf TabSheet
Es wäre vielleicht nicht schlecht gewesen, wenn du den Fehler nicht im ersten Post wegeditiert hättest.
Wemnn nochmal jemand soein Problem hat und diesen Thread findet, dann sieht er ja nicht mehr was falsch war. |
AW: FindComponent auf TabSheet
Äh, den Fehler habe ich nicht wegeditiert, ist immer noch da....
Und die Lösung steht sehr übersichtlich da drunter : Zitat=Fehler und anschließend die Lösung. creehawk |
AW: FindComponent auf TabSheet
Dann hatte ich wohl auf's falsche Create geguckt. :oops:
Ach ja, Willkommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 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-2025 by Thomas Breitkreuz