Помощь - Поиск - Пользователи - Календарь
Полная версия: Редакторы Файлов
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
#$# PaVeL #$#
Привет всем!
У меня есть такой вопрос:
1. Как на один тип файла прописать, програмно, отдельно редактор и отдельно программу исполняющую его? Чтоб формулировка вопроса стала понятной приведу пример:
Файл *.bmp в меню на этот файл есть следующее:
"Изменить" - Открывается Paint
"Просмотр" - Открывается программа просмотра

Как сделать похожее?

Сразу задам по этой же теме следующее:
2. Как сделать команду по умолчанию (*.bmp по умолчанию "просмотр")?
3. Как сделать особый ситаксис запуска файла по маске (допустим чтоб имя файла указывалось во втором параметре а в первом стояла стандарно строчка "+z")?
4. Как связать с определённым типом файла определённую иконку?

Прошу помощи очень надо, если кто может участок кода!
Заранее спасибо.
Fang
Не совсем понял вопрос. Ты хочешь сделать чтобы твоя программа открывала файлы с определёнными расширениями (допустим bmp)? Если да, то необходимо было сначала попробовать самому поискать:
[img]http://search.msdn.microsoft.com/search/results.aspx?qu=Shell+Extensions&View=msdn&st=b[/img]
[img]http://www.yandex.ru/yandsearch?rpt=rad&text=%CA%E0%EA+%E7%E0%F0%E5%E3%E8%F1%F2%F0%E8%F0%EE%E2%E0%F2%FC+%F0%E0%F1%F8%E8%F0%E5%ED%E8%E5+%2B+Delphi[/img]

А если нет тогда не знаю unsure.gif
Altair
Fang, а ты перед тем как посылать людей в поиск, научись понимать что им надо!
#$# PaVeL #$#, теюе надо задать файловые ассоциации.
В DRKB все есть
Цитата
Как зарегистрировать свой пункт в меню для моего типа файлов?


uses
Registry;

procedure AddFileMenue(FilePrefix, Menue, Command: string);
var
reg: TRegistry;
typ: string;
begin
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey('.' + FilePrefix, True);
typ := ReadString('');
if typ = '' then
begin
typ := Fileprefix + 'file';
WriteString('', typ);
end;
CloseKey;
OpenKey(typ + '\shell\' + Menue + '\command', True);
WriteString('', command + ' "%1"');
CloseKey;
Free;
end;
end;

procedure DeleteFileMenue(Fileprefix, Menue: string);
var
reg: TRegistry;
typ: string;
begin
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey('.' + Fileprefix, True);
typ := ReadString('');
CloseKey;
OpenKey(typ + '\shell', True);
DeleteKey(Menue);
CloseKey;
Free;
end;
end;


{ Example}

procedure TForm1.Button1Click(Sender: TObject);
begin
AddFileMenue('rtf', 'Edit with Notepad', 'C:\Windows\system\notepad.exe');

{
If you now click with the right mousebutton on a *.rtf-file then
you can see a Menuepoint: "Edit with Notepad".
When Click on that point Notepad opens the file.
}
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
{
Undo your changes in the Registry:
}

DeleteFileMenue('rtf', 'Edit with Notepad');
end;


Есть еще кое что
Цитата
Как получить список всех расширений и их ассоциаций?


как ты уже понял все файловые ассоциации храняться в ветке HKEY_CLASSES_ROOT реестра.
работай с ним, скорее всего тебе надо искать информацию по реестру windows...
#$# PaVeL #$#
Как в пункт меню добавить иконку?
Как в WinRar`е допустим.
Gothic_Snake
Цитата(#$# PaVeL #$# @ 25.12.2005 16:54) *

Как в пункт меню добавить иконку?
Как в WinRar`е допустим.

Было бы логично открыть редактор реестра, посмотреть раздел, отвечающий за файлы с разрешением *.rar и стенуть оттуда значение, отвечающую за иконку. Только не забудь указать путь к своей иконке!
volvo
Цитата
Как в пункт меню добавить иконку?
Читай в DRKB: "Иконки в PopupMenu"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.