Главная страница
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.019 c
8-14181
Ptushenko Denis
2002-04-25 10:02
2002.09.05
Как определить есть ли звуковая карта на компе ?


1-13990
DIM0N
2002-08-25 21:46
2002.09.05
Ресурсы


1-14036
Лохматый
2002-08-21 10:13
2002.09.05
FileOpen


1-14131
FarmaZet
2002-08-22 21:32
2002.09.05
Rich Editik ! ?


3-13975
Krizalis
2002-08-16 17:33
2002.09.05
Помогите с INTERBASE