Einzelnen Beitrag anzeigen

Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#1

Datei in RichEdit-Control laden (via Handle & Message)

  Alt 2. Jan 2004, 18: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
  Mit Zitat antworten Zitat