Autor Beitrag
hermit.de
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Sa 04.09.04 21:23 
Hallo zusammen.
Ich möchte markierten Text in einem Edit und/oder Memo mit der Maus verschieben können.

Dazu brauche ich unter anderem natürlich die Position der Maus in X+Y.
Die bekomme ich im Memo mit getCaret und wie im Edit?
Wie erreiche ich, dass der Caret der Maus im Text folgt, also der (das?)Caret
immer da hinspringt, wo die Maus geerade ist?
Wie erreiche ich das dann der markierte Text verschiebbar wird....usw

Danke schon mal!

hermit
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 05.09.04 19:43 
hermit.de hat folgendes geschrieben:
Ich möchte markierten Text in einem Edit und/oder Memo mit der Maus verschieben können.
hermit


Im Memo könnte ich mir vorstellen, dass man den markierten Text in ein Edit (eventuell BorderStyle := bsNone) stellt und dieses dann verschiebt. Die einfachste Möglichkeit dazu ist:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 if ssLeft in Shift then
  Edit1.SetBounds(Edit1.Left+X-Edit1.Width div 2, Edit1.Top+Y-Edit1.Height div 2,Edit1.Width,Edit1.Height);
end;


oder:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const sc_dragmove = $f012;
begin
 ReleaseCapture;
 TWinControl((Sender as TEdit)).Perform(wm_syscommand,sc_dragmove, 0);
end;


Bleibt das Problem, wie fügt man den Text wieder an der korekten Position ein...

Ein RichEdit kann das Verschieben von markiertem Text "von selbst".

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!