AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"

Ein Thema von Drosera · begonnen am 22. Feb 2013 · letzter Beitrag vom 22. Feb 2013
Antwort Antwort
Drosera

Registriert seit: 1. Jan 2013
Ort: Lich
15 Beiträge
 
Delphi 7 Personal
 
#1

Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"

  Alt 22. Feb 2013, 10:34
Hallo zusammen!

Also mit diesem dynamisch erzeugtem Klumpatsch stehe ich wirklich auf kriegsfuß.... (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)

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 )
Thomas
Der Morgen graut... mir auch
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"

  Alt 22. Feb 2013, 10:53
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.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"

  Alt 22. Feb 2013, 10:59
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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Drosera

Registriert seit: 1. Jan 2013
Ort: Lich
15 Beiträge
 
Delphi 7 Personal
 
#4

AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"

  Alt 22. Feb 2013, 12:02
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?!?
Thomas
Der Morgen graut... mir auch
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Daten aus ListBox in TTabSheet(TPageControl) (dynamisch generiert) "saugen"

  Alt 22. Feb 2013, 12:12
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.
Uli Gerhardt
  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 12:21 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