AGB  ·  Datenschutz  ·  Impressum  







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

MVP richtig in Delphi implementieren?

Ein Thema von normancz · begonnen am 18. Apr 2012 · letzter Beitrag vom 24. Mai 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: MVP richtig in Delphi implementieren?

  Alt 29. Apr 2012, 02:41
Ich wünschte, jedesmal, wenn irgendjemand nen Post schreibt, in dem DSharp vorkommt, bekomm ich ne PM oder so

Erstmal mein ehrliches tiefes Beileid, dass du Delphi 2010 nutzt. Dort DSharp (bzw allgemein Source mit Generics etc) zum Laufen zu bringen, ist auch für mich das eine oder andere Mal ein Graus.

Ich muss nochmal nachfragen: möchtest du "nur" eine Trennung von GUI und Businesslogik oder auch noch die Steuerung über einen DI Container?
Zweites gestaltet sich zugegebenermaßen nicht immer so einfach durch die Gegenspieler TComponent und IInterface (bzgl der Steuerung ihrer lifetime).

Ich gehe hier erstmal auf den ersten Punkt ein, da er imo einfacher zu realisieren ist. Ich würde hier eine Art MVVM ohne extra ViewModel benutzen. Also eine Klasse, die die "Geldaufteillogik" und die entsprechenden Properties: wie viele 1, 2, 5, 10 Euro und Gesamtbetrag beinhaltet.

Diese sind mit Bindings ganz einfach an dein View knüpfbar. So weit, so gut. Man kann nun die unterschiedlichen Beträge einstellen.

Die Visualisierung kannst du unterschiedlich gestalten. Eine Möglichkeit wäre ein extra ViewModel, in der du die Eigenschaften, die du visuell darstellen willst (rot markierte Controls, Warnsymbol, ausgegrauter OK Button, etc) extra definierst und sie bei Änderung der einzustellenden Properties (die Anzahl der Geldbeträge in dem Beispiel)

Eine andere Möglichkeit, wäre mit Bindings und ValueConvertern. Zum Beispiel ein negativer Betrag auf clRed oder ähnliches.


Ob du nun das ganze händisch zusammen baust oder über einen DI Container, ist die anschließende Entscheidung. Auch, inwieweit der DI Container genutzt wird. Dient er nur als Container für einige Teile oder wird er schon von Anwendungsstart (wie z.B. im ContactManager Beispiel von DSharp) an genutzt. Davon hängt nämlich dann ab, wie du mit der "TComponent vs Interfaces" Sache umgehst (hab gerade keinen Link, aber die Sache haben wir hier im Forum auch schonmal besprochen). Auch die Art und Weise, wie du dann View und (View)Model zusammen setzt, hängt davon ab.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 25. Sep 2004
79 Beiträge
 
Delphi XE7 Professional
 
#2

AW: MVP richtig in Delphi implementieren?

  Alt 20. Mai 2012, 11:34
Hallo Stevie!

Wie kann ich mit DSharp/MVVM auf die Ereignisse verschiedener VCL-Controls bzw. Drag & Drop reagieren und bearbeiten?
Was ist da die beste Herangehensweise?


Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: MVP richtig in Delphi implementieren?

  Alt 23. Mai 2012, 10:05
Außer beim TreeviewPresenter gibt es keine eingebaute Logik, die das abhandelt.

Ich würde je nach Anwendungsfall empfehlen, zwar die entsprechenden Events zu benutzen, aber so wenig wie möglich auf die Controls bezogen zu sein.

Als Beispiel sollen mal 2 Listen dienen, bei denen ich aus der linken Liste Elemente auswählen kann und sie in die rechte Liste packen kann. Unabhängig von Drag&Drop wird es eine Methode im VM geben, um dies zu tun (so in der Art: RightList.Add(LeftList.SelectedItems)). Diese Methode kann man also im entsprechenden Event aufgerufen werden. Andere Events, die z.B. steuern, ob ich überhaupt ein Element auf ein Control droppen kann etc können analog dazu implementiert werden.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 25. Sep 2004
79 Beiträge
 
Delphi XE7 Professional
 
#4

AW: MVP richtig in Delphi implementieren?

  Alt 23. Mai 2012, 10:28
Gibt es dafür ein einfaches Beispiel?
MVVM/MVP ist für mich relativ neu.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: MVP richtig in Delphi implementieren?

  Alt 24. Mai 2012, 08:50
Ich hab grad mal unter Samples\MVVM\DragDrop ein kleines Beispiel commited.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 25. Sep 2004
79 Beiträge
 
Delphi XE7 Professional
 
#6

AW: MVP richtig in Delphi implementieren?

  Alt 24. Mai 2012, 08:56
Danke.

Deine Hilfsbereitschaft weiß ich sehr zu schätzen!
  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 18:58 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