Hallo Lemmy,
prinzipiell war meine erste Überlegung auch, dass ich einfach eine neue ViewModel-Methode erstelle. Um die kommt man vermutlich eh nicht rum. Was ich meine ist aber, dass das geniale an Sir Rufos Code ist, dass er die ganzen OnChange Events in ControlChange zusammenfaßt hat und die dann zentral auswertet. Ich versuche es kurz mal mit Code zu erklären. Und zwar weiß ich nicht, ob ich bei einem Button entweder sowas mache wie:
Delphi-Quellcode:
unit ViewFormMain;
interface
//...
type
TViewModel =
class
private
FValue : Boolean;
FOnUpdate : TNotifyEvent;
procedure SetValue(
const Value : Boolean );
protected
procedure DoUpdate;
public
procedure Button1Click;
property OnUpdate : TNotifyEvent
read FOnUpdate
write FOnUpdate;
property Value : Boolean
read FValue
write SetValue;
end;
//...
implementation
//...
procedure TMainFormView.Button1Click(Sender: TObject);
begin
ViewModel.Button1Click;
end;
procedure TViewModel.Button1Click;
begin
//tue irgendwas
showmessage('
Mach Beep!');
end;
Oder auch den OnClick Event vom Button1 direkt mit ControlChange verdrahte, und dann erst später die Verzweigung zu TViewModel.Button1Click mache, und zwar ungefähr so:
Delphi-Quellcode:
unit ViewFormMain;
interface
//...
type
TViewModel =
class
private
FValue : Boolean;
FOnUpdate : TNotifyEvent;
procedure SetValue(
const Value : Boolean );
protected
procedure DoUpdate;
public
procedure Button1Click;
property OnUpdate : TNotifyEvent
read FOnUpdate
write FOnUpdate;
property Value : Boolean
read FValue
write SetValue;
end;
//...
implementation
//...
procedure TMainFormView.DoSaveToModel( Sender : TObject );
begin
// Binding View => Model
ViewModel.Value := CheckBox1.Checked;
if (Sender
as TComponent).
Name = '
Button1'
then ViewModel.Button1Click;
end;
procedure TViewModel.Button1Click;
begin
//tue irgendwas
showmessage('
Mach Beep!');
end;
Hmmm... da weiss ich halt nicht wie Sir Rufo das gelöst hätte?