[GELOEST] Kann Drag in ein RichMemo nicht unterbinden

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
GLR
Beiträge: 5
Registriert: Di 1. Jul 2025, 15:48
OS, Lazarus, FPC: Windows 11 (L 4.0 FPC 3.2.2)
CPU-Target: x64
Wohnort: München

[Gelöst] Kann Drag in ein RichMemo nicht unterbinden

Beitrag von GLR »

Hallo!

Vorweg, es ist nicht so wichtig, weil es auch so geht.

Im englischen Forum konnte man mir nicht helfen, so probiere ich es einfach mal hier:

Es gibt 4 Ereignisse, die bei Drag/Hineinziehen von außen in ein RichMemo getriggert werden sollten.
- RichEditStartDrag
- RichEditEndDrag
- RichEditDragDrop
- RichEditDragOver
Aber bei mir wird nichts davon durch das Hineinziehen aktiviert. So kann ich das Drag ins Memo dann auch nicht unterbinden. (Ist bei mir wertlos, weil die Icons im Memo keinen Sinn machen.)

Hat jemand dazu eine Idee?

(Ich habe Laz 4.0, Win 11 mit 64 Bit und das aktuelle Richmemo-Package.)

Grüße
GLR
Zuletzt geändert von GLR am Mi 24. Sep 2025, 07:56, insgesamt 2-mal geändert.

Soner
Beiträge: 761
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Kann Drag in ein RichMemo nicht unterbinden

Beitrag von Soner »

Die Drap&Drop Events, OnStartDrag, OnEndDrag, OnDragDrop, OnDragOver hat damit nicht zu tun. Die sind LCL-Intern.
RichMemo ist die Kapselung von der RichEdit-Komponente von Windows. Ich denke, dass du WndProc-Funktion von RichMemo einklicken musst und dort es verhindern musst, falls es überhaupt möglich ist.
Ich würde im Internet nach "delphi richedit drag drop unterbinden" suchen oder auf englisch.

Vielleicht RichMemo.ReadOnly auf true setzen.

Soner
Beiträge: 761
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Kann Drag in ein RichMemo nicht unterbinden

Beitrag von Soner »

Hier ich habe gefunden, du musst einfach das machen:

Code: Alles auswählen

...
implementation
uses ActiveX;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RevokeDragDrop(RichMemo1.Handle);
end;
getestet, funktioniert.

Benutzeravatar
GLR
Beiträge: 5
Registriert: Di 1. Jul 2025, 15:48
OS, Lazarus, FPC: Windows 11 (L 4.0 FPC 3.2.2)
CPU-Target: x64
Wohnort: München

Re: Kann Drag in ein RichMemo nicht unterbinden

Beitrag von GLR »

Vielen herzlichen Dank. Es klappt!

Mit der einzigen Änderung:
Ich muß die Zeile unter FormActivate eintragen; bei FormCreate klappt es nicht.

Damit hat das "deutsche Forum" das "englischsprachige" klar geschlagen; dort konnten mir User mit in der Summe über 20.000 Posts nicht die Lösung aufzeigen (https://forum.lazarus.freepascal.org/in ... #msg565801)

Liebe Grüße
GLR

Antworten