Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-13903
KAA
2002-08-14 18:43
2002.09.05
2000 Функция - число прописью


14-14222
Dr.Abolo
2002-08-08 21:32
2002.09.05
Дельфисты объединяйтесь


3-13958
Fbist
2002-08-16 08:11
2002.09.05
Люди добрые!!! Нужна срочно помощь!!!


8-14173
TonyK
2002-04-30 00:35
2002.09.05
Посоветуйте компонент для работы со сканером (TWAIN)...


1-14058
nh
2002-08-23 11:45
2002.09.05
RXLib





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский