AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Spring4D V2 und DSharp Bindings

Ein Thema von mytbo · begonnen am 11. Jan 2022 · letzter Beitrag vom 12. Jan 2022
Antwort Antwort
mytbo

Registriert seit: 8. Jan 2007
458 Beiträge
 
#1

Spring4D V2 und DSharp Bindings

  Alt 11. Jan 2022, 20:21
Zur Zeit gibt es leider noch keine Anpassung von DSharp an Spring4D Version 2. Ich verwende intensiv Bindungs und Presenter. Beides sind Perlen. Perlen muss man polieren, dass sie ihren ganz besonderen Glanz behalten. Weis jemand ob es ein Update für DSharp geben wird?

Ich habe das DSharp/Bindings/SpinEdit Beispiel mal kurz an Spring4D Version 2 angepasst. Mit folgenden Änderungen im Control Binding ist es sofort gelaufen. Ist das der präferierte Weg für die Anpassung an Spring4D Version 2?
Delphi-Quellcode:
type
  TSpinEdit = class(Spin.TSpinEdit, INotifyPropertyChanged)
  strict private
    FOnPropertyChanged: TPropertyChangedEventImpl;
  protected
    function GetOnPropertyChanged: IEvent<TPropertyChangedEvent>;
    procedure DoPropertyChanged(const pmcPropertyName: String; pmUpdateTrigger: TUpdateTrigger);
  protected
    procedure Change; override;
    procedure CMExit(var pmvMessage: TCMExit); message CM_EXIT;
  public
    procedure AfterConstruction; override;
    procedure BeforeDestruction; override;
  published
    property Value: Integer
      read GetValue write SetValue;
  end;

procedure TSpinEdit.AfterConstruction;
begin
  inherited AfterConstruction;
  FOnPropertyChanged := TPropertyChangedEventImpl.Create;
  FOnPropertyChanged._AddRef;
end;

procedure TSpinEdit.BeforeDestruction;
begin
  FOnPropertyChanged._Release;
  FOnPropertyChanged := Nil;
  inherited BeforeDestruction;
end;

function TSpinEdit.GetOnPropertyChanged: IEvent<TPropertyChangedEvent>;
begin
  Result := FOnPropertyChanged;
end;

procedure TSpinEdit.DoPropertyChanged(const pmcPropertyName: String; pmUpdateTrigger: TUpdateTrigger);
begin
  if FOnPropertyChanged = Nil then Exit; //=>

  if FOnPropertyChanged.CanInvoke then
    FOnPropertyChanged.Invoke(Self, TPropertyChangedEventArgsEx.Create(pmcPropertyName, pmUpdateTrigger) as IPropertyChangedEventArgs);
end;

procedure TSpinEdit.Change;
begin
  inherited;
  DoPropertyChanged('Text', utPropertyChanged);
  DoPropertyChanged('Value', utPropertyChanged);
end;

procedure TSpinEdit.CMExit(var pmvMessage: TCMExit);
begin
  SetValue(GetValue);
  inherited;
  DoPropertyChanged('Text', utLostFocus);
  DoPropertyChanged('Value', utLostFocus);
end;
Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Spring4D V2 und DSharp Bindings

  Alt 11. Jan 2022, 23:24
Weis jemand ob es ein Update für DSharp geben wird?
Vielleicht
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 8. Jan 2007
458 Beiträge
 
#3

AW: Spring4D V2 und DSharp Bindings

  Alt 12. Jan 2022, 15:02
Hallo Stefan,

zugegeben, ich habe meinen Post in der Hoffnung formuliert von dir eine Antwort zu bekommen. In die Arbeit wollte ich dich aber nicht hetzen, sondern finde dein Engagement vorbildlich. Mir würde helfen, wenn ich wüsste, ob du das obige Muster der Umsetzung empfehlen, oder eher einen anderen Ansatz vorziehen würdest. Mir reicht ein kleiner Schubs in die richtige Richtung.

Bis bald...
Thomas
  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 20:28 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