Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie DSharp in Community Edition 10.3 compilieren (https://www.delphipraxis.net/200510-wie-dsharp-community-edition-10-3-compilieren.html)

jus 26. Apr 2019 19:08

Wie DSharp in Community Edition 10.3 compilieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe mich mal endlich durchgerungen eine aktuelle Community Edition 10.3 auf einen neuen Rechner zu installieren, da ich gerne die DSharp Komponente wegen MVVM für meine Zwecke mal ausführlich testen wollte. Da ich die Komponente noch nie benutzt habe, bräuchte ich schon Hilfe bei Installation. :oops:
So wie ich es verstanden habe, benötigt DSharp zunächst die Spring4D Komponente. Bei der wurde erfreulicher Weise eine Build.exe mitgeliefert, sodass die Installation automatisch ablief.
Es gibt im DSharp Unterverzeichnis ".\Packages\Delphi0Tokyo\BuildPackages.grouppr oj". Doch wenn ich diese in Delphi reinlade und versuche das Projekt "DSharp.Core.dproj" zu kompilieren kommen dann Fehlermeldungen siehe Screenshot im Anhang. Doch wie installiert man die DSharp Komponente richtig in der aktuellen Community Edition 10.3? :gruebel:

Lg,
jus

hoika 27. Apr 2019 07:34

AW: Wie DSharp in Community Edition 10.3 compilieren
 
Hallo,
Zeile 173 erzeugt einen Compiler-Fehler.
Muss vielleicht irgendwo ein IFDEF erweitert werden, um die aktuelle Compilerversion zu unterstützen?
Viell. gibt es ja auch schon eine neuere Version?

Die Anzahl der Warnungen lässt nicht auf sauberen Code schließen.

Rainer Wolff 27. Apr 2019 17:45

AW: Wie DSharp in Community Edition 10.3 compilieren
 
auf was für einer Version bist du denn???

Der aktuellste commit bei Stefan ist im Branch

https://bitbucket.org/sglienke/dshar...h/spring-1.2.1

Bietet Unterstützung für Rio und compiliert bei mir wunderbar ohne Fehler oder Warnungen. Stefan legt auch einen hohen Wert auf die Codequalität.

jus 3. Mai 2019 11:32

AW: Wie DSharp in Community Edition 10.3 compilieren
 
@Rainer Wolff: ok, hast recht gehabt, habe nicht in den verschiedenen Branches nachgeschaut, da ich davon ausgegangen bin, dass im master immer das Aktuelle drin ist. :oops: Mit der dem Branch spring-1.2.1 läßt es sich kompilieren. Vielen Dank für den Hinweis! :thumb:
Was mir aber aufgefallen ist, ist dass ein großer Teil der mitgelieferten Beispiele insbesondere MVVM und TreeviewPresenter_Beispiel nicht funktionieren. Ich weiß halt nur nicht, ob es an meiner speziellen Branch Version liegt oder ob es generell so ist.
Ich muß zugeben, da ich bisher nur mit Delphi 2007 gearbeitet habe noch nie mit einem MVVM Framework gearbeitet habe, ist es ziemlich harter Brocken für mich. Gibt es eigentlich noch mehr funktionierende Beispiele bezgl. MVVM und VirtualStringTree?

lg,
jus

Schokohase 3. Mai 2019 11:41

AW: Wie DSharp in Community Edition 10.3 compilieren
 
  • Stefan Glienke ist der Autor von DSharp und Spring4D
  • Stefan Glienke hat gesagt, dass er MVVM mit Delphi aufgegeben hat.
Was würdest du daraus schließen?

Sherlock 3. Mai 2019 12:54

AW: Wie DSharp in Community Edition 10.3 compilieren
 
Zitat:

Zitat von Schokohase (Beitrag 1431512)
  • Stefan Glienke ist der Autor von DSharp und Spring4D
  • Stefan Glienke hat gesagt, dass er MVVM mit Delphi aufgegeben hat.
Was würdest du daraus schließen?

Für Stefan Glienke ist Delphi, so wie es ist, gut genug? :D

*SCNR*

Sherlock

hoika 3. Mai 2019 13:19

AW: Wie DSharp in Community Edition 10.3 compilieren
 
Hallo,
warum Oberfläche und Code trennen?

Diese Vorgehensweise habe ich nie verstanden, wozu habe ich ein RAD-Tool?
- Button aufs Form
- Doppelklick drauf an dann den Code komplett in OnClick, auch wenn er 2.000 Zeilen lang ist
Zur Not kann man ja Unterprozeduren machen und die Variablen direkt im OnClick definieren,
das spart Übergabeparameter.

Ah so, ja
</Ironie>

jus 8. Mai 2019 22:15

AW: Wie DSharp in Community Edition 10.3 compilieren
 
Zitat:

Zitat von Schokohase (Beitrag 1431512)
  • Stefan Glienke ist der Autor von DSharp und Spring4D
  • Stefan Glienke hat gesagt, dass er MVVM mit Delphi aufgegeben hat.
Was würdest du daraus schließen?

@Schokohase: ok, das war eine Info die ich nicht hatte, darum vielen Dank.

Die gute Nachricht für Leute, die die VST mit DSharp verwenden wollen, ist, dass laut dem Entwickler der TreeViewPresenter Teil noch weitergepflegt wird.

Ich habe im vorigen Beitrag geschrieben, dass das \dsharp\Samples\DelphiTage\TreeviewPresenter Beispiel in DSharp Branch "spring-1.2.1" nicht kompiliert. Dies ließ sich mit folgenden geringfügigen Änderungen nun in der Delphi Community Edition 10.3 kompilieren:

Main.pas:
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DSharp.Windows.ColumnDefinitions, DSharp.Windows.CustomPresenter,
  DSharp.Windows.TreeViewPresenter, VirtualTrees, StdCtrls, ExtCtrls, ComCtrls,
  Grids, DSharp.Bindings.VCLControls, DSharp.Bindings;

type
  TForm7 = class(TForm)
    VirtualStringTree1: TVirtualStringTree;
    TreeViewPresenter1: TTreeViewPresenter;
    Panel1: TPanel;
    Edit1: TEdit;
    Panel2: TPanel;
    LabeledEdit1: TLabeledEdit;
    BindingGroup1: TBindingGroup;
    procedure FormCreate(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
    procedure FilterCustomer(Item: TObject; var Accepted: Boolean);
  public
    { Public declarations }
  end;

var
  Form7: TForm7;

implementation

{$R *.dfm}

uses
  Customer,
  Spring.Collections,
  DSharp.Core.XmlSerialization,
  DSharp.Core.XmlSerialization.XmlReader,
  DSharp.Core.XmlSerialization.XmlSerializer,
  Masks;

procedure TForm7.Edit1Change(Sender: TObject);
begin
  TreeViewPresenter1.ApplyFilter;
end;

procedure TForm7.FilterCustomer(Item: TObject; var Accepted: Boolean);
begin
  Accepted := Accepted and MatchesMask(TCustomer(Item).CompanyName, '*' + Edit1.Text + '*');
end;

procedure TForm7.FormCreate(Sender: TObject);
var
//  list: IList;
  list: IObjectList;
  ser: IXmlSerializer;
  reader: IXmlReader;
begin
  // daten aus Xml lesen ...
  ser := TXmlSerializer.Create;
  reader := TXmlReader.Create('..\..\Customers.xml');
//  Supports(ser.Deserialize(reader), IList, list);
  Supports(ser.Deserialize(reader), IObjectList, list);

  // ... und dem Presenter zuweisen
//  TreeViewPresenter1.View.ItemsSource := list;
  TreeViewPresenter1.View.ItemsSource := list;

  // Filter hinzufügen
  TreeViewPresenter1.View.Filter.Add(FilterCustomer);

  // eigenes template zuweisen
  TreeViewPresenter1.View.ItemTemplate := TCustomerTemplate.Create;
end;

end.
Customer.pas:
Delphi-Quellcode:
unit Customer;

interface

uses
  Classes,
  Spring.Collections,
  Spring.Collections.Lists,
  DSharp.Core.DataTemplates,
  Rtti;

type
  TCustomer = class(TPersistent)
  private
    FCustomerId: string;
    FCompanyName: string;
    FContactName: string;
    FContactTitle: string;
    FAddress: string;
    FCity: string;
  published
    property CustomerId: string read FCustomerId write FCustomerId;
    property CompanyName: string read FCompanyName write FCompanyName;
    property ContactName: string read FContactName write FContactName;
    property ContactTitle: string read FContactTitle write FContactTitle;
    property Address: string read FAddress write FAddress;
    property City: string read FCity write FCity;
  end;

  TCustomers = class(TObjectList<TCustomer>);

  TCustomerTemplate = class(TDataTemplate)
  public
    function GetValue(const Item: TObject; const ColumnIndex: Integer): TValue; override;
    function GetTemplateDataClass: TClass; override;
  end;

implementation

{ TCustomerTemplate }

function TCustomerTemplate.GetTemplateDataClass: TClass;
begin
  Result := TCustomer;
end;

function TCustomerTemplate.GetValue(const Item: TObject;
  const ColumnIndex: Integer): TValue;
begin
  case ColumnIndex of
    -1, 0: Result := TCustomer(Item).CustomerId;
    1: Result := TCustomer(Item).CompanyName;
    2: Result := TCustomer(Item).ContactTitle + ' ' + TCustomer(Item).ContactName;
  end;
end;

initialization
  TCustomers.ClassName;

end.
lg,
jus

Stevie 9. Mai 2019 09:47

AW: Wie DSharp in Community Edition 10.3 compilieren
 
Zitat:

Zitat von Sherlock (Beitrag 1431520)
Zitat:

Zitat von Schokohase (Beitrag 1431512)
  • Stefan Glienke ist der Autor von DSharp und Spring4D
  • Stefan Glienke hat gesagt, dass er MVVM mit Delphi aufgegeben hat.
Was würdest du daraus schließen?

Für Stefan Glienke ist Delphi, so wie es ist, gut genug? :D

https://www.youtube.com/watch?v=umDr0mPuyQc

Schokohase 9. Mai 2019 09:54

AW: Wie DSharp in Community Edition 10.3 compilieren
 
Zitat:

Zitat von Stevie (Beitrag 1431842)
Zitat:

Zitat von Sherlock (Beitrag 1431520)
Zitat:

Zitat von Schokohase (Beitrag 1431512)
  • Stefan Glienke ist der Autor von DSharp und Spring4D
  • Stefan Glienke hat gesagt, dass er MVVM mit Delphi aufgegeben hat.
Was würdest du daraus schließen?

Für Stefan Glienke ist Delphi, so wie es ist, gut genug? :D

https://www.youtube.com/watch?v=umDr0mPuyQc

Ein einfaches Nein hätte hier auch nicht gereicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 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