Thema: Delphi Rechteck verschieben

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#19

AW: Rechteck verschieben

  Alt 16. Jun 2019, 22:17
Du musst deine Procedure und oder Function in deine Klasse packen..


Delphi-Quellcode:
  TRechteck = class(TObject)

   private
     z:Integer; // Zustand (0,1)
     x1,x2,y1,y2: Integer;
     clr: TColor;
     cvs: TCanvas; // Zeichenfläche
     procedure rechteckGetroffen(var getroffen: Bool); // <<< Hier gehört die rein!!!
   public
   
   end;
Das ergebniss ist dann

procedure TRechteck.rechteckGetroffen(var getroffen: Bool);

Und nicht...
procedure rechteckGetroffen(var getroffen: Bool);
TIP: Rechte maustaste auf die Class und dann im Menu auf "complete class at Cursor" und da dann dein Zeugs rein!

Damit hast du keinen zugriff auf die Koordinaten die in deiner Klasse definiert sind.
Zitat:
Trotzdem werden die Variablen x1,x2,y1 und y2 nicht erkannt
Du kannst nicht auf eine private Eigenschaft von TRechteck zugreifen wenn du kein Member von TRechteck bist.
Das bist du erst dann wenn du deine Procedure dort einlagerst.

Delphi-Quellcode:
procedure rechteckGetroffen(var getroffen: Bool);
 begin
   if (Mouse.CursorPos.X > x1) AND (Mouse.CursorPos.X < x2) AND
       (Mouse.CursorPos.Y > y1) AND (Mouse.CursorPos.Y < y2) then
       result:=true
     else
       getroffen:=false;

 end;
Das ist auch falsch wenn schon dann beide Rückgaben "getroffen" nicht einmal Result und einmal getroffen
Verwende bitte in Zukunft die Delphi Tags im Forum Editor das ist das Icon mit dem Delphi Symbol nicht das Code(C++) Symbol.

gruss

Geändert von EWeiss ( 9. Jul 2019 um 08:31 Uhr)
  Mit Zitat antworten Zitat