Hay Community, ich habe eine Frage
und zwar:
Wie kann ich innerhalb von Klassen die Visible [true/false] Eigenschaften der Klassen ändern? Die Klasse nennt sich "Punkt" und das Objekt "Punkt1". Der Punkt1 ist im Bild "Image1" und soll dem Mauszeiger folgen. Dies habe ich mit den folgenden Anweisungen erfüllt:
Delphi-Quellcode:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Punkt1.setpos(X,Y);
Punkt1.zeigen;
end;
Jetzt habe ich aber das Problem, dass bei jeder Bewegung der Maus ein neuer Punkt erstellt wird und der vorige Punkt nicht gelöscht wird, sodass nach kurzer Zeit ganz viele Punkte auf dem Bild sind.
Wie bekomme ich es hin, dass die alten Punkte bei Mausbewegung weggehen? Wäre es logisch ein neues Attribut einzufügen, wenn ja welches? Von meiner Seite aus würde ich überlegen mit visible zu arbeiten, aber ich wüsste nicht genau wo ich das anwenden sollte ( ich habe ne ahnung)... außerdem meint Delphi wenn ich visible auf die Klasse beziehe, dass es visible nicht gibt. -> muss ich dann im Deklarationsteil noch visible:boolean einfügen?
In meiner Klasse steht die Procedure
Delphi-Quellcode:
constructor Punkt.create(image:TImage);
begin
self.image1:=image;
self.image1.canvas.pen.mode:=pmxor;
self.x:=0;
self.y:=0;
end;
procedure Punkt.zeichnen;
begin
self.image1.canvas.ellipse(self.x-10,self.y-10,self.x+10,self.y+10);
end;
//bei der Erstellung der procedure unsichtbar bitte helfen !! :)
Liebe Grüße und Danke im Vorraus
Katika