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/)
-   -   Cursor mit Rechtsklick setzen in Memo (https://www.delphipraxis.net/174508-cursor-mit-rechtsklick-setzen-memo.html)

Ginko 26. Apr 2013 10:48

Cursor mit Rechtsklick setzen in Memo
 
Hi, ich versuche gerade den Cursor in einem Memo Feld zusätzlich mit der rechten Maustaste setzen zu lassen. Es klappt aber nicht wirklich ....

Delphi-Quellcode:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  p2: TPoint;
begin
  if Button = mbRight then
  begin
     GetCaretPos(p2);
     Memo1.CaretPos := p2;
  end;
end;
GetCaretPos liefert was falsches. Kann man das umrechnen ?
Oder geht das so garnicht ?

ASM 26. Apr 2013 11:57

AW: Cursor mit Rechtsklick setzen in Memo
 
Delphi-Quellcode:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  p2: TPoint;
begin
  if Button = mbRight then
  begin
    GetCaretPos(p2);
    Memo1.CaretPos := Memo1.ClientToScreen(p2);
  end;
end;

Ginko 26. Apr 2013 12:03

AW: Cursor mit Rechtsklick setzen in Memo
 
Hi danke für die Antwort, klappt bei mir leider nicht.
Ich habe aber gerade eine Lösung gefunden:
Delphi-Quellcode:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
    Memo1.SelStart := LoWord(SendMessage(Memo1.Handle, EM_CHARFROMPOS, 0, MakeLParam(X, Y)));
end;
Ansatz: http://www.swissdelphicenter.ch/de/showcode.php?id=1538

Interessant fände ich aber trotzdem wenn man es auch auf obige weise lösen könnte, ohne das man hier ein Handle braucht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr.

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