So,
hab das jetzt mal so gemacht, das
Handle des RichEdit hab ich ja:
Delphi-Quellcode:
SendMessage(AHandle, EM_SETSEL, 0, -1);
SendMessage(AHandle, WM_COPY, 0, 0);
RichEdit1.PasteFromClipboard;
funktioniert auch ganz gut. Nur was ist wenn das RichEdit einen Inhalt jenseits der 64KB Grenze hat hab ich mir gedacht. Ein bisschen stöbern in der Windows
SDK und nach ein bisserl Googlen bin ich auf EM_EXSETSEL gestossen. Wie es da so schön heißt:
Zitat:
In a rich edit control, if the selection is not entirely contained in the first 64K, use the message EM_EXSETSEL.
Jetzt hab ich folgendes versucht aber irgendwie klappt das nicht. Was mach ich da für nen Fehler? Ich will den gesamten Text kopieren. Laut Beschreibung müßte der gesamte Text selektiert werden wenn
Zitat:
If the cpMin and cpMax members are equal, the range is empty. The range includes everything if cpMin is 0 and cpMax is - 1.
Aber irgenwie passiert da gar nichts.
Hier der Programm-Code:
Delphi-Quellcode:
var
CharRange: TCharRange;
begin
CharRange.cpMin := 0;
CharRange.cpMax := -1;
SendMessage(AHandle, EM_EXSETSEL, 0, Longint(@CharRange));
SendMessage(AHandle, WM_COPY, 0, 0);
RichEdit1.PasteFromClipboard;
end;
Müßte doch gehen. Oder?