AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte DSharp - Data bindings, MVVM und mehr für Delphi 2010 und höher

DSharp - Data bindings, MVVM und mehr für Delphi 2010 und höher

Ein Thema von Stevie · begonnen am 18. Nov 2011 · letzter Beitrag vom 6. Feb 2015
Antwort Antwort
Seite 3 von 5     123 45   
Benutzerbild von Stevie
Stevie
Registriert seit: 12. Aug 2003
Da das Thema DSharp nun doch des öfteren in diversen Threads auftaucht und dort dann oft bezüglich des eigentlichen Themas des Threads doch eher OT ist, mach ich hier mal den "offiziellen DP DSharp Diskussions Thread" auf

Was ist eigentlich DSharp?

Das D im Namen kommt natürlich von Delphi und das Sharp daher, da viele Konzepte aus der C# Welt stammen - und da die .Net Sprache von Embarcadero Prism heißt, war das noch nicht anderweitig belegt

Einen Großteil von DSharp macht das DataBinding aus. Ähnlich wie LiveBindings aber nicht so komplex und auf die Kernfunktionalitäten konzentriert. Und schon ab Delphi 2010 lauffähig - mit einigen wenigen Ausnahmen. Darauf aufbauend ist ein MVVM Framework (gerade im Aufbau) enthalten, was Entwickler dabei unterstützen soll, auf einfachem Wege hochmodulare GUI Anwendungen zu schreiben, die durch ihre entkoppelten Teile eine hohe Wartbarkeit und Testbarkeit haben. Dabei wird der DI Container von spring4d genutzt. Andere Teile von DSharp stellen AOP (über Proxies für Interfaces und Patchen der VMT für virtuelle Methoden) und Mocks bereit.
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (21. Mär 2014 um 09:33 Uhr)
 
BlackSeven

 
Delphi XE7 Professional
 
#21
  Alt 30. Mai 2012, 12:17
Habe gerade festgestellt, dass die DSharp-Multicast Events nun auch anonyme Methoden unterstützen.


  Mit Zitat antworten Zitat
BlackSeven

 
Delphi XE7 Professional
 
#22
  Alt 13. Jun 2012, 09:48
Hallo Stevie!

Ich bekomme folgenden Fehler, wenn ich ein Multicast Event in einem Multicast Event auslöse. Dieser Fehler tritt nur bei anonymen Methoden und nicht bei Methodenzeigern auf.

Exception: First chance exception at $746C23CC. Exception class $C0000092 with message 'floating point stack check at 0x746c23cc'. Process Project1.exe (2052)

Delphi-Quellcode:
  {$M+}
  TEventTest = reference to procedure;
  {$M-}

  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private

    _EventTest1 : Event<TEventTest>;
    _EventTest2 : Event<TEventTest>;

    procedure ProcessEventTest1;
    procedure ProcessEventTest2;

    function GeteventTest1: Event<TEventTest>;
    function GeteventTest2: Event<TEventTest>;

    property EventTest1: Event<TEventtest> read GetEventTest1;
    property EventTest2: Event<TEventtest> read GetEventTest2;

  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

  Self.EventTest1.Add(Self.ProcessEventTest1);
  Self.EventTest2.Add(Self.ProcessEventTest2);

  _EventTest1.Invoke();

end;

procedure TForm1.ProcessEventTest1;
begin

  _EventTest2.Invoke(); <- hier

end;

procedure TForm1.ProcessEventTest2;
begin
//
end;

function TForm1.GetEventTest1: Event<TEventTest>;
begin

  Result := _EventTest1.EventHandler;

end;

function TForm1.GetEventTest2: Event<TEventTest>;
begin

  Result := _EventTest2.EventHandler;

end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

 
Delphi 10.1 Berlin Enterprise
 
#23
  Alt 13. Jun 2012, 20:47
Fix commited - ich hätte auf Arnaud hören sollen.

Ein Hinweis noch: Du solltest event properties immer als IEvent<T> definieren.
Stefan
  Mit Zitat antworten Zitat
BlackSeven

 
Delphi XE7 Professional
 
#24
  Alt 14. Jun 2012, 08:09
Zitat:
Ein Hinweis noch: Du solltest event properties immer als IEvent<T> definieren.
OK. Danke.
  Mit Zitat antworten Zitat
pHL

 
Delphi XE2 Professional
 
#25
  Alt 26. Jun 2012, 13:05
Hallo,

Ich habe mir gerade das VirtualTreeViewSample von DSharp angeschaut und wollte etwas ähnliches mit einem TcxGrid von DevExpress nachbauen.
Daher meine Frage: Funktioniert der GridViewPresenter noch nicht oder habe ich die Units einfach nicht richtig eingebunden? Ich bekomme beim
Kompilieren nämlich einen Fehler dass cxTL nicht gefunden wird.

Mfg.
pHL
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

 
Delphi 10.1 Berlin Enterprise
 
#26
  Alt 26. Jun 2012, 14:25
Ich habe mir gerade das VirtualTreeViewSample von DSharp angeschaut und wollte etwas ähnliches mit einem TcxGrid von DevExpress nachbauen.
Daher meine Frage: Funktioniert der GridViewPresenter noch nicht oder habe ich die Units einfach nicht richtig eingebunden? Ich bekomme beim
Kompilieren nämlich einen Fehler dass cxTL nicht gefunden wird.
Vermutlich hast du nur das Quantum Grid und nicht die Quantum TreeList von DevExpress?

In dem Fall, schmeiß die DSharp.DevExpress.TreeListPresenter.pas aus dem Package und passe die DSharp.DevExpress.Designtime.pas entsprechend an.

Edit: Auch die cxTreeList aus der requires des Packages nehmen.
Stefan

Geändert von Stevie (26. Jun 2012 um 14:32 Uhr)
  Mit Zitat antworten Zitat
pHL

 
Delphi XE2 Professional
 
#27
  Alt 26. Jun 2012, 16:10
Danke schonmal, ich habe einen TcxTreeView, keine Ahnung ob das nun zur Quantum Treelist gehört habe die Komponenten
noch nicht lange. Ansonsten mache ich es so.

Sollte der GridViewPresenter eine visuelle Komponente sein? Wenn ja dann habe ich einen Fehler beim installieren gemacht.

Mfg.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

 
Delphi 10.1 Berlin Enterprise
 
#28
  Alt 27. Jun 2012, 00:00
Danke schonmal, ich habe einen TcxTreeView, keine Ahnung ob das nun zur Quantum Treelist gehört habe die Komponenten
noch nicht lange. Ansonsten mache ich es so.

Sollte der GridViewPresenter eine visuelle Komponente sein? Wenn ja dann habe ich einen Fehler beim installieren gemacht.

Mfg.
TcxTreeView ist der "Standard" Treeview, TcxTreeList ist eher sowas wie der Virtual Treeview. Wenn du die VCL Subscription oder das ExpressGridPack hast, dann ist das dabei, beim ExpressQuantumPack nicht.

Aber ich sehe gerade, dass ich das Package mit den DevExpress Presentern gar nicht commited habe Werd ich morgen mal machen
Stefan
  Mit Zitat antworten Zitat
pHL

 
Delphi XE2 Professional
 
#29
  Alt 27. Jun 2012, 07:01
Alles klar dankeschön, dann passe ich das Package an dann sollts laufen.

Mfg.
pHL
  Mit Zitat antworten Zitat
BlackSeven

 
Delphi XE7 Professional
 
#30
  Alt 10. Jul 2012, 15:28
Hallo Stefan,

folgender Code löst eine Exception aus:
Delphi-Quellcode:
type

  {$M+}
  TEventTest = reference to procedure(const AValue: Int64);
  {$M-}

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    _EventTest : Event<TEventTest>;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

  _EventTest.EventHandler.Add
  (

    procedure(const AValue: Int64)
    begin

      ShowMessage(IntToStr(AValue));

    end

  );

  _EventTest.EventHandler.Invoke(1);

end;
Das Problem liegt an Int64.
Zitat:
TEventTest = reference to procedure(const AValue: Int64);
Mit Int32 funktioniert das Ganze.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz