![]() |
Multiselect mit GetOpenFileName
Hallo,
hab ein Problem mit GetOpenFileName. Möchte in meinem Texteditor mehrere Files aufeinmal öffnen können. Das ist ja auch nicht das Problem, nur wenn ich mehrere selektiere und auf OPEN klicke gibt mir StrPas(ofn.lpstrFile) nur den Pfad zu den Files zurück, aber nicht welche ich ausgewählt habe! Ist ein Fehler in meinem Code?
Delphi-Quellcode:
Danke,
function OpenDlgBox(sTitle, sFilter : String; iFilterIndex: Integer; hHandle : HWND) : String;
var ofn: TOpenFileName; szFile: array[0..MAX_PATH] of Char; begin FillChar(ofn, SizeOf(TOpenFileName), 0); with ofn do begin lStructSize := SizeOf(TOpenFileName); hwndOwner := hHandle; lpstrFile := szFile; nMaxFile := SizeOf(szFile); lpstrTitle := PChar(sTitle); lpstrInitialDir := nil; StrPCopy(lpstrFile, Result); lpstrFilter := PChar(sFilter); nFilterIndex := iFilterIndex; Flags := 524804; end; if GetOpenFileName(ofn) then Begin Result := StrPas(ofn.lpstrFile); end; end; FLOW |
Das Problem ist, dass die einzelnen Angaben (Ordner- und Dateinamen) durch das Null-Zeichen voneinander getrennt sind. Du siehst daher nur den Ordnernamen, weil durch
Delphi-Quellcode:
nur der Text bis zum ersten #0 berücksichtigt wird. Die Lösung steht in Luckies Support-Forum:
StrPas(ofn.lpstrFile);
![]() Hot fix Simmis Definition für ein vorgezogenes Update für Ungeduldige. Die ZIP-Datei enthält lediglich aktualisierte oder erweiterte Hilfedateien und/oder Beispielprogramme, die ohne Installation benutzt werden können. Zu beziehen sind sie über die interne Updateseite in den Tutorials. :) |
Danke für den Tip, hab ich übersehen.
Schon gelöst :D ! FLOW |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz