![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Только для настоящих мастеров.
Cr@sh © (2002-08-24 09:58:00)Мастера, подскажите, пожалуйста, как связать свое приложение с определенным типом файлов.
И как сделать так, чтобы при щелчке правой кнопкой на файле(допустим *.bmp) и выборе "Открыть с помощью..." моей программы, этот файл загрузился в Image моей программы?
Заранее спасибо, и извините за тофтологию:)
VID (2002-08-24 19:41:00) [1]http://delphibase.endimus.com/?action=viewfunc&topic=sysiface&id=10189
Юрий Зотов (2002-08-24 16:52:00) [2]> ttp://www.delphikingdom.com/helloworld/samples_win.htm
Пример № 3. Там все найдете.
Cr@sh (2002-08-24 13:27:00) [3]2Men-In-Red
Спасибо большое за лекцию:)
Man-In-Red (2002-08-24 13:00:00) [4]Регистрируем новый тип файлов:
procedure Tform1.RegisterFileType(prefix:String; exepfad:String);
var
reg :TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey("."+prefix,True);
reg.WriteString("",prefix+"file");
reg.CloseKey;
reg.CreateKey(prefix+"file");
reg.OpenKey(prefix+"file\DefaultIcon",True);
reg.WriteString("",exepfad+",0");
reg.CloseKey;
reg.OpenKey(prefix+"file\shell\open\command",True);
reg.WriteString("",exepfad+" "%1"");
reg.CloseKey;
reg.Free;
end;
Вызывается так:
RegisterFileType("*", Application.ExeName);
Первый параметр – формат файла, например bmp
Второй параметр – путь к exe-файлу программы, и его имя…
Потом при открытии программы с помощью paramstr:
if FileExists(ParamStr(1)) then {это и есть тот самый файл, который мы открываем, и запускается наша программа…}
begin
//Делаешь с этим файлом что хочешь!
end;
Значок у твоих новых файлов, станет таким же как и у твоей проги!
Удачи...
Cr@sh (2002-08-24 10:50:00) [5]Ну-ну...
SireX (2002-08-24 10:49:00) [6]Cr@sh ©, можно и так.
Будет время, подумаю, мож напишу еще
Cr@sh (2002-08-24 10:41:00) [7]>SireX
Спасиба большое.
У меня еще есть необходимость, сохранять стандартные бмпги с др. расширением, но тогда при открытии файла, прога пишет анноун файл формат, как с этим справится? может перед открытием создавать копию файла с бмпшным расширением?
SireX (2002-08-24 10:36:00) [8]Чтобы связать программу с определенным файлом придется полазить в реестре или в обычном windows окне "Сервис >> Свойства папки >> Типы файлов"
Но это не решение проблемы если ты хочешь чтобы программа сама регистрировалась под опр. типом файла. В этом случае используй Tregistry, (WriteString). Если получиться, то измени строку Image1.Picture.LoadFromFile(ParamStr(1)); на
if ParamStr(1)<>"" then
Image1.Picture.LoadFromFile(ParamStr(1));
SireX (2002-08-24 10:19:00) [9]Cr@sh, делается это следующим образом:
в процедуру FormCreate впиши одну строку:
procedureTForm1.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile(ParamStr(1));
end;
т.е. ParamSrt(1) - это и есть имя файла которое Windows припишет при открытии твой программы как параметр.