Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: VCL / WinForms / Controls (https://www.delphipraxis.net/24-library-vcl-winforms-controls/)
-   -   Delphi Datei in RichEdit-Control laden (via Handle & Message) (https://www.delphipraxis.net/14125-datei-richedit-control-laden-via-handle-message.html)

Daniel 2. Jan 2004 18:19


Datei in RichEdit-Control laden (via Handle & Message)
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz