Einzelnen Beitrag anzeigen

creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#1

FindComponent auf TabSheet

  Alt 29. Aug 2014, 15:15
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

Geändert von creehawk (29. Aug 2014 um 15:18 Uhr)
  Mit Zitat antworten Zitat