Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Combobox ItemIndex und LiveBinding (https://www.delphipraxis.net/171241-combobox-itemindex-und-livebinding.html)

RWarnecke 27. Okt 2012 19:22


Combobox ItemIndex und LiveBinding
 
Hallo zusammen,

ich habe auf einem Formular mehrere Comboboxen. Den ItemIndex-Wert speichern über das LiveBinding funktioniert wunderbar. Nur leider wird bei einem neuen Datensatz immer die erste Position der Combobox angezeigt, soll heißen im ComboxBox.Text steht der erste Wert aus der Auswahlliste, wie kann ich das verhindern ?

Sir Rufo 27. Okt 2012 20:39

AW: Combobox ItemIndex und LiveBinding
 
Die Daten kommen ja initial aus einer Instanz bzw. eier Property aus derselben.
Und für den ItemIndex brauchst du für die Property einen Integer.

Und was hat ein Integer für einen Default Wert? ;)

RWarnecke 27. Okt 2012 21:16

AW: Combobox ItemIndex und LiveBinding
 
Zitat:

Zitat von Sir Rufo (Beitrag 1188682)
Die Daten kommen ja initial aus einer Instanz bzw. eier Property aus derselben.
Und für den ItemIndex brauchst du für die Property einen Integer.

Und was hat ein Integer für einen Default Wert? ;)

Stimmt, da gebe ich Dir recht. Das Thema mit dem Default-Wert.:oops:

Habe ich denn noch eine andere Möglichkeit nur den ItemIndex-Wert in der Datenbank über das Binding zu speichern ?

Sir Rufo 27. Okt 2012 21:50

AW: Combobox ItemIndex und LiveBinding
 
Äh, das verstehe ich jetzt nicht. Der Wert wird doch gespeichert ... und wenn du das nicht haben willst, dann gib als Default-Wert eine -1. Oder pack als ersten Eintrag einen Dummy-Wert (bitte auswählen) rein.

Bummi 27. Okt 2012 22:34

AW: Combobox ItemIndex und LiveBinding
 
Ich vermute es geht in Richtung DBLookupComboBox ...?

RWarnecke 27. Okt 2012 22:51

AW: Combobox ItemIndex und LiveBinding
 
Ja, sowas in der Richtung versuche ich da nachzubilden. Mit einer TBindList befülle ich die Items der Combobox und mit einem TBindLink versuche ich den ausgewählten Wert (ItemIndex) zu speichern. Ist mein Denkansatz vielleicht falsch ?

Sir Rufo 27. Okt 2012 23:13

AW: Combobox ItemIndex und LiveBinding
 
Grundlegend erstmal nicht, nur kannst du NULL Werte nicht einfach so abbilden.
Liegt einfach daran, dass normale Datentypen immer einen Wert haben.

Man muss da wohl umdenken, weg von "Wie stelle ich den Inhalt der DB dar" und hin zu "Wie stelle ich meine Objekte in der DB ab"

RWarnecke 28. Okt 2012 09:06

AW: Combobox ItemIndex und LiveBinding
 
Ich probiere gerade ein bisschen an der Combobox rum. Dabei habe ich ganz nette Sachen festgestellt. Wenn ich die die TBindList wie folgt einstelle :
Delphi-Quellcode:
    object BindList_Coaches: TBindList
      Category = 'Lists'
      ControlComponent = AdvCB_ClientInternalCare
      SourceComponent = BindScopeDB_Coaches
      FormatExpressions = <>
      FormatControlExpressions = <
        item
          ControlExpression = 'Text'
          SourceExpression = 'Firstname.AsString + '#39' '#39' + LastName.AsString'
        end>
      ClearControlExpressions = <>
    end
Dann werden mir drei leere Zeilen als Auswahl in der Combobox angezeigt. Schreibe ich jetzt die gleiche ControlExpression und SourceExpression bei FormatExpression rein und lösche komplett die FormatControlExpression, dann werden mir alle Einträge richtig angezeigt und der erste Eintrag ausgewählt.
Wenn ich in beiden FormatExpressions das gleiche reinschreibe hat es den gleichen Effekt als wenn ich es nur in FormatExpression reinschreibe.

Edit:
So, ich habe das Problem mit dem Null Wert beim Hinzufügen eines neuen Datensatzes gelöst. Ich prüfe in dem Ereignis OnAssignedValue des BindLinks auf die ComboBox den Status vom Dataset. Ist das DataSet im Status dsInsert, wird der ItemIndex der Combobox auf -1 gesetzt. Ist der Status <> dsInsert, dann wird der Wert aus der Datenbank gesetzt.


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