Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.05;
Скачать: CL | DM;

Вниз

Только для настоящих мастеров.   Найти похожие ветки 

 
Cr@sh ©   (2002-08-24 09:58) [0]

Мастера, подскажите, пожалуйста, как связать свое приложение с определенным типом файлов.
И как сделать так, чтобы при щелчке правой кнопкой на файле(допустим *.bmp) и выборе "Открыть с помощью..." моей программы, этот файл загрузился в Image моей программы?
Заранее спасибо, и извините за тофтологию:)


 
SireX ©   (2002-08-24 10:19) [1]

Cr@sh, делается это следующим образом:

в процедуру FormCreate впиши одну строку:

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile(ParamStr(1));
end;

т.е. ParamSrt(1) - это и есть имя файла которое Windows припишет при открытии твой программы как параметр.


 
SireX ©   (2002-08-24 10:36) [2]

Чтобы связать программу с определенным файлом придется полазить в реестре или в обычном windows окне "Сервис >> Свойства папки >> Типы файлов"

Но это не решение проблемы если ты хочешь чтобы программа сама регистрировалась под опр. типом файла. В этом случае используй Tregistry, (WriteString). Если получиться, то измени строку Image1.Picture.LoadFromFile(ParamStr(1)); на

if ParamStr(1)<>"" then
Image1.Picture.LoadFromFile(ParamStr(1));



 
Cr@sh ©   (2002-08-24 10:41) [3]

>SireX
Спасиба большое.
У меня еще есть необходимость, сохранять стандартные бмпги с др. расширением, но тогда при открытии файла, прога пишет анноун файл формат, как с этим справится? может перед открытием создавать копию файла с бмпшным расширением?


 
SireX ©   (2002-08-24 10:49) [4]

Cr@sh ©, можно и так.
Будет время, подумаю, мож напишу еще


 
Cr@sh ©   (2002-08-24 10:50) [5]

Ну-ну...


 
Man-In-Red ©   (2002-08-24 13:00) [6]

Регистрируем новый тип файлов:

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 13:27) [7]

2Men-In-Red
Спасибо большое за лекцию:)


 
Юрий Зотов ©   (2002-08-24 16:52) [8]

> ttp://www.delphikingdom.com/helloworld/samples_win.htm
Пример № 3. Там все найдете.


 
VID ©   (2002-08-24 19:41) [9]

http://delphibase.endimus.com/?action=viewfunc&topic=sysiface&id=10189



Страницы: 1 вся ветка

Текущий архив: 2002.09.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
14-14249
Ksion
2002-08-11 11:49
2002.09.05
У меня скоро бошка лопнетот того что я не знаю.


1-14090
ЮРИЙ_К
2002-08-23 13:26
2002.09.05
Загрузить картинку для TRxPopupMenu из ресурса


3-13871
NDR
2002-08-12 13:07
2002.09.05
УЖАВАЕМЫЕ МАСТЕРА! Как выйти из цикла?!


3-13894
Fiend
2002-08-14 15:49
2002.09.05
Даже не знаю как озаглавить


4-14321
lds78
2002-07-04 13:07
2002.09.05
Аналог TBitmap из Graphics.dcu