AGB  ·  Datenschutz  ·  Impressum  







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

Keine Frames unter Firemonkey

Ein Thema von bernau · begonnen am 26. Sep 2011 · letzter Beitrag vom 29. Sep 2011
Antwort Antwort
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#1

AW: Keine Frames unter Firemonkey

  Alt 27. Sep 2011, 11:17
OK. Vieleicht bin ich nicht erfahren genug. Aber du kannst es mir ja erklären.
Ich wei0 nicht.
Folgende Vorgabe:
Ich habe eine Combobox. Je nachdem welcher Wert in dieser CB ausgewählt wird, wird eine zweite CB mit Daten gefüllt. Aus dieser wird wieder ein Eintrag ausgewählt. Je nach Wert wird eine dritte CB gefüllt und ggf. 3 weitere Edits eingeblendet. Diese Edits dürfen nur mit Zahlen gefüllt werden, di, je nachdem welcher Eintrag in der CB ausgewählt wurde, einen bestimmten Werteberreich nicht überschreiten darf.

Das ist jetzt eine recht simple Vorgabe. Aber wo, wenn nicht innerhalb der Form soll diese Logik untergebracht werden. Ich lerne immer wieder gerne dazu. Erkläre es mir.
Für Dich allein ist etwas viel Mühe, aber ich nehme den Auftrag an. Ich werde das mit DSharp umsetzen, damit wir alle etwas Neues lernen können.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Keine Frames unter Firemonkey

  Alt 27. Sep 2011, 13:32
Ich werde das mit DSharp umsetzen, damit wir alle etwas Neues lernen können.
Ick bin jespannt!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Keine Frames unter Firemonkey

  Alt 27. Sep 2011, 13:58
Ich werde das mit DSharp umsetzen, damit wir alle etwas Neues lernen können.
Ick bin jespannt!
Du glaubst wohl selbst nicht daran, oder?!

Im Anhang befinden sich die Quellen, sowie eine Exe. DSharp muss man nicht in der IDE installieren, wenn die Units im Suchpfad liegen.
Angehängte Grafiken
Dateityp: png Screenshot.png (26,7 KB, 41x aufgerufen)
Angehängte Dateien
Dateityp: rar DSharpBinding.rar (463,7 KB, 13x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Keine Frames unter Firemonkey

  Alt 27. Sep 2011, 16:14
Ich werde das mit DSharp umsetzen, damit wir alle etwas Neues lernen können.
Ick bin jespannt!
Du glaubst wohl selbst nicht daran, oder?!
Haha, doch. Ich find es nur spannend zu sehen, wie sich aus einer "fixen Idee" so langsam etwas entwickelt, womit auch andere arbeiten und was nicht nur in der Theorie toll klingt (einen Vorwurf, den man sich als "Designpattern- und Prinzipienfundamentalist" von den "Konservativen" (achtung Ironie ) oftmals vorwerfen lassen muss)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#5

AW: Keine Frames unter Firemonkey

  Alt 27. Sep 2011, 16:42
Ich find es nur spannend zu sehen, wie sich aus einer "fixen Idee" so langsam etwas entwickelt, womit auch andere arbeiten und was nicht nur in der Theorie toll klingt (einen Vorwurf, den man sich als "Designpattern- und Prinzipienfundamentalist" von den "Konservativen" (achtung Ironie ) oftmals vorwerfen lassen muss)
Zu Recht, zumindest solange der Praxis-Test fehlt.

Wenn Du Dir meine Demo anschaust, dann wirst Du bemerken, dass die Validierung, die an die Bindings angehangen wird, dort irgendwie nicht ganz passt. M.E. gehört da ein Callback zur Validierung in der Datenklasse als Möglichkeit dazu.

Gleichzeitig fehlt mir die Möglichkeit, Property- Änderungen, die die Validierung nicht passieren, zurück weisen zu können.

Ich habe mittels DI/Emballo die Datenklasse im Formular als Interface zur Verfügung gestellt, um die Unit-Referenz zu entsorgen. Leider werden nun die Bindings nicht mehr frei gegeben und ich erhalte ein Memoryleak. Wie werden die TBindings explizit wieder frei gegeben?
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Keine Frames unter Firemonkey

  Alt 27. Sep 2011, 16:53
Zu Recht, zumindest solange der Praxis-Test fehlt.
Deshalb freu ick mir ja gerade so, dass es etwas in Gang kommt

Wenn Du Dir meine Demo anschaust, dann wirst Du bemerken, dass die Validierung, die an die Bindings angehangen wird, dort irgendwie nicht ganz passt. M.E. gehört da ein Callback zur Validierung in der Datenklasse als Möglichkeit dazu.
Jein, so ist die Validierung auch entkoppelt. Man kann sich aber ohne Probleme eine ValidationRule erstellen, die über ein Callback arbeitet. Problem in dem Demo ist, dass die ValidationRule im Model gebaut wird. Da gehört sich imo nicht hin, sondern im wire up code. Ist aber insgesamt ein Problem, auch in WPF gibt es dahingehend verschiedene Ansätze, das ganze über das ViewModel zu machen oder nicht. Dazu kann man auch an BindingGroups Validations hängen.

Gleichzeitig fehlt mir die Möglichkeit, Property- Änderungen, die die Validierung nicht passieren, zurück weisen zu können.
Hm, wenn die Validierung fehlschlägt, wird eigentlich der Wert nicht übertragen (wenn doch, ist das ein Bug) - was evtl der Fall sein kann, ist, dass das Control nicht "zurückgesetzt" wird. Das enthält dann nämlich noch den invaliden Wert.

Ich habe mittels DI/Emballo die Datenklasse im Formular als Interface zur Verfügung gestellt, um die Unit-Referenz zu entsorgen. Leider werden nun die Bindings nicht mehr frei gegeben und ich erhalte ein Memoryleak. Wie werden die TBindings explizit wieder frei gegeben?
Die Bindings entweder über ihre TBindingGroup freigegeben. Sollten sie keiner BindingGroup angehören über Source oder Target (wenn eins von beiden von TComponent ist).

Falls es noch Probleme gibt, einfach nochmal aktuelle Version uppen und ich schau mal drüber.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (27. Sep 2011 um 16:57 Uhr)
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
634 Beiträge
 
Delphi XE6 Enterprise
 
#7

AW: Keine Frames unter Firemonkey

  Alt 29. Sep 2011, 09:45
Nach der reinen Lehre, wie sie z.B. von Vordenkern wie Fowler (*) vertreten wird, muss jede Form durch eine dumme Webseite ersetzbar sein, d.h. irgendeine Art von Eingabelogik hat auf der Form gar nichts zu suchen. Erst beim "Abschicken" wird validiert und der Anwender ggfs. durch farbige Markierungen auf Eingabefehler aufmerksam gemacht.

Meine Meinung: Mit solchen Programmen macht die Arbeit keine Freude...


------------------------------------
(*) schreibt er in "Patterns of Enterprise Application Architecture". Das Buch wurde Jahre vor "AJAX" geschrieben (2002), damals waren Webseiten tatsächlich noch "dumm".
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#8

AW: Keine Frames unter Firemonkey

  Alt 29. Sep 2011, 11:28
Wenn Du Dir meine Demo anschaust, dann wirst Du bemerken, dass die Validierung, die an die Bindings angehangen wird, dort irgendwie nicht ganz passt. M.E. gehört da ein Callback zur Validierung in der Datenklasse als Möglichkeit dazu.
Jein, so ist die Validierung auch entkoppelt. Ist aber insgesamt ein Problem, auch in WPF gibt es dahingehend verschiedene Ansätze, das ganze über das ViewModel zu machen oder nicht.
Im Moment ist sie dafür an das Binding gekoppelt.
Man kann sich aber ohne Probleme eine ValidationRule erstellen, die über ein Callback arbeitet. Problem in dem Demo ist, dass die ValidationRule im Model gebaut wird. Da gehört sich imo nicht hin, sondern im wire up code.
Im Formular ist keine DSharp-Unit erforderlich und das war mein Ziel. Und wenn DSharp zukünftig beide Ansätze unterstützt, kann die Diskussion führen wer will und sich zumindest nicht an mangelnder Funktionalität fest machen
Gleichzeitig fehlt mir die Möglichkeit, Property- Änderungen, die die Validierung nicht passieren, zurück weisen zu können.
Hm, wenn die Validierung fehlschlägt, wird eigentlich der Wert nicht übertragen (wenn doch, ist das ein Bug) - was evtl der Fall sein kann, ist, dass das Control nicht "zurückgesetzt" wird. Das enthält dann nämlich noch den invaliden Wert.
Logisch, und nun?

Ich habe mittels DI/Emballo die Datenklasse im Formular als Interface zur Verfügung gestellt, um die Unit-Referenz zu entsorgen. Leider werden nun die Bindings nicht mehr frei gegeben und ich erhalte ein Memoryleak. Wie werden die TBindings explizit wieder frei gegeben?
Die Bindings entweder über ihre TBindingGroup freigegeben. Sollten sie keiner BindingGroup angehören über Source oder Target (wenn eins von beiden von TComponent ist).

Falls es noch Probleme gibt, einfach nochmal aktuelle Version uppen und ich schau mal drüber.
Ich werde einmal etwas vorbereiten und dazu auch ein Refactoring der Datenklasse durchführen, weil sich mein "Zeig-Du-Mir-Wie's-Geht-AG" ja nun aus der Diskussion verabschiedet hat.
Andreas
  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 02:15 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