AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Livebinding Problem mit Combobox auf Datenfeld

Ein Thema von helste · begonnen am 7. Jan 2013 · letzter Beitrag vom 9. Jan 2013
Antwort Antwort
Seite 1 von 3  1 23      
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Livebinding Problem mit Combobox auf Datenfeld

  Alt 7. Jan 2013, 17:40
Ich habe gerade XE3 installiert und fange an mich mit Livebindings zu beschäftigen.
So ungefähr habe ich das auch schon verstanden und mit dem vissuellen Livebindingseditor ist das eigentlich ganz einfach.
Jetzt hänge ich aber bei einem wohl trivialen Problem und habe nach stundenlangem Herumprobieren und Googeln keine Lösung gefunden.

Ich habe eine Datentabelle mit einem Integer Feld, welches einen bestimmten Wert zwischen 0 und sagen wir mal 10 hat.
Jeder dieser Werte repräsentiert eine bestimmte Eigenschaft.
Beispiel:
0 = undefiniert
1 = Eigenschaft 1
2 = Eigenschaft 2
3 = Eigenschaft 3

etc.

Nun habe ich auf dem Eingabeformular eine Combobox, platziert und möchte diese zum einen mit Items füllen, die eben den Eigenschaften entsprechen, also undefeiniert, Eigenschaft 1, etc.
Aus der Combobox soll eine Eigenschaft ausgewählt werden können und in der Datenbank soll dann entsprechend der Integerwert (in dem Fall also eigentlich Itemindex) gespeichert werden.
Umgekehrt soll natürlich auch anhand des gespeicherten Wertes gleich der Itemindex der Combobox gesetzt werden, damit der richtige Eigenschaftstext angezeigt wird.
Das möchte ich über Livebindings ralisieren. Irgendwie funktioneirt das aber nicht. Binde ich itemindex an das Feld, dann wird es zwar richtgi angezeigt, aber ich kann dann den Feldwert nicht neu setzen.
Außerdem bräuchte ich unter Umständen noch einen Weg für den nicht so trivialen Fall, dass der Feldwert genau dem Itemindex entspricht, sondern die Einträge der Auswahlliste durchaus eine andere Sortierung haben sollten, als der Integer Wert im Datenfeld, den sie repräsentieren.

Kann mir da vielleicht jemand auf die Sprünge helfen, bevor ich gleich wieder die Livebindings ad acta lege, noch ehe ich richtig damit angefangen habe?
Blöderweise gibt es jede Menge Tutorials, aber genau diese Problematik, die doch eigentlich so gängig sein sollte, wird nirgendwo erklärt.

Danke schon mal im Voraus.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 7. Jan 2013, 18:07
Außerdem bräuchte ich unter Umständen noch einen Weg für den nicht so trivialen Fall, dass der Feldwert NICHT genau dem Itemindex entspricht, sondern die Einträge der Auswahlliste durchaus eine andere Sortierung haben sollten, als der Integer Wert im Datenfeld, den sie repräsentieren.
Da fehlt wohl ein "nicht", dann wird es verständlicher...

Da stößt Du genau auf die Probleme mit dem DataBinding (neben dem Gitter-Problem).
Für manche Dinge sind die schon nützlich, man stößt aber schnell an Grenzen wenn man ein paar etwas speziellere Anforderungen/Wünsche hat.
Allgemein kann ich jetzt nicht sagen, wie die ItemIndex-Bindung möglich ist (schaue heute Abend mal nach). Spätestens, wenn Du die Reihenfolge ändern willst, musst Du eine "Übersetzung" hinterlegen. Du musst irgendwo nachsehen, welchen Index Du für Deinen Wert brauchst und umgekehrt. Dazu musst Du irgendwelchen Code ausführen. In einer einfachen Expression kannst Du das nicht erledigen ... außer, Du ruftst in der Expression eine Funktion auf - dann kannst Du das aber auch in einer Ereignisbehandlung durchführen.

Die Möglichkeiten einer Datenbindung sind da begrenzt.

Für manche Aufgaben sind sie praktisch und nützlich, aber sie haben ihre Schwächen und Tücken.


EDIT: Oh, herzlich willkommen noch!
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli ( 7. Jan 2013 um 18:09 Uhr)
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 7. Jan 2013, 18:13
Danke für Deine Antwort. Ja, ein NICHT macht es verständlicher. Sorry, Deutsch ist eine Fremdsprache für mich. Bin nämlich Österreicher

Der triviale Fall, wo Itemindex dem wert in der Tabelle entspricht, wäre schon mal ein Anfang.
Wenn ich dann noch wüsste, ob es einen Eventhandler gibt, der zum Ermitteln des zu speichernden Wertes aufgerufen wird, dann könnte ich darüber dann auch eine Umsetzung von Itemindex auf einen beliebigen anderen Integerwert einfach realisieren.
Ist halt alles noch neu für mich. Jetzt fühle ich mich wieder wie ein blutiger Programmieranfänger, obwohl ich seit Turbopascal 3.0 dabei bin.

Edit: Achja, noch ein Zusatz: Den nicht trivialen Fall kann ich auch ganz simpel in einem Trigger der Datenbank erledigen. Reicht also erst mal die Verbindung Itemindex zum Datenfeld.

Edit2: Und danke für den Willkommensgruß. Bin hier ja schon lange registriert, habe bisher aber nur gelesen.

Geändert von helste ( 7. Jan 2013 um 18:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 7. Jan 2013, 18:26
Was noch interessant sein könnte: Suchst Du eine Lösung für VCL oder FMX (kann ja u.U. leichte Differenzen geben)?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#5

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 7. Jan 2013, 18:32
Hier mein Versuch unter der VCL mit den LiveBindings und einer Combobox. Link

Ich habe es mittlerweile aufgegeben mit Livebindings zu arbeiten. Aus meiner Sicht sind die LiveBindings nicht ausgereift und selbst die Standard-Komponenten von Delphi werden nicht richtig unterstützt (z.B. DateTimePicker).
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 7. Jan 2013, 18:44
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 8. Jan 2013, 08:13
Danke für die Antworten.
Aktuell suche ich eine Lösung für Firemonkey.
Ich habe auch schon festgestellt, dass es bei Livebindings merkwürdige Phänomene gibt, habe das aber eher dem Umstand, dass ich damit noch keine Erfahrung habe und eventuell Fehler bei der Anwendung gemacht habe, zugerechnet.
Dabei habe ich extra von XE2 auf XE3 upgegraded, damit ich den visuellen Livebinding Editor nutzen kann, weil das in XE2 sehr umständlich war.
Sieht auch ganz nett aus und ist für einige Dinge ganz praktisch, aber wenn man dann schon bei so einfachen Aufgaben scheitert, wird es mühsam.
Eventuell werde ich einen Mix aus Livebindings und konventionellem Vorgehen nutzen.

Wenn aber wer für die Verbindung von Itemindex in einer Combobox zu einem Datenfeld eine Lösung hat, wäre ich für Hinweise dankbar.

Rolf, Deinen Beitrag bzw. den ganzen Thread aus dem Oktober habe ich gelesen, aber daraus kann ich nicht erkennen, wie Du Itemindex mit dem Datenfeld verbunden hast, sodass auch der itemindex gespeichert wird.
Wenn ich Itemindex mit dem Datenfeld verbinde, so ist das immer nur unidirektional und dient daher nur der Darstellung des Datenbankwertes.

Oder habe ich da noch was übersehen?
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 8. Jan 2013, 08:21
Wenn aber wer für die Verbindung von Itemindex in einer Combobox zu einem Datenfeld eine Lösung hat, wäre ich für Hinweise dankbar.
Hinweis: Third-Party Controls, also TMS, DevExpress usw. Erst damit macht das Programmieren Spaß. Obwohl, Quatsch. Programmieren macht sowieso Spaß, aber mit besseren Controls macht es noch mehr Spaß und spart Zeit und bringt mehr Geld.
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 8. Jan 2013, 08:30
Ja, das ist mir schon klar. Deshalb habe ich auch so gut wie alles, was es von TMS gibt. Auch die Firemonkeysuite.
Habe sie aber erst kurz. Gibt es da einen Comboboxersatz, wo das problemlos funktioniert?
Muss ich gleich mal genauer schauen.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Livebinding Problem mit Combobox auf Datenfeld

  Alt 8. Jan 2013, 09:26
Hast Du meinen Beitrag von gestern gesehen: http://www.delphipraxis.net/172249-d...ml#post1198159 ?
Am Videoanfang habe ich mal unter FMX Dein Problem versucht zu lösen. Ist mir aber nicht gelungen.
Ich denke nicht, dass Du Dich zu ungeschickt anstellst. Die LB sind einfach der falsche Ansatz.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 04: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