(Co-Admin)
Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
Delphi 10.4 Sydney
|
Datei in RichEdit-Control laden (via Handle & Message)
2. Jan 2004, 19:19
Von unserem User "Assarbad":
Laden einer RTF-Datei in ein RichEdit control:
Delphi-Quellcode:
function LoadRichEditByFileName(hWnd: HWND; FileName: string): Boolean;
var
hFile: THandle;
fsize,
readbytes: DWORD;
Buffer: Pointer;
begin
Result := False;
hFile := CreateFile(@FileName[1], GENERIC_READ, FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if hFile <> INVALID_HANDLE_VALUE then
try
fsize := GetFileSize(hFile, nil);
Buffer := GetMemory(fsize + 1);
if Buffer <> nil then
begin
ZeroMemory(Buffer, fsize + 1);
if ReadFile(hFile, Buffer^, fsize, readbytes, nil) then
if fsize = readbytes then
begin
SendMessage(hwnd, WM_SETTEXT, 0, LPARAM(Buffer));
SendMessage(hwnd, EM_SETSEL, 0, 0);
SendMessage(hwnd, EM_SCROLLCARET, 0, 0);
end;
FreeMemory(Buffer);
end;
finally
CloseHandle(hFile);
end;
end;
Funktioniert unter NT immer tadellos, unter Win9x hingegen ist die Groesse der zu ladenden Datei auf 64k ($FFFF-1 Zeichen) beschraenkt.
Daniel R. Wolf
|
|
Zitat
|