ich erzeuge ein TImage in einer TScrollbox zur Laufzeit. Das OnClickEvent soll eigentlich die Position des Mauszeigers in Relation zum TImage anzeigen. Jedoch erhalt ich Werte die jenseits von Gut und Böse sind und nicht ansatzweise meinem Gitter welches ich als Test lade entsprechen.
Code: Alles auswählen
procedure TMap.FKarteClick(Sender: TObject);
begin
pt:=FKarte.ScreenToClient(pt); //pt = tpoint und wurde in der private der class vereinbart
showmessage('X = '+IntToStr(pt.x)+', Y = '+IntToStr(pt.y));
end;
{ TMap }
constructor TMap.create(aOwner: TComponent);
begin
//Scrollbox erzeugen
SScrBox :=TScrollbox.Create(aOwner);
SScrBox.Parent :=(aOwner as TWinControl);
SScrBox.AutoScroll:=true;
SScrBox.Align:=alClient;
//Hintergrundkarte erzeugen
FKarte :=TImage.Create(aOwner);
FKarte.Parent :=SScrBox;
FKarte.Picture.LoadfromFile('gittertest.bmp');//später auslagern in eigene Variable filename
FKarte.AutoSize:=true;
FKarte.AntialiasingMode:=amON;
FKarte.Visible := True;
FKarte.enabled := True;
//On Click Event
FKarte.OnClick:=@FKarteClick;
//ab hier wird alles angezeigt, später auslagern in eine Procedure
FKarte.show;
end;