Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Bildschirmkoordinalten des Cursors in TMemo ermitteln (https://www.delphipraxis.net/13963-bildschirmkoordinalten-des-cursors-tmemo-ermitteln.html)

franz 29. Dez 2003 23:05


Bildschirmkoordinalten des Cursors in TMemo ermitteln
 
Ein Problem aus älter Zeit.
Bereits im März 2003 wollte ich in meinen SQL Editor eine SQL – Vervollständigung einbauen, was ich dann auch getan habe. Allerdings tauchte folgendes Problem auf. Ich konnte die SQL – Vervollständigung nicht direkt an der Cursorposition aufklappen lassen. Das Problem habe ich damals damit gelöst, in dem ich die Vervollständigung entweder in der Fenstermitte oder am unteren Fensterrand aufklappen ließ.

:gruebel: Mein Frage:
Wie erhalte ich die Cursorposition? Mit Cursorposition meine ich die Position des blinkenden Cursors im Memofeld in Bildschirmkoordinaten (z. B. 250,120).

kiar 29. Dez 2003 23:43

Re: Bildschirmkoordinalten des Cursors in TMemo ermitteln
 
für ein richedit
http://www.delphipraxis.net/internal...ition&start=15

für ein memo müßte es ähnlich sein

raik

franz 30. Dez 2003 23:10

Re: Bildschirmkoordinalten des Cursors in TMemo ermitteln
 
Danke für den Tipp.

Das müsste theoretisch funktionieren.

teebee 30. Dez 2003 23:30

Re: Bildschirmkoordinalten des Cursors in TMemo ermitteln
 
Die Position des blinkenden Cursors - des sog. Carets - eines Memos in Bildschirmkoordinaten lässt sich so bestimmen:
Delphi-Quellcode:
Var MemoCaretPos, ScreenCaretPos: TPoint;

GetCaretPos(MemoCaretPos);
ScreenCaretPos := Memo1.ClientToScreen(MemoCaretPos);
Gruß, teebee

kiar 30. Dez 2003 23:41

Re: Bildschirmkoordinalten des Cursors in TMemo ermitteln
 
hallo franz

gerade gefunden
Delphi-Quellcode:
With Memo1 do begin
  Line := Perform(EM_LINEFROMCHAR,SelStart, 0);
  Column := SelStart - Perform(EM_LINEINDEX, Line, 0);
end

teebee 30. Dez 2003 23:52

Re: Bildschirmkoordinalten des Cursors in TMemo ermitteln
 
Zitat:

Zitat von kiar
Delphi-Quellcode:
With Memo1 do begin
  Line := Perform(EM_LINEFROMCHAR,SelStart, 0);
  Column := SelStart - Perform(EM_LINEINDEX, Line, 0);
end

Das gibt die Koordinaten in Textzeilen/-spalten des Memos wieder aber nicht die Bildschirmkoordinaten in Pixeln.

Gruß, teebee

kiar 31. Dez 2003 00:02

Re: Bildschirmkoordinalten des Cursors in TMemo ermitteln
 
steht ja auch da .

es ist schon ein bisschen spät.

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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