Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

GetOpenFileName [D6, WinXP]


anod ©   (2002-08-22 18:00:00) 

Почему-то ничего не происходит:

function OpenFiles(Handle: HWND):TStrings;
var ofn: TOPENFILENAME; files:PCHAR; i:integer;
begin
With ofn do begin
lStructSize:=SizeOf(TOPENFILENAME);
hWndOwner:=Handle;
nFilterIndex:=1;
lpstrFilter:="MPEG Layer-3\0*.mp3\0";
lpstrFile:=files;
nMaxFile:=sizeof(files);
lpstrInitialDir:="C:\";
lpstrTitle:="Выбирите файлы:";
lpstrDefExt:="mp3";
Flags:=OFN_ALLOWMULTISELECT or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST;
end;
if GetOpenFileName(ofn) then begin
...
end;
end;


anod   (2002-08-23 21:16:00) [1]

Хмм, ладно, все равно не работает, зато я подключил dialogs и создаю TOpenDialogs - отлично работает.


Eugen Honeker   (2002-08-23 02:01:00) [2]

мне тут сразу три ошибки в глаза бросились:

1.
fileName : PChar;
...
lpstrFile:= fileName;

а кто памать то резервировать будет?
провильно было бы:
fileName: array[0..MAX_PATH-1]of char;
...
lpstrFile:= fileName;



2.
lpstrInitialDir:= "C:\\"; это наверно с си передрато?
для паскалэ хватит "C:\";

3.
lpstrFilter:="MPEG Layer-3|*.mp3";
провильно было бы:
lpstrFilter:="MPEG Layer-3"#0"*.mp3";


anod   (2002-08-22 21:07:00) [3]

Скачал с интернета пример:

function OpenFiles(Handle: HWND):TStrings;
var
OpenFile : OPENFILENAME;
fileName : PChar;
begin
fileName := "";
With OpenFile do begin
lStructSize:= SizeOf(OPENFILENAME);
hwndOwner:=GetActiveWindow();
lpstrFile:= fileName;
nMaxFile:= 255;
lpstrFilter:="MPEG Layer-3|*.mp3";
nFilterIndex:= 1;
lpstrTitle:="Выбирите файлы:";
lpstrInitialDir:= "C:\\";
Flags:=OFN_EXPLORER or OFN_ALLOWMULTISELECT or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST;
end;
if ( GetOpenFileName(OpenFile) ) then MessageBox(0,fileName, "NotCancel",MB_OK)
else MessageBox(0,"Cancel Pressed!", "NotCancel",MB_OK);
end;


Выдает "Cancel Pressed!"

Мроже можно как-нибудь по другому выбирать файлы???


anod   (2002-08-22 18:26:00) [4]

files:="";

Никак не помогает, диалог даже не отображается.


Игорь Шевченко   (2002-08-22 18:07:00) [5]

а files переменную будем иницализировать или как ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо