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

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

Стандартные диалоги Открыть/Сохранить файл... [D6, Win95/98]


Nimda ©   (2002-10-25 15:26:00) 

Как на WinApi вызвать стандартное окно Открытия/Сохранения файла и получить от него имя выбранного/сохраненного файла? Небольшой пример очень приветствуется :)
Заранее спасибо!


Nick N A   (2002-10-27 08:05:00) [1]

Зачем придумывать велосипед ?
пишешь FileOpenDialog1.Execute,
нажимаешь Ctrl + Нажимаешь на слово Execute мышкой,
и изучаешь исходник. можешь скопировать его,
класс обьявить выше чем TFORM, и выбрасывать ненужное.


k   (2002-10-26 12:36:00) [2]

я вчера поставил эксперимент:

uses CommDlg;
procedure TForm1.Button1Click(Sender: TObject);
var OFStruct:OPENFILENAME;
begin
ZeroMemory(@OFStruct,SizeOf(OFStruct));
OFStruct.lStructSize := SizeOf(OFStruct);
GetOpenFileName(OFStruct);
end;


и диалог показался......
щас у меня D5 и WinXP

а когда я писал под Win98 (давно это было)
я устанавливал в поле lFlags бит OFN_EXPLORER



Nimda   (2002-10-25 16:13:00) [3]


program dialog;

uses
Windows,
CommDlg;

var
f: OPENFILENAME;
filename : string;

begin
ZeroMemory(@f, sizeof(OPENFILENAME));
f.lStructSize := sizeof(OPENFILENAME);
f.hwndOwner := 0;
f.lpstrFilter := nil;
f.lpstrFile := PChar(filename);
f.nMaxFile := MAX_PATH;
if GetOpenFileName(f) then
MessageBox(0, PChar(filename), "", mb_ok);
end.

Теперь возникла другая проблема - диалог не показывается :( Что делать???


k   (2002-10-25 15:58:00) [4]

конечно пример не приведу, в универе я

но посмотрите хелп по ф-циям GetOpenFileName и
GetSaveFileName(какая-то структура);

делает тоже самое, что SaveDialog.Execute
а имя файла можно достать из структур туда передаваемой....


Наверх

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