[gelöst] DBListBox Daten anzeigen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

[gelöst] DBListBox Daten anzeigen

Beitrag von Michl »

Servus,

wie kann ich eine DBListBox dazu bringen Daten anzuzeigen? DataSource und DataField der DBListbox sind gesetzt. Ein DBGrid zeigt die Daten an, die DBListBox bleibt leer.

Ich habe mal ein Minimalbeispiel mit einem BufDataset erstellt und angehangen.
Dateianhänge
DBListBoxTest.zip
(2.02 KiB) 101-mal heruntergeladen
Zuletzt geändert von Michl am Mi 29. Nov 2017, 07:58, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wp_xyz
Beiträge: 4864
Registriert: Fr 8. Apr 2011, 09:01

Re: DBListBox Daten anzeigen

Beitrag von wp_xyz »

Ich glaube, dass DBListbox nicht so gedacht ist wie DBGrid, also die Werte eines Feldes anzuzeigen, sondern als Eingabecontrol eher wie TDBCombobox, das erlaubt, einen Eintrag aus einer Liste auszuwählen. Die Listbox enthält in Items die Strings, die für ein Feld in Frage kommen, und wenn man dann durch den Dataset scrollt, springt die Auswahl bei jedem Datensatz zu den entsprechenden Listboxeintrag.

Ich habe dein Programm überarbeitet und in DBListBox.Items die Möglichkeiten "1. Klasse" und "2. Klasse" eingetragen. Gehe zum 1.Record, wähle im Navigator "Edit", klicke in der Listbox einen der beiden Einträge, Speichern. Wenn du nun durch die Tabelle scrollst, wird im DBGrid beim 1.Record der entsprechende Eintrag angeziegt und in der Listbox angewählt.
Dateianhänge
dblistbox-wp.zip
(2.23 KiB) 121-mal heruntergeladen

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: DBListBox Daten anzeigen

Beitrag von knight »

Wahrscheinlich kann dir eher TDBLookupListBox die Funktionalität bieten, die du suchst.

knight

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: [gelöst] DBListBox Daten anzeigen

Beitrag von Michl »

wp_xyz hat geschrieben:Ich glaube, dass DBListbox nicht so gedacht ist wie DBGrid, also die Werte eines Feldes anzuzeigen, sondern als Eingabecontrol eher wie TDBCombobox, das erlaubt, einen Eintrag aus einer Liste auszuwählen. Die Listbox enthält in Items die Strings, die für ein Feld in Frage kommen, und wenn man dann durch den Dataset scrollt, springt die Auswahl bei jedem Datensatz zu den entsprechenden Listboxeintrag.
Ah, so herum. Jetzt verstehe ich es. Danke für die Erklärung und Beispiel! (Komisch, daß bei Wahl eines Eintrages in der DBListBox nicht gleich das Field im Grid entsprechend angezeigt wird.)

knight hat geschrieben:Wahrscheinlich kann dir eher TDBLookupListBox die Funktionalität bieten, die du suchst.
Ja, genau.

In der DBLookupListBox muss man die zu füllende DataSource und das DataField eintragen.
Ebenfalls eintragen muss man, woher die Daten bezogen werden: ListSource, ListField und KeyField (eindeutige ID).

Ist logisch und nachvollziehbar. Danke für die Hinweise. Habe es eben getestet, das Beispiel modifiziert und angehangen (falls nochmal jemand ein ähnlichen Denkfehler hat).
Dateianhänge
DBLookupListView.zip
(2.28 KiB) 130-mal heruntergeladen

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten