![]() |
![]() ![]() ![]() ![]() |
|
Показать диалог для запуска приложения 2Delphi , Программа и Интерфейс , Диалоги и ФреймыПоказать диалог для запуска приложения 2
Оформил: DeeCo
{ This code uses the undocumented RunFileDlg function to show the "run" dialog }
{ Dieser Code verwendet die undokumentierte RunFileDlg Funktion, um den Ausfuhren Dialog anzuzeigen }
// For Win NT
procedure RunFileDlgW(OwnerWnd: HWND; Icon: HICON; lpstrDirectory: PWideChar;
lpstrTitle: PWideChar; lpstrDescription: PWideChar; Flags: Longint); stdcall;
external 'Shell32.dll' Index 61;
// For Win 9x (Win NT to show standard captions )
procedure RunFileDlg(OwnerWnd: HWND; Icon: HICON; lpstrDirectory: PChar;
lpstrTitle: PChar; lpstrDescription: PChar; Flags: Longint); stdcall;
external 'Shell32.dll' Index 61;
const
RFF_NOBROWSE = 1; //Removes the browse button.
RFF_NODEFAULT = 2; // No default item selected.
RFF_CALCDIRECTORY = 4; // Calculates the working directory from the file name.
RFF_NOLABEL = 8; // Removes the edit box label.
RFF_NOSEPARATEMEM = 14; // Removes the Separate Memory Space check box (Windows NT only).
function ShowRunFileDialg(OwnerWnd: HWND; InitialDir, Title, Description: PChar;
flags: Integer; StandardCaptions: Boolean): Boolean;
var
HideBrowseButton: Boolean;
TitleWideChar, InitialDirWideChar, DescriptionWideChar: PWideChar;
Size: Integer;
begin
if (Win32Platform = VER_PLATFORM_WIN32_NT) and not StandardCaptions then
begin
Size := SizeOf(WideChar) * MAX_PATH;
InitialDirWideChar := nil;
TitleWideChar := nil;
DescriptionWideChar := nil;
GetMem(InitialDirWideChar, Size);
GetMem(TitleWideChar, Size);
GetMem(DescriptionWideChar, Size);
StringToWideChar(InitialDir, InitialDirWideChar, MAX_PATH);
StringToWideChar(Title, TitleWideChar, MAX_PATH);
StringToWideChar(Description, DescriptionWideChar, MAX_PATH);
try
RunFileDlgW(OwnerWnd, 0, InitialDirWideChar, TitleWideChar, DescriptionWideChar, Flags);
finally
FreeMem(InitialDirWideChar);
FreeMem(TitleWideChar);
FreeMem(DescriptionWideChar);
end;
end else
RunFileDlg(OwnerWnd, 0, PChar(InitialDir), PChar(Title), PChar(Description), Flags);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowRunFileDialg(FindWindow('Shell_TrayWnd', nil), nil, nil, nil, RFF_NOBROWSE, True);
end;
Программирование приложения с помощью процедуры | | | Диалог выбора файла | | | [Поле редактирования] [Кнопка просмотра] [ОК] [Отмена] Начальный каталог: [путь к начальному каталогу] Заголовок: [заголовок диалога выбора файла] Описание: [описание диалога выбора файла] Флаги: RFF_НОБРОВСЕ (1) - Удаляет кнопку просмотра RFF_НОДЕФАУЛЬТ (2) - Не выбирается по умолчанию RFF_КАЛКУЛИРУЕТПЕРЕХОД (4) - Вычисляет рабочий каталог из имени файла RFF_НОВЫЙЛАБЕЛЬ (8) - Удаляет метку поля редактирования RFF_НОСЕПАРАТМЕМ (14) - Удаляет чекбокс "Отдельное пространство памяти" (только для Windows NT) Когда вы нажмете кнопку "ОК", диалог вернет булевое значение, указывающее, выбрал ли пользователь файл или нет. В этом примере событийный обработчик
Процедура отобразит диалог выбора файла с полем редактирования и кнопкой просмотра. Пользователь может выбрать файл или ввести путь в поле редактирования, а затем нажать "ОК", чтобы продолжить. Если пользователь нажмет "Отмена", диалог вернет Показать диалог для запуска приложения 2 - код на Delphi, использующий функцию RunFileDlg для отображения диалога запуска. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Диалоги и Фреймы ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||