Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   LookUpCombobox.Properties.items.count bleibt 0 (https://www.delphipraxis.net/190811-lookupcombobox-properties-items-count-bleibt-0-a.html)

Khanysha 10. Nov 2016 10:33

Datenbank: SQLite • Version: 3.9.2 • Zugriff über: UniDac

LookUpCombobox.Properties.items.count bleibt 0
 
Hallo zusammen,
ich habe mal wieder ein Verständnisproblem und finde in der SuFu auch nicht die Antwort die das Klicken im Kopf bei mir auslöst.

Folgendes Problem habe ich:
Ich habe eine Datenbank in der 4 Tabellen liegen. Für 3 Tabellen gibt es je eine LookUpCombobox, um die Werte auswählen zu können. Im späteren Projekt möchte ich die Comboboxen fragen, ob sie einen Wert enthalten und wenn ja, sollen diese Werte in die 4. Tabelle geschrieben werden. Das kommt später, ich stolpere viel früher schon.
Ich starte mein Programm**, wähle in der Cbb etwas aus, die nachher abgefragt wird, beim disconnecten erfrage ich den Count (rein zum testen, ob sie da was ändert). Nun steht in der Cbb ja was und der items.count müsste doch reintheoretisch 1 sein und nicht 0 oder?

Ich habe die If umgebaut und auf 0 gefragt, dann zeigt er mir mein ShowMessage und um ganz sicher zu gehen habe ich meine ShowMessage auch nochmal verändert:

Delphi-Quellcode:
ShowMessage(IntToStr(LookUpCbb1.Properties.Items.Count)); // <--- er zeigt 0 an, trotz das etwas ausgewählt ist.


**Ich habe einen Connect- und DisconnectButton, den ich nach dem Start des Programms natürlich verwende.

Vermutlich ist das so ne Wald-Baum Sache...

LG Lizzy

EWeiss 10. Nov 2016 11:00

AW: LookUpCombobox.Properties.items.count bleibt 0
 
Zitat:

<--- er zeigt 0 an, trotz das etwas ausgewählt ist.
Blick da nicht ganz durch was du willst aber was hat der Items.Count mit select(ausgewählt) zu tun?

gruss

himitsu 10. Nov 2016 11:01

AW: LookUpCombobox.Properties.items.count bleibt 0
 
Die LookupSource ist aber auch aktiv und die KeyFields stimmen ebenfalls?

Und nein, es kommt drauf an, wie die Combobox eingestellt ist.
siehe die "normale" Combobox ... je nach Style (z.B. csDropDown oder csDropDownList) kann im Edit auch irgendwas drin stehen, egal, ob es Items gibt oder nicht.

nahpets 10. Nov 2016 11:13

AW: LookUpCombobox.Properties.items.count bleibt 0
 
Ich hab' da ein Verständnisproblem:

Die LookUpComboBox zeigt Dir den (ausgewählten) Inhalt einer offenen Tabelle an. Diese Anzeige / der Inhalt der LookUpComboBox verschwindet wieder, wenn die Datenbankverbindung beendet wird (zumindest verstehe ich das unter Disconnet).
Lediglich der Inhalt der Eigenschaft Text kann bei diesem Vorgehen vorhandenbleiben. Das sieht dann so aus, als wäre noch was in der LookUpComboBox. Die Items sind zu diesem Zeitpunkt aber wieder leer und damit ist auch Count = 0.
Mir erscheint das Verhalten der LookUpComboBox korrekt, wenn es auch nicht das von Dir gewünschte Verhalten ist.

Eine LookUpComboBox kann man nur bei bestehender Datenbankverbindung und aktiver Tabelle sinnvoll nutzen.

Khanysha 10. Nov 2016 12:20

AW: LookUpCombobox.Properties.items.count bleibt 0
 
Zitat:

Zitat von EWeiss (Beitrag 1353207)
Zitat:

<--- er zeigt 0 an, trotz das etwas ausgewählt ist.
Blick da nicht ganz durch was du willst aber was hat der Items.Count mit select(ausgewählt) zu tun?

gruss

In meinem Test möchte ich das Item was zu sehen ist greifen, damit ich es nachher so verbauen kann, dass wenn die Verbindung beendet wird, die Daten in die Datenbank geschrieben werden. Ich will nicht bei jeder Cbb im OnExit sagen: Schreib das in die DB. Darum hab ich diesen Test grade am DisconnectButton. Bevor er alles dicht machen soll er schauen ob was in der Cbb steht. (Der Teil kommt später dazu: Wenn was drin steht, in die DB schreiben und dann alles kappen.)


Zitat:

Zitat von himitsu (Beitrag 1353208)
Die LookupSource ist aber auch aktiv und die KeyFields stimmen ebenfalls?

Ja, aktiv und stimmen.

Zitat:

Zitat von nahpets (Beitrag 1353211)
Ich hab' da ein Verständnisproblem:

Die LookUpComboBox zeigt Dir den (ausgewählten) Inhalt einer offenen Tabelle an. Diese Anzeige / der Inhalt der LookUpComboBox verschwindet wieder, wenn die Datenbankverbindung beendet wird (zumindest verstehe ich das unter Disconnet).
Lediglich der Inhalt der Eigenschaft Text kann bei diesem Vorgehen vorhandenbleiben. Das sieht dann so aus, als wäre noch was in der LookUpComboBox. Die Items sind zu diesem Zeitpunkt aber wieder leer und damit ist auch Count = 0.
Mir erscheint das Verhalten der LookUpComboBox korrekt, wenn es auch nicht das von Dir gewünschte Verhalten ist.

Eine LookUpComboBox kann man nur bei bestehender Datenbankverbindung und aktiver Tabelle sinnvoll nutzen.

Ja, beim Disconnect werden die Querys geschlossen und die Verbindung zur Datenbank beendet.

Es geht auf kurz oder lang darum das die Daten die eingetragen worden sind, als Ganzes in die 4 Tabelle eingetragen werden um sie nochmal drucken zu können, aber nicht mehr zu verändern. Um sie aufrufen zu können muss ich ja die eingetragenen Daten erstmal in die DB schreiben, deswegen versuche in den Wert in der Cbb einzufangen. Nun dachte ich, dass sich Item.Count verändert wenn ich etwas ausgewählt habe.

himitsu 10. Nov 2016 12:38

AW: LookUpCombobox.Properties.items.count bleibt 0
 
Count/ItemCount, Selected/SelectedCount und Focused sind bissl was Unterschiedliches. (betrifft nicht nur die ComboBox)

ItemCount ist die Anzahl der Items im "DropDown" der ComboBox,
das hat aber nichts damit zu tun, ob aktuell Text in der ComboBox steht, oder ob eines der Items ausgewählt (Selected) ist.

Khanysha 10. Nov 2016 13:00

AW: LookUpCombobox.Properties.items.count bleibt 0
 
Zitat:

Zitat von himitsu (Beitrag 1353232)
Count/ItemCount, Selected/SelectedCount und Focused sind bissl was Unterschiedliches. (betrifft nicht nur die ComboBox)

ItemCount ist die Anzahl der Items im "DropDown" der ComboBox,
das hat aber nichts damit zu tun, ob aktuell Text in der ComboBox steht, oder ob eines der Items ausgewählt (Selected) ist.

Danke, dann muss ich das wohl anders angehen, aber nun weiß ich das Items.Count nicht das ist was ich dachte :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 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