Autor Beitrag
fritzoskar
Hält's aus hier
Beiträge: 4

Win XP, Win 2000
Delphi 7 Prof
BeitragVerfasst: Mo 16.10.06 16:26 
Hallo!


Ich möchte den Textcursor mittels onmousemove Event genau unter die Mousposition setzen, ohne den Mousbutton zu drücken.

Beim Stöbern im DF habe ich die Lösung für dieses Probelem bei einen TRichEdit gefunden.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.RichEdit2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var iCharIndex: Integer;
    Pt: TPoint;
begin
  with Tcustomedit(sender) do
  begin
    SetFocus;
    Pt := Point(X, Y);
    iCharIndex := Perform(EM_CHARFROMPOS, 0, Integer(@Pt));
    selStart:=icharindex;
  end;

end;


wieso funktioniert das bei der TMemo-Komponente nicht

thx für jede hilfe
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mo 16.10.06 22:23 
Hallo,
user profile iconfritzoskar hat folgendes geschrieben:
...wieso funktioniert das bei der TMemo-Komponente nicht...
genau kann ich das nicht erklären, aber es ist wohl abhängig von der Komponente wie mit EM_CHARFROMPOS umgegangen werden muss.

Bei einem Memo funktioniert es so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var lParam: Integer;
begin
  with TCustomEdit(Sender) do
    begin
    SetFocus;
    lParam := Y shl 16 + X;
    selStart := LoWord(Perform(EM_CHARFROMPOS, 0, lParam));
    end;
end;


Oder auch so, swissdelphicenter:
...die Cursor Position im TMemo der Maus folgen lassen?

//Edit: Link entfernt(war Quatsch), anderen Link hinzugefügt.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
fritzoskar Threadstarter
Hält's aus hier
Beiträge: 4

Win XP, Win 2000
Delphi 7 Prof
BeitragVerfasst: Di 17.10.06 09:42 
Danke, funktioniert wunderbar