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:
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;
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.
Code:
TComboBox(Main.CitiesPageControl.FindComponent('CitySelectCombo1')).Text := 'Hamburg';
als eins von mehreren Versuchen zum Beispiel funktioniert nicht. Natürlich ist eine Framelösung auch möglich, aber wieso geht dieser Mist nicht?
Was fehlt da?
creehawk