AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie DSharp in Community Edition 10.3 compilieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie DSharp in Community Edition 10.3 compilieren

Ein Thema von jus · begonnen am 26. Apr 2019 · letzter Beitrag vom 9. Mai 2019
Antwort Antwort
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#1

Wie DSharp in Community Edition 10.3 compilieren

  Alt 26. Apr 2019, 20:08
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.
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?

Lg,
jus
Miniaturansicht angehängter Grafiken
dsharp.jpg  
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 27. Apr 2019, 08:34
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.
Heiko

Geändert von hoika (27. Apr 2019 um 09:40 Uhr)
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 27. Apr 2019, 18:45
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.
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 3. Mai 2019, 12:32
@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. Mit der dem Branch spring-1.2.1 läßt es sich kompilieren. Vielen Dank für den Hinweis!
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
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 3. Mai 2019, 12:41
  • 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?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#6

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 3. Mai 2019, 13:54
  • 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?

*SCNR*

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 3. Mai 2019, 14:19
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>
Heiko
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 8. Mai 2019, 23:15
  • 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

Geändert von jus ( 8. Mai 2019 um 23:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 9. Mai 2019, 10:47
  • 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?
https://www.youtube.com/watch?v=umDr0mPuyQc
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#10

AW: Wie DSharp in Community Edition 10.3 compilieren

  Alt 9. Mai 2019, 10:54
  • 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?
https://www.youtube.com/watch?v=umDr0mPuyQc
Ein einfaches Nein hätte hier auch nicht gereicht.
  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 17:59 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