Открыть файл моим приложением

Тема в разделе "Delphi - Система", создана пользователем mariner, 17 окт 2004.

Статус темы:
Закрыта.
  1. mariner

    mariner Гость

    Как открыть файл моим приложением через меню 'Открыть с помощью'. А то просто грузится программа, а файл не открыет.
     
  2. mariner

    mariner Гость

    и еще, как делать такие кнопки как в ХР? То есть, которые изменяются со стилями
     
  3. Barmutik

    Barmutik Гость

    В винде реализован механизм ассоциации расширения файла с той программой которая её открывает.

    Если такая ассоциация есть то можно просто выполнить ShellExecute('open', ....) и система сама запустит требуемое приложение для открытия указанного файла.

    Если вам требуется что бы Ваша программа открывала файлы определённого типа Вам всего лиш требуется переписать ассоциацию для файла этого типа в реестре.

    Вот пример для htmlfile:

    Код (Text):
    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\htmfile]

    [HKEY_CLASSES_ROOT\htmfile\shell]
    @="XXX"

    [HKEY_CLASSES_ROOT\htmfile\shell\XXX]

    [HKEY_CLASSES_ROOT\htmfile\shell\XXX\command]
    @="\"D:\\XXX\\XXX.exe\" \"%1\""
     
  4. Barmutik

    Barmutik Гость

    Для того что бы аши кнопки поддерживали стили в XP они должны удовлетоворять спецификации Microsoft по поддержке Visual Styles... подробнее вагон информации в интернете или в MSDN.

    И вопрос: а чем Вас не устраивают стандратные кнопки? Они по умолчанию поддерживают стили...

    А если Вам надо такие же кнопки в любой операционке то скачайте набор компонент Raise ... грамотный набор компонент, который в операционной системе отличной от ХР эмулирует её стиль отрисовки.
     
  5. mariner

    mariner Гость

    Barmutik, вы меня неправильно поняли. Допустим, у меня есть блокнот(моя прога) и есть txt-файл. Я нажимаю правой кнопкой "Открыть с помощью" и выбираю свою прграмму. Нажав, загружается программа, но не открывая txt-файл.
     
  6. Barmutik

    Barmutik Гость

    Ааа... да понял не так... а как у Вас насчёт обработки параметров командной строки?

    В них и должен быть передан Вашему приложению имя файла которое требуется открыть...
     
  7. Guest_mariner

    Guest_mariner Гость

    во-во, только как споймать эти параметры?

    Насчет кнопок XP:
    достаточно создать файл имя_исполняемого_файла.exe/manifest и вставить в него следующий код

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="X86"
    name="CompanyName.ProductName.YourApplication"
    type="win32"
    />
    <description>Your application description here.</description>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity
    type="win32"
    name="Microsoft.Windows.Common-Controls"
    version="6.0.0.0"
    processorArchitecture="X86"
    publicKeyToken="6595b64144ccf1df"
    language="*"
    />
    </dependentAssembly>
    </dependency>
    </assembly>


    заменив нужные части на свои и положить в папку с программой
     
  8. Guest_mariner

    Guest_mariner Гость

    programname.exe.manifest точнее
     
  9. zubr

    zubr Гость

    Guest_mariner

    Надо сделать что то типа этого:
    Код (Text):
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    If ParamStr(1)<>'' then
    RichEdit1.Lines.LoadFromFile(ParamStr(1));
    end;
     
  10. Barmutik

    Barmutik Гость

    ParamCount - количество параметров
    Params(X) - обращение к Х параметру

    0 параметр всегда путь исполняемого файла.

    То что Вы привели это лиш прикомпиляция ресурсов говоряща я о том что программе надо использовать библиотеку контролов винды версии 6.0 (со стилями).

    Я имел ввиду если Вы сами хотите сделать контрол поддерживающий стили XP.
     
  11. Guest

    Guest Гость

    Спасибо вам всем!
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей