Как именно с ними работать чтобы на с: открыть файл?

 

Похоже я понял что тебя смущает: 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;