Einzelnen Beitrag anzeigen

SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#25

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 18:31
@Stevie:
Die Trennung ist wirklich stark, da diese komplett von der "Framework-Magic" übernommen wird.

Meine Lösung entspricht weitgehend meiner Lösung auf Seite 1 mit dem Zusatz:
Delphi-Quellcode:
procedure List.SelectIndexChange(...);
begin
  TOperation(Form1.List1.SelectedItem).SetVisualComponent(MyVisualAttributes);
end;

// ---

type
  TVisualAttributes = class
    op1, op2: TEdit;
    result: TEdit;
    [...]
  end;
TAddition, TSubtraction, ... sind von TOperation abgeleitet.
In TOperation.SetVisualComponent(vc) wird die visuelle Komponente im Business-Objekt ersetzt und es werden alle ChangeEvents aufgerufen:

Delphi-Quellcode:
procedure TOperation.SetVisualComponent(vc: TVC);
begin
self.visualComponent := vc;

if vc <> nil then begin
  resultChangeEvent(...); // hier muss man sich überlegen,
                          // ob die Werte (Zahl1, Zahl2) vorhanden sind bzw. sein sollen.
                          // Sonst: nach SetVisualComponent
                          // TOperation(Form1.List1.SelectedItem).Execute aufrufen
  end;
end;
Sebastian
  Mit Zitat antworten Zitat