Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Wie Methode als Pointer übergeben?

  Alt 1. Aug 2018, 11:55
Ich würde für jede Methode eine eigene Klasse erstellen.
Der Script-Liste dann jeweils Instanzen der Klassen hinzufügen.

Konzept:
Delphi-Quellcode:
TCustomDraw = class
public
  procedure Draw(ACanvas: TCanvas); virtual; abstract;
end;

TLine = class(TCustomDraw)
  constructor Create(x1, y1, x2, y2: Integer);
public
  procedure Draw(ACanvas: TCanvas); override;
end;

TCircle = class(TCustomDraw)
  constructor Create(x, y, r: Integer);
public
  procedure Draw(ACanvas: TCanvas); override;
end;

procedure BuildScript;
begin
  Script.Add(TLine.Create(5, 4, 8, 9));
  Script.Add(TCircle.Create(5, 4, 2));
  Script.Add(TCircle.Create(8, 9, 2));
end;

procedure ExecuteScript(ACanvas: TCanvas);
var
  cmd: TCustomDraw;
begin
  for cmd in Script do
    cmd.Draw(ACanvas);
end;
  Mit Zitat antworten Zitat