Einzelnen Beitrag anzeigen

Cuchulainn

Registriert seit: 26. Aug 2003
182 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Malen mit Canvas Rückgängig machen ?

  Alt 30. Mär 2004, 11:46
Ich stelle mir das folgendermaßen vor. Es ist alles ungetestet und soll nur ein Denkansatz sein

Ein Record ist eine Zusammenfassung mehrere Variablen. Etwa so:

Delphi-Quellcode:
var MyRecord: record
  Variable1: integer;
  Variable2: String;
end;

(...)
// Jetzt kannst du mit dem Punkt auf die Variablen des Records zugreifen:

MyRecord.Variable1 := 4;
MyRecord.Variable2 := 'Hallo Welt';
Es handelt sich also um etwas ähnliches wie eine Klasse nur ohne Methoden, Vererbung, usw., einfach ausgedrückt.

Jetzt habe ich mir das so vorgestellt:

Delphi-Quellcode:
type TObjekte = (Rechteck, Kreis, Linie); // Deklaration eines Mengentyps
var LetztesObjekt: record
  X1: Integer;
  Y1: Integer;
  X2: Integer;
  Y2: Integer;
  Typ: TObjekte;
end;
MouseUp
Delphi-Quellcode:
if Eck = true then
begin
  Canvas.Rectangle(Ec1,Ec2+48,X,Y+50);
  LetztesObjekt.X1 := Ec1;
  LetztesObjekt.Y1 := Ec2+48;
  LetztesObjekt.X2 := X;
  LetztesObjekt.Y2 := Y + 50;
  LetztesObjekt.Typ := Rechteck;
end;
Du müsstest dann je nach dem gezeichneten Objekttyp die Variable LetztesObjekt.Typ setzen.

Dann kannst du in deiner Klickmethode einfach diese Variablen benutzen:
Delphi-Quellcode:
  Canvas.Brush.Color := clWhite;
  if LetztesObjekt.Typ = Rechteck then
  begin
    Canvas.Rectangle(LetztesObjekt.X1, LetztesObjekt.Y1, LetztesObjekt.X2, LetztesObjekt.Y2);
  end;
So etwa.

[edit=Luckie]Tags gefixed. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat