...

Листинг 2.25.

Окно сохранения файла

function ShowSave(strFilter: string; nFilterIndex: Integer = 0;

strInitFileName: string = \'\

strTitle: string = \'Сохранение файла\'):string;

var

ofn: OPENFILENAME;

begin

ZeroMemory(Addr(ofn), SizeOf(ofn));

//Формирование буфера (260 символов)

SetLength(strInitFileName, MAX_PATH);

PrepareFilterString(strFilter);

//Заполнение структуры для диалога

ofn.lStructSize := SizeOf(ofn);

ofn.hWndOwner := hParentWnd;

ofn.hInstance := hAppInst;

ofn.lpstrFilter := PAnsiChar(strFilter);

ofn.nFilterIndex := nFilterIndex;

ofn.lpstrFile := PAnsiChar(strInitFileName);

ofn.nMaxFile := MAX_PATH;

ofn.lpstrTitle := pAnsiChar(strTitle);

ofn.Flags := OFN_PATHMUSTEXIST or OFN_OVERWRITEPROMPT;

//Отображение окна диалога и обработка результата

if (GetSaveFileName(ofn) = True) then

ShowSave := ofn.lpstrFile;

end;

Здесь дополнительно к упомянутому ранее флaгyOFN_PATHMUSTEXIST применен флаг OFN_OVERWRI ТЕ PROMPT для того, чтобы при указании имени уже существующего файла был задан вопрос о желании пользователя заменить старый файл.

Загрузка...