Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Показать диалог для запуска приложения 2

Delphi , Программа и Интерфейс , Диалоги и Фреймы

Показать диалог для запуска приложения 2

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch


 { 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;

Программирование приложения с помощью процедуры ShowRunFileDialog:


| | | Диалог выбора файла | | |


[Поле редактирования] [Кнопка просмотра] [ОК] [Отмена]

Начальный каталог: [путь к начальному каталогу] Заголовок: [заголовок диалога выбора файла] Описание: [описание диалога выбора файла]

Флаги: RFF_НОБРОВСЕ (1) - Удаляет кнопку просмотра RFF_НОДЕФАУЛЬТ (2) - Не выбирается по умолчанию RFF_КАЛКУЛИРУЕТПЕРЕХОД (4) - Вычисляет рабочий каталог из имени файла RFF_НОВЫЙЛАБЕЛЬ (8) - Удаляет метку поля редактирования RFF_НОСЕПАРАТМЕМ (14) - Удаляет чекбокс "Отдельное пространство памяти" (только для Windows NT)

Когда вы нажмете кнопку "ОК", диалог вернет булевое значение, указывающее, выбрал ли пользователь файл или нет.

В этом примере событийный обработчик Button1Click привязан к кнопке на форме. Когда кнопка кликнется, она вызывает процедуру ShowRunFileDialog с следующими аргументами:

  • OwnerWnd: Обратная ссылка на основное окно (в этом случае - окно панели задач)
  • InitialDir: Пустая строка (nil)
  • Title: Пустая строка (nil)
  • Description: Пустая строка (nil)
  • Flags: RFF_НОБРОВСЕ - Удаляет кнопку просмотра
  • StandardCaptions: Истина (True) - Показывает стандартные заголовки (только для Windows NT)

Процедура отобразит диалог выбора файла с полем редактирования и кнопкой просмотра. Пользователь может выбрать файл или ввести путь в поле редактирования, а затем нажать "ОК", чтобы продолжить. Если пользователь нажмет "Отмена", диалог вернет False.

Показать диалог для запуска приложения 2 - код на Delphi, использующий функцию RunFileDlg для отображения диалога запуска.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Диалоги и Фреймы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:27:50/0.0054879188537598/1