AGB  ·  Datenschutz  ·  Impressum  







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

FireMonkey ohne LiveBinding?

Ein Thema von stahli · begonnen am 15. Nov 2012 · letzter Beitrag vom 19. Nov 2012
Antwort Antwort
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 09:18
DSharp unterstützt (noch) keine Grids.
Sagt wer?

DSharp unterstützt den VirtualTreeview (vielfach als Grid benutzt), das TStringGrid (brrr, wer benutzt das freiwillig?), DevExpress Quantum Grid und TreeList, TMS AdvGrid
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (16. Nov 2012 um 09:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 09:51
Sorry, dann hatte ich das noch nicht erkannt.
Habe bisher nur oberflächlich etwas gelesen.

Aber für FM-Grids (insbes. TMSFMGrid) geht es noch nicht - oder?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 11:15
Ich nutze das TMS Grid genau aus diesem Grund nicht. Visual LiveBindings sind mir noch ein bisschen suspekt da ich mich damit noch nicht ausführlich genug beschäftigt habe und die Demos die ich gesehen habe noch nicht umfangreich genug waren.

Damit ich unter FM weiß wann was wo und wie mit einem Grid geschieht, mache ich das aktuell mit dem StringGrid *freu* händisch.
Sobald ich das Thema jedoch überblicke, werde ich sofort überall auf das TMS Grid umstellen.
Philip
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 12:11
@Darlo

Hier habe ich mal zu einem interessanten TMSFMGrid-Video verlinkt.

Kannst Du mal 2-3 Sätze schreiben, wie Du die Daten zurück in die Datenbank bringst, insbesondere wenn
- das Grid keine komplette Tabelle darstellt sondern z.B. einen Join oder eine View
- Zeilen gelöscht wurden (wie kann der User das?)
- Zeilen hinzugefügt wurden (wie und wann wird eine neue Id zugewiesen?)...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 12:19
@stahli

Im Anhang ein (schnell mal hingekritzelter) Ansatz wie das funktionieren könnte.
Angehängte Dateien
Dateityp: zip FMX_DataGrid.zip (4,6 KB, 31x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 18:03
@stahli

Im Anhang ein (schnell mal hingekritzelter) Ansatz wie das funktionieren könnte.
Schummelst Du???
So etwas kritzelt man doch nicht mal schnell...

Danke auf jeden Fall!
Das ist ganz schön komplex, bzw. ist ja einiges zu beachten.

Das TMSFMGrid ist allerdings etwas anders aufgebaut (Details muss ich mir noch anschauen.)

Löschen und Hinzufügen von Zeilen kann Deine Lösung ja aber so auch nicht.

Ich hatte angedacht, die CDS-Felder als fixe Objekte an die Zellen zu binden.
Dafür müsste man natürlich alle Felder und alle Zeilen bei der Dateninitialisierung füllen.
Evtl. wäre auch eine Überlegung, nur die Werte in die Zellen zu übernehmen und gar keine Bindung zur DB zu halten (oder wie DanielJ anregt, Datenobjekte als Schnittstelle an die Zeilen zu binden).
Das Rückschreiben (der neuen/geänderten/gelöschten Zeilen) müsste dann natürlich explizit und über SQL-Statements ausgelöst werden.

Da der User ja (bei entsprechenden Einstellungen) das TMSFMGrid ja beliebig sortieren und ggf. gruppieren kann, weiß ich nicht recht, ob Dein Ansatz dafür tauglich ist...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (16. Nov 2012 um 18:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 18:11
Das meinte ich auch mit mal so eben hingekritzelt und keine bis ins allerfeinste ausgeklügelte Lösung, sondern ein Ansatz, wie man es lösen kann.

Löschen, anfügen ist auch kein Problem das zu erweitern (anfügen ist etwas mehr Aufwand).

Löschen:

Im ViewModel einfach eine procedure Delete rein.
In der procedure zur entsprechenden Zeile im DataSet gehen und den Datensatz löschen.

In der View ruft man dass dann wie folgt auf:
Delphi-Quellcode:
procedure TMain_View.Delete_ButtonClick( Sender : TObject );
begin
  ViewModel.Delete;
  LoadFromModel;
end;
Für das Anfügen müsste man ein Flag im ViewModel setzen, dass man aktuell beim Anfügen ist (weil ja jetzt eine Zeile mehr als im DataSet vorhanden ist).
Aber viel mehr ist das auch nicht, die Basics sind da.

Und beim Post im ViewModel muss man dann eben die Daten per Append an das DataSet anhängen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (16. Nov 2012 um 18:14 Uhr)
  Mit Zitat antworten Zitat
DanielJ

Registriert seit: 8. Sep 2008
Ort: Hamburg
35 Beiträge
 
Delphi XE Professional
 
#8

AW: FireMonkey ohne LiveBinding?

  Alt 16. Nov 2012, 14:25
Kannst Du mal 2-3 Sätze schreiben, wie Du die Daten zurück in die Datenbank bringst, insbesondere wenn
- das Grid keine komplette Tabelle darstellt sondern z.B. einen Join oder eine View
- Zeilen gelöscht wurden (wie kann der User das?)
- Zeilen hinzugefügt wurden (wie und wann wird eine neue Id zugewiesen?)...
Wie währe es mit ein paar netten Daten-Objekten die du an deine Grid-Spalten hängen kannst. Bei Änderungen an einer Spalte erzählst du dem Angehängten Objekt davon. Das entscheidet dann ob, wo und wie das Gespeichert werden kann/muss.
Alles andere ist doch, mit oder ohne Livebindings, für mehr als eine Schnelle Datenansicht eh Murks!
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:41 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