![]() |
Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"
Hallo zusammen!
Also mit diesem dynamisch erzeugtem Klumpatsch stehe ich wirklich auf kriegsfuß:twisted:.... (wills aber unbedingt so haben). Ich habe wirklich gewühlt und gebastelt, aber hierbei fehlt es mir wohl an tiefgreifendem Verständnis der Materie (so ist das halt mit Amateur-Newbes):cry: Also hier das Problem: Es wird in ein dyn. erzeugtes TTabSheet eine ListBox "gepflanzt"
Delphi-Quellcode:
Wie greife ich jetzt auf die ListBox des aktuellen TabSheets zu?
TabSheet := TTabSheet.Create(PageCtrl); // Basis Tab-Erzeugung
TabSheet.PageControl := PageCtrl; // Basis Tab-Erzeugung TabSheet.Caption := tabListe[i]; // Basis Tab-Erzeugung //**** Verzeichnis zu passendem Tab ermitteln verz := verzeichnisHandlingUnit.leseInfoZuKey(abschnitt, TabSheet.Caption); //************ zufügen SongListBoxes ****************// songListBox := TListBox.Create(self); with songListBox do begin Parent := TabSheet.PageControl.ActivePage; Align := alClient; //**** Auslesen der Dateien eines Verzeichnises //***** und befüllen aktuelle SongListBox Items.Assign(verzeichnisHandlingUnit.leseFilenamen(verz)); //****** Mit EventHandling versehen onClick := selectLine; end; Mein letzer von vieeelen Versuchen:
Delphi-Quellcode:
Liefert mir immer nur den Eintrag aus dem als letztes erstellten Tab, egals welches Tab (optisch) aktiv ist.
procedure TsqdForm.selectLine(Sender: TObject);
begin with tabSheet.PageControl.ActivePage do Memo1.Lines.Add(songListBox.Items.Text); end; Wie gesagt: Wohl grundlegendes Verständnisproblem. :| Hat vielleicht jmd. Lust mich aufzuklären, also delphitechnisch (also bitte nicht anfangen über Bienchen und Blümchen referieren :P) |
AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"
Sind die verschiedenen TabSheets alle gleich aufgebaut? Wenn ja, erzeuge dir einen Frame (Datei > Neu > Weitere > Delphi-Dateien > Frame). Auf dem kannst du dann songListBox etc. visuell designen.
Dann würdest du dir mit der weitern Verwaltung leichter tun. Aber bevor ich mir hier umsonst die Finger wundschreibe, warte ich erstmal ab, ob das bei deinen Anforderungen überhaupt möglich ist. :mrgreen: |
AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"
Mal zwei grundsätzliche Überlegungen:
Man kann für solche Fälle ein TabControl verwenden. Dann hast Du NUR EINE ListBox, die Du beim Umschalten eines Registers jeweils mit neuen Daten füllen kannst. Oder Du kannst Deine erzeugten ListBoxen in einer TList bzw. einem Array verwalten und etwa über (MyList[PageControl.ActiveTabItem] as TListBox)... (Namen stimmen sicher nicht ganz) zugreifen. Das mal als Ansatz. Dann kannst Du ja nochmal genauer nachfragen. |
AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"
Danke für euere Anregungen.
@uligerhardt: Das befüllen der ListBoxen ist nicht das Problem. Das Problem ist auf die darin befindlichen Items zurück zugreifen (auch wenn diese Items "nur" Strings sind). Der Grund warum ich es so lösen möchte wie beschrieben ist einfach, dass ich bei getrennten Frames auch die Daten aus den ListBoxes an den eigentlichen Player weiter reichen müsste. @stahli: Johhhh... prinzipiell richtig. Ich habe allerdings gelesen, dass ein TabControl, wenn ein neues Tab gewählt wurde, alle Daten neu laden muss und das wäre in diesem Fall nicht sinnvoll (wenn auch wahrsch. leichter für mich zu programmieren). Somit bleibt mir leider das ursprüngliche Problem erhalten... wie komme ich an die Daten der dyn. ListBox in dem dyn. PageControl?!? |
AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"
Was ich vorschlagen wollte, war, Arrays, Listen o.ä. zu verwenden. Und das wiederum wäre einfacher zu handhaben, wenn du den Inhalt eines Tabsheets als Frame zusammengefasst hättest. Geht natürlich auch ohne Frames.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 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