Диалоги
Как именно с ними работать чтобы на с: открыть файл?
Похоже я понял что тебя смущает: OpenFileDialog и SaveFileDialog - ничего сами по себе не открывают и не сохраняют. Они нужны только для выбора имени файла. Ставишь их на форму. Там куча свойств и опций - типа исходны каталог, показыать скрытые файлы или нет и т.п. Впрочем по началу можно их вообще не указывать. Тебе надо знать только 1 метод - execute - открыть диалог:
Перевод одноимённой статьи с сайта delphi.about.com )
Стандарные диалоговые окошки
Практически любое приложение Windows использует стандартные диалоги, встроенные в операционную систему, для открытия и сохранения файлов, поиска текста, печати, выбора шрифта или установки цвета.
В этой статье мы рассмотрим основные свойства и методы этих диалогов и, особенно, сфокусируем внимание на диалогах Open и Save.
"Выбрать компьютер" - это диалог, предоставляемый сетевыми службами (NTLANMAN.DLL) для Windows для отображения серверов и компьютеров.
Автор: Terrance Hui
Пример показывает стандартное диалоговое окно, которое обычно используется для подтверждения дальнейших действий в любой программе с галочкой "Don't show this message again."
Используем функцию CreateMessageDialog и добавляем любой компонент до того как будет вызвана ShowModal.
Code: |
uses registry, shellapi;
function Launch_CreateShortCut_Dialog(Directory: string): Boolean; var reg: TRegistry; cmd: string; begin Result := False; reg := TRegistry.Create; try reg.Rootkey := HKEY_CLASSES_ROOT; if reg.OpenKeyReadOnly('.LNK\ShellNew') then begin cmd := reg.ReadString('Command'); cmd := StringReplace(cmd, '%1', Directory, []); Result := True; WinExec(PChar(cmd), SW_SHOWNORMAL); end finally reg.Free; end; end;
{Example}
procedure TForm1.Button1Click(Sender: TObject); begin Launch_CreateShortCut_Dialog('c:\temp'); end; |
Code: |
ShellExecute(Application.Handle, 'open', 'sysdm.cpl', nil, nil,sw_ShowNormal); |
добавьте ShellAPI в USES
Code: |
ShellExecute(handle, nil, 'rundll32.exe', 'shell32.dll,SHHelpShortcuts_RunDLL AddPrinter', '', SW_SHOWNORMAL); |
Этот код отображает приложение/файл "открыть с помощью" диалоговое окно Ввод полного пути и имени файла в качестве параметра приведет к открытию
диалогового окна с отображением строки "выберите программу, которую вы хотите использовать, чтобы открыть файл "Имя файла"".
Code: |
WinExec('rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2',SW_SHOWNORMAL); |
Этот код показывает диалоговое окно стандартных свойств файла, как в проводнике Windows
Code: |
{ This code shows the standard file properties dialog like in Windows Explorer }
uses shellapi;
// Thanks to Peter Below (TeamB) for this code procedure PropertiesDialog(FileName: string); var sei: TShellExecuteInfo; begin FillChar(sei, SizeOf(sei), 0); sei.cbSize := SizeOf(sei); sei.lpFile := PChar(FileName); sei.lpVerb := 'properties'; sei.fMask := SEE_MASK_INVOKEIDLIST; ShellExecuteEx(@sei); end;
procedure TForm1.Button1Click(Sender: TObject); begin if Opendialog1.Execute then PropertiesDialog(Opendialog1.FileName); end; |
Code: |
uses Shellapi;
procedure TForm1.Button1Click(Sender: TObject); begin ShellExecute(Handle, 'open', 'control', 'date/time', nil, SW_SHOW); end; |
Страница 1 из 3