AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FindComponent auf TabSheet

Ein Thema von creehawk · begonnen am 29. Aug 2014 · letzter Beitrag vom 29. Aug 2014
Antwort Antwort
creehawk

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

FindComponent auf TabSheet

  Alt 29. Aug 2014, 14: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 14:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FindComponent auf TabSheet

  Alt 29. Aug 2014, 14:29
Weil Du als Owner nicht das PageControl, sondern das dynamisch erzeugte TabSheet angegeben hast.
Zitat:
NewCitySelectCombo := TComboBox.Create(NewPage);
Wie ist es denn so?
NewCitySelectCombo := TComboBox.Create(CitiesPageControl);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#3

AW: FindComponent auf TabSheet

  Alt 29. Aug 2014, 15:00
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
creehawk

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

AW: FindComponent auf TabSheet

  Alt 29. Aug 2014, 15:01
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....
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#5

AW: FindComponent auf TabSheet

  Alt 29. Aug 2014, 15:08
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
creehawk

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

AW: FindComponent auf TabSheet

  Alt 29. Aug 2014, 15:41
Ä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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#7

AW: FindComponent auf TabSheet

  Alt 29. Aug 2014, 16:41
Dann hatte ich wohl auf's falsche Create geguckt.

Ach ja, Willkommen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz