Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: memo.caretpos liefert falsche ergebnisse

  Alt 8. Mär 2005, 00:41
Moin freejay,

ich kann das Problem nachvollziehen.
Schau doch mal in den VCL-Sourcen, wie GetCaretPos in D7 implementiert ist.
Bei mir (D5), wird leider der Rückgabewert von EM_GETSEL als Initialwert genommen, was zu diesem Fehler führt.
Vermutlich hat sich dies in D7 nicht geändert.

So geht's:

Delphi-Quellcode:
  SendMessage(Memo1.Handle, EM_GETSEL, wParam(@lCol), 0);
  lLine := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, lCol, 0);
  lCol := lCol - SendMessage(Memo1.Handle, EM_LINEINDEX, -1, 0);
lCol entspricht dem y-, lLine dem x-Wert von CaretPos.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat