Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen" (https://www.delphipraxis.net/173400-daten-aus-listbox-ttabsheet-tpagecontrol-dynamisch-generiert-saugen.html)

Drosera 22. Feb 2013 10:34

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:
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;
Wie greife ich jetzt auf die ListBox des aktuellen TabSheets zu?

Mein letzer von vieeelen Versuchen:

Delphi-Quellcode:
 procedure TsqdForm.selectLine(Sender: TObject);
begin
      with tabSheet.PageControl.ActivePage do
        Memo1.Lines.Add(songListBox.Items.Text);
end;
Liefert mir immer nur den Eintrag aus dem als letztes erstellten Tab, egals welches Tab (optisch) aktiv ist.
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)

uligerhardt 22. Feb 2013 10:53

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:

stahli 22. Feb 2013 10:59

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.

Drosera 22. Feb 2013 12:02

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?!?

uligerhardt 22. Feb 2013 12:12

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 07:15 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