Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Koordinaten von Formular auslesen (https://www.delphipraxis.net/78428-koordinaten-von-formular-auslesen.html)

cb01 4. Okt 2006 23:18


Koordinaten von Formular auslesen
 
Hi,
ich bin gerade dabei mich etwas intensiver mit Delphi zu befassen, für ein kleines Programm benötige ich die Funktion FloodFill, diese funktioniert auch schon ohne Probleme.Leider stehe ich jetzt vor dem Problem, das ich Koordinaten aus dem Formulars benötige.
Für VB6 habe ich eine Lösung gefunden, dort wird, wenn man auf eine Stelle des Formulars klickt eine Messagebox geöffnet, die die Koordinaten des angeklickten Punktes anzeigt.Leider habe ich nichts für Delphi gefunden.
Hat evtl. jemand einen Tipp für mich, wie ich dies lösen könnte, evtl. mit einer kurzen Erklärung, da ich ja auch was dabei lernen will.

Vielen Dank und Gruß

Chris

Sunlight7 4. Okt 2006 23:24

Re: Koordinaten von Formular auslesen
 
Hallo!

Setzte die OnMouseMove, OnMouseDown oder OnMouseUp procedure im Objektinspektor für das Formular.

Die x und y sind dann Deine Koordinaten.

Das sieht dann so aus:
Delphi-Quellcode:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   ShowMessage('x='+IntToStr(x)+', y='+IntToStr(y));
end;
Edit: Auch Dir ein herzliches Willkommen in der DP :cheers:

3_of_8 4. Okt 2006 23:24

Re: Koordinaten von Formular auslesen
 
Du kannst OnMouseDown/OnMouseUp der Form benutzen und dann die Koordinaten, falls du das willst, mit ClientToScreen auf Bildschirmkoordinaten umrechnen.

cb01 5. Okt 2006 07:01

Re: Koordinaten von Formular auslesen
 
Hi,
erstmal danke für die schnelle Hilfe, aber leider klappt das noch nicht so ganz :( .
Ich habe das ganze jetzt in mein Programm eingefügt:

Delphi-Quellcode:
procedure TForm2.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   ShowMessage('x='+IntToStr(x)+', y='+IntToStr(y));
end;
end.
Leider haut mir delphi dann folgende Fehlermeldungen raus:
Zitat:

[Pascal Fehler] Unit2.pas(24): E2003 Undefinierter Bezeichner: 'FormMouseUp'
[Pascal Fehler] Unit2.pas(24): E2029 ';' erwartet, aber '(' gefunden
[Pascal Fehler] Unit2.pas(26): E2003 Undefinierter Bezeichner: 'x'
[Pascal Fehler] Unit2.pas(26): E2003 Undefinierter Bezeichner: 'y'
[Pascal Fataler Fehler] Project1.dpr(5): F2063 Verwendete Unit 'Unit2.pas' kann nicht compiliert werden
Ich würde mich sehr freuen,wenn jemand eine Lösung für das Problem hätte.

Dann habe ich noch ein kleines anderes Problem, ich habe irgendwie ausversehen das Überschreiben im Editor aktiviert, wie krieg ich das wieder ausgeschaltet?

Vielen Dank für eure Mühe

Gruß

Chris

uwewo 5. Okt 2006 07:09

Re: Koordinaten von Formular auslesen
 
Zitat:

Zitat von cb01
Hi,
Delphi-Quellcode:
procedure TForm2.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   ShowMessage('x='+IntToStr(x)+', y='+IntToStr(y));
end;
end.
Leider haut mir delphi dann folgende Fehlermeldungen raus:

Dein Quellcode für MouseUp ist absolut korrekt! Der Fehler muß woanders liegen.
Was steht den in Zeile 24 bzw. 26 ????

Zitat:

Zitat von cb01
Dann habe ich noch ein kleines anderes Problem, ich habe irgendwie ausversehen das Überschreiben im Editor aktiviert, wie krieg ich das wieder ausgeschaltet?

Drücke mal die "Einfg" Taste

Matze 5. Okt 2006 07:19

Re: Koordinaten von Formular auslesen
 
Hi,

hast du das OnMouseUp-Ereignis aus der Ereignisliste ausgewählt (Doppelklick darauf), sodass dieses automatisch in den Code-Editor eingefügt wird?

Sunlight7 5. Okt 2006 08:13

Re: Koordinaten von Formular auslesen
 
Zitat:

Zitat von cb01
Dann habe ich noch ein kleines anderes Problem, ich habe irgendwie ausversehen das Überschreiben im Editor aktiviert, wie krieg ich das wieder ausgeschaltet?

Die Taste "einfügen" einmal drücken.

cb01 5. Okt 2006 15:14

Re: Koordinaten von Formular auslesen
 
Hallo,

vielen Dank für eure Hilfe, jetzt funktioniert das mit dem Auslesen ohne Probleme, es lag wirklich daran, das ich das bei den Ereignissen nicht eingestellt hatte.

Vielen Dank

Gruß

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz