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