![]() |
AW: [FMX] Combobox per Code mit Daten füllen
Das
![]() LB per Code funktioniert bei mir auch ganz gut. Habe allerdings auch kaum anspruchsvolle DB im Mobilteil, unter Sqlite. Ist mir auch sympatischer als das LB-Editor Stripenziehen. Wenn da mal was verrutscht (z.B. bei Updates) dann ist die Übersicht komplett vorbei. Um damit auf die Art aber größere DB-Projekte zu machen ... naja ... wäre ich zumindest vorsichtig :stupid: Rollo |
AW: [FMX] Combobox per Code mit Daten füllen
Zitat:
Delphi-Quellcode:
Procedure TForm14.FillCombobox(Const ACB : TCombobox;Const AFieldName : String);
var LBI : TListBoxItem; LEntries : ICanHandleDBListFields; i : Integer; begin LEntries := Database.GetListFields(AFieldName); ACB.BeginUpdate; ACB.Clear; try for i:=0 to LEntries.count-1 do begin LBI := NewListBoxEntry; // Erzeugt eine LBI mit Height=49 Stylelookup='listboxitembottomdetail' usw. LBI.Text := LEnties.Items[i].Text; LBI.Detail := LEnties.Items[i].Detail; LBI.Parent := ACB; end; finally ACB.EndUpdate; end; end; |
AW: [FMX] Combobox per Code mit Daten füllen
Wenn die Owner richtig gesetzt sind, dann wird alles automatisch freigegeben.
Und jup, in FMX gibt es keine DB-affinen Controls, da muß man alles irgendwie anders Binden. TDBEdit und Co. gibt es standardmäßig nur in der VCL und das sind auch nur TEdit, wo ein TDataLink intern dran hängt, der sowas wie das LiveBinding macht. |
AW: [FMX] Combobox per Code mit Daten füllen
Hallo Mavarik,
das ist auch nur ein Teil der Lösung. Wenn es richtig bidirectional arbeiten soll, und z.B. auch auf Updates von anderswoher reagieren soll wird es recht unangenehm. Ich versuche erstmal mit LB zu leben und mich damit anzufreunden. Funktionieren tut es in etwa, nur würde ich nicht zuviel erwarten bei komplexen Projekten. Ich gehe aber stark davon aus das es in Zukunft weiter entwickelt wird, und einen echten Ersatz für DB-Controls werden wird. Zumal es ja auch unter VCL arbeitet wird das wohl so etwas wie Embas ORM-Lösung werden. Ich bin gespannt. Gibt es vielleicht 3rd-Party Controls die man besser für DB+FMX Binding nutzen sollte ? Da weiss ich im Moment aber auch keine. Rollo |
AW: [FMX] Combobox per Code mit Daten füllen
Zitat:
Seit ich MVVM für mich entdeckt habe stellt sich diese Frage irgendwie nicht mehr... Was soll meine View mit irgend einer Datenbank Komponente? Meine View macht nur das was sie soll... Mein ViewModel steuert das... Mein Model kennt die Daten und bekommt entweder über eine Factory oder über den Constructor ein CRUD Interface für die Datenbank... Alle getrennt, alles schick, alles testbar... Abgesehen davon, dass es in den Schichten somit viel mehr Threading Möglichkeiten gibt, was das etwas mehr Kommunikationsoverhead deutlich wett-macht. Somit ist alles schneller... Mavarik |
AW: [FMX] Combobox per Code mit Daten füllen
Wenn der View nicht die Arbeit macht dann eben das ViewModel.
Irgendwo musst du ja die Logik reinbauen. Womöglich hast du Wrapper-Klassen für jede Komponente, die das dann optimal machen. Das wäre ja OK. Vom Code unten frage ich mich wie du das machst wenn nur ein Record in die DB "inserted" wird ? Immer die ganze ComboBox neuanlegen/neuzeichnen lassen, oder lässt du da auch nur das eine, richtige Item hinzufügen ? Das immer komplett Alles neuzuzeichen fände ich ziemlich unperformant. Rollo |
AW: [FMX] Combobox per Code mit Daten füllen
Zitat:
dann habe ich eine eigene Routine die eine View 1:1 an ein ViewModel "klöppelt". Wenn der User etwas eingibt, wir automatisch die entsprechende Property im Daten-Bereich des ViewModel geändert. Andererseits wenn sich das Model ändert, kann ich mit einem Refresh (1 Event) die View aktualisieren. Das Ding mit der Combobox war ja wenn ich es richtig verstanden habe "nur" für Fetchlisten -> Hole alle Anreden aus der Datenbank. Das füllen der Liste ist kein Thema und unter FMX wird ja per GPU nur das neu gezeichnet was auch sichtbar ist... wenn es nicht 10000 Einträge sind... Kaum messbar. Mavarik PS.: Bei 10000 Einträgen würden man sowieso ne Listview nehmen oder einen eigenen Pager bauchen... Niemand scrollt durch eine Liste von 10000 Einträgen. |
AW: [FMX] Combobox per Code mit Daten füllen
Die verwendung war so gedacht: Hole alle Datensätze (seien es meinetwegen Anreden) aus der Datenbank und zeige sie mir in der Combobox an. Dann wird eins Ausgewählt aus der Combobox (in diesem bespiel sei es mal "Herr"). Danach brauche ich die Informationen die es sonst noch zu dem Datensatz gibt. Also z.B. Briefanrede, Anrede_Nr, etc.
|
AW: [FMX] Combobox per Code mit Daten füllen
Zitat:
Also im OnChange der Combobox per TagObject, Tag oder was auch immer den Rest laden... ggf. (Falls lokale DB) kannst Du nach dem die Combobox gefüllt ist eine Thread starten (vorausgesetzt die Auswahl ist begrenzt) und hier alle Möglichkeiten preloaden... Dann ist bei einem OnChange das Ergebniss sofort da... Kommt aber stark auf die Anwendung an... Mavarik |
AW: [FMX] Combobox per Code mit Daten füllen
OK, Danke :D Gucke ich mir bei gelegenheit mal genauer an ob das sinnvoll ist oder nicht... ich mache jetzt erstmal wochenende!
Vielen Dank für die Hilfe und einen schönen Wochenabschluss wünsche ich :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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 by Thomas Breitkreuz