Thema: Delphi Punkte auf Bild

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.846 Beiträge
 
Delphi 12 Athens
 
#7

Re: Punkte auf Bild

  Alt 18. Okt 2003, 23:25
Sender = Image1 in ShapeMouseDown war natürlich falsch gewesen.
Hab's im oberen DL schon geändert.
"Sender = Image1" => "TShape(Sender).Parent = Form1"

***

Was deine anderen Fragen angeht:
-die Position eines Objekts ist relativ zu der des Parent

-TImage kann nicht als Parent genommen werden, um die Position relativ zum Image zu setzen
Als Parent (übergeordnetes Objekt) können nur Steuerelemente fungieren, die ein Nachkomme von TWinControl sind. Wie z.B. TForm, TPanel.
(hatte ja auch erst den Fehler gemacht)

-Offset ist hier die Differenz zwischen zwei Punkten.
z.B. ist Pixel [10, 20] von Image1 an der selben Stelle wie Pixel [26, 36] von Form1
(Das ist auch einer der Gründe, warum es 2 Images sind)

-Objektumwandlung:
!Sender(TObject) und Shape(TShape) sind inkompatiebel.
Beim Aufruf der EreignisProzedur wird das Objekt (die Komponente), über welches diese Procedure aufgerufen wurde, mit übergeben.
Und damit man mit den Eigenschaften des Objektes arbeiten kann muss es noch umgewandelt werden.
Da ShapeMouseDown von mehrenen Shapes aufgerufen werden kann, ist es so möglich an dessen Daten zu gelangen.
Image1MouseDown wird immer nur von Image1 aufgerufen, daher konnte z.B. Image1.Top verwendet werden, an statt TImage(Sender).Top.

-mit "TShape(Sender).Parent = Form1" wird abgefragt ob das gerade angeklickte Shape zu Form1 gehört oder nicht.


Fragen schadet ja nicht. Nur wer nicht fragt, schadet sich selbst.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat