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/)
-   -   FMX: Controls und DB (https://www.delphipraxis.net/217192-fmx-controls-und-db.html)

TigerLilly 19. Mai 2025 12:45

FMX: Controls und DB
 
Ich hab die DB-Controls der VCL sehr brauchbar gefunden und FMX gibt es nun ja schon eine Weile, aber etwass vergleichbares gibt es da nicht.
Mich wundert, dass LiveBindings sich nicht recht entwicklen und es auch keine 3rd Party Libs gibt, die den Transfer DB-Controls unterstützen. Soweit ich das übersehe, sind das bisher alles nur Flickwerke (kann nur lesen) und punktuelle Lösungen (TMS Grid Adapter).

Übersehe ich etwas? Wie handhabt Ihr das?

fisipjm 19. Mai 2025 12:53

AW: FMX: Controls und DB
 
Zitat:

Zitat von TigerLilly (Beitrag 1548684)
Mich wundert, dass LiveBindings sich nicht recht entwicklen

was funktioniert denn nicht? Du Kannst eigentlich so gut wie alles Über die LiveBindings anbinden, meistens sogar Bidirektional.

TigerLilly 19. Mai 2025 12:59

AW: FMX: Controls und DB
 
Naja, das wird a) rasch unübersichtlich + b) 3rd Party Libs bleiben oft außen vor.

Uwe Raabe 19. Mai 2025 13:28

AW: FMX: Controls und DB
 
Zitat:

Zitat von TigerLilly (Beitrag 1548684)
Übersehe ich etwas?

Mit DataSense versuche ich diese Lücke zu füllen. Hier das Beispiel aus CmonLib.

Es fehlt leider noch die Unterstützung für Listen, weswegen in den Beispielen noch TDBGrid bzw. Bindings verwendet werden.

Bei 3rd-party Controls müssen diese natürlich ebenfalls die jeweilen Observer-Interfaces verwenden. Andernfalls funktionieren die LiveBindings aber auch nicht.

fisipjm 19. Mai 2025 14:43

AW: FMX: Controls und DB
 
Da hast du wirklich mal wieder gezaubert :)
Gibt es den mit DataSense die Möglichkeit Daten für die Anzeige zu "Konvertieren"? Ich schreibe mir aktuell z.B. das Datum in einer Android APP im ISO 8601 Format in die Datenbank und in den LiveBindings gibt's von Haus aus leider keine Konverter dafür, weshalb ich mir einen eignen schreiben musste.

Uwe Raabe 19. Mai 2025 15:53

AW: FMX: Controls und DB
 
Zitat:

Zitat von fisipjm (Beitrag 1548688)
Gibt es den mit DataSense die Möglichkeit Daten für die Anzeige zu "Konvertieren"? Ich schreibe mir aktuell z.B. das Datum in einer Android APP im ISO 8601 Format in die Datenbank und in den LiveBindings gibt's von Haus aus leider keine Konverter dafür, weshalb ich mir einen eignen schreiben musste.

Das brauche ich noch etwas konkreter: Was für ein Control wird mit was für einem Datenbankfeld verknüpft?

TigerLilly 20. Mai 2025 06:14

AW: FMX: Controls und DB
 
Ihr kapert den Thread. :-/

Immer noch interessiert mich, wie andere das machen: Daten ins Formular zum Bearbeiten und retour. Die Db-sensitiven Kompoonenten der VCL hatten da schon einiges an Bord.

AuronTLG 20. Mai 2025 08:26

AW: FMX: Controls und DB
 
Ich mache das ganz klassisch manuell, wie mans früher in der Softwaretechnik mit den Observer/Listener-Patterns gelernt hat, aber auch nur wenn notwendig. Ich habe die Livebindings bisher noch nicht angerührt, weil mich der Livebinding-Designer rein optisch bereits verstört, aber irgendwann werde ich denen vielleicht mal eine Chance geben.
Bei Apps ist es oft jedoch der Fall, dass der Anwender der einzige ist, der mit der Datenbank interagiert. Wenn es keine Chance gibt, dass während dem Anwender-Zugriff Datenbankänderungen passieren, mache ich mir nicht die Mühe, irgendwelche komplizierten Konstruktionen zu bauen.

Uwe Raabe 20. Mai 2025 09:52

AW: FMX: Controls und DB
 
Zitat:

Zitat von TigerLilly (Beitrag 1548699)
Ihr kapert den Thread. :-/

Sorry, aber ich bin immer noch der Meinung, dass das ziemlich gut zum Thema passt.

Zitat:

Zitat von TigerLilly (Beitrag 1548699)
Immer noch interessiert mich, wie andere das machen: Daten ins Formular zum Bearbeiten und retour. Die Db-sensitiven Kompoonenten der VCL hatten da schon einiges an Bord.

Wie schon gesagt, DataSense ist ein direkter Ersatz der unter FMX fehlenden datensensitiven Controls der VCL. Zusätzlich ermöglicht es auch nicht-datensensitive VCL-Controls zu datensensitiven zu machen. Klingt eigentlich genau nach dem was du willst.

Technisch liegt es zwischen DB-Controls und Live-Bindings. Es verwendet die für die Bindings notwendigen Funktionalitäten der Controls (Observer), baut allerdings auf die auch bei den DB-Controls verwendeten TDataLink-Ableitungen auf. All das gewürzt mit etwas Syntactic Sugar und einer Prise Delphi Magie :)

Uwe Raabe 20. Mai 2025 11:26

AW: FMX: Controls und DB
 
Zitat:

Zitat von fisipjm (Beitrag 1548688)
Gibt es den mit DataSense die Möglichkeit Daten für die Anzeige zu "Konvertieren"?

Ich war eigentlich sicher, dass man das über das OnGetText/OnSetText des Fields regeln kann, aber das war bisher nur für VCL so. Das neueste Commit zieht das Verhalten auch für FMX nach.

Rollo62 20. Mai 2025 12:41

AW: FMX: Controls und DB
 
Zitat:

Zitat von TigerLilly (Beitrag 1548686)
Naja, das wird a) rasch unübersichtlich

Ich finde den LiveBindings-Designer auch recht unübersichtlich.
Deshalb mache ich meine eigenen Zugriffsklassen dafür, ähnlich wie es wohl Uwe auch macht.
Der LiveBindings-Designer hilft um die notwendigen Klassen experimentell zu ermitteln und deren Verschaltung.
Diese kann man auch wunderbar per Runtime direkt benutzen und sich bequeme Zugriffskomponenten darum bauen.

Zitat:

Zitat von TigerLilly (Beitrag 1548686)
b) 3rd Party Libs bleiben oft außen vor.

Das ist meiner Meinung nach deshalb, weil der ganze LiveBindings-Mechanismus nicht optimal aufgebaut ist und keiner der 3rd Party Entwickler sich damit so richtig professionell beschäftigen möchte.
(Da wird man dann gleich als jemand angesehen, der ein totes Pferd reitet. )
Embarcadero täte gut daran, die LB mal stark und entschlossen nachzuschärfen und Performance und Benutzbarkeit zu optimieren ( nicht nur über Designer ).

Die LB haben theoretisch sehr großes Potenzial, auch für VCL, wenn man diese nur richtig supporten würde.

stahli 20. Mai 2025 12:57

AW: FMX: Controls und DB
 
Ich hatte hier mal bissl rum gespielt.

Zwar habe ich das in der Form aufgegeben, aber falls nochmal jemand rumstöbern will: https://www.delphipraxis.net/173360-...framework.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz