Помощь - Поиск - Пользователи - Календарь
Полная версия: Редакторы Файлов
Форум «Всё о Паскале» > 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"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.