
01.04.2013, 02:36
|
 |
.
|
|
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
|
|
Лень разбираться
Код:
type
TFileName = type String;
TOpenDialog = Object
Parent : HWND;
FileName : TFileName;
Filter : String;
DefaultExt : String;
Title : String;
InitialDir : String;
function Execute : Boolean;
end;
var
OD : TOpenDialog;
...
function TOpenDialog.Execute : Boolean;
var
szFile : array[0..MAX_PATH - 1] of Char;
OFN : TOpenFileName;
TempFilter : String;
function ExtractLine(const S : String) : String;
var
P : String;
I : Integer;
begin
for I := 1 to Length(S) do
if S[i] = '|' then
P := P + #0
else
P := P + S[i];
Result := P + #0;
end;
begin
FillChar(OFN, SizeOf(OFN), 0);
FillChar(szFile, SizeOf(szFile), 0);
OFN.lStructSize := SizeOf(TOpenFilename);
OFN.hwndOwner := Parent;
OFN.hInstance := hInstance;
OFN.lpstrTitle := PChar(Title);
TempFilter := ExtractLine(Filter);
OFN.lpstrFilter := PChar(TempFilter);
OFN.lpstrFile := szFile;
OFN.Flags := OFN_EXPLORER or OFN_PATHMUSTEXIST or OFN_HIDEREADONLY or OFN_FILEMUSTEXIST or OFN_ENABLEHOOK or OFN_ENABLESIZING;
OFN.nMaxFile := MAX_PATH;
if (InitialDir = '') then
OFN.lpstrInitialDir := '.'
else
OFN.lpstrInitialDir := PChar(InitialDir);
Result := GetOpenFileName(OFN);
if Result then
FileName := szFile;
end;
...
OD.Parent := Wnd;
OD.Title := 'Выберите файл';
OD.Filter := 'Поддерживаемые форматы (*.png;*.jpg;*.tif;*.gif;*.bmp)|*.bmp;*.jpg;*.jpeg;*.jpe;*.tif;*.tiff;*.png;*.gif|' +
'Portable network graphics (*.png)|*.png|' +
'JPEG Image File (*.jpg)|*.jpg;*.jpeg;*.jpe|' +
'Tagged Image File Format (*.tif|*.tif;*.tiff|' +
'CompuServe GIF Image (*.gif)|*.gif|' +
'Bitmaps (*.bmp)|*.bmp';
OD.DefaultExt := '*.*';
...
if OD.Execute then
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
|