Как мне вставить компонент в панель инструментов (палитру) без запуска Delphi, install component...
Например с командной строки. Делаю инсталяшку и столкнулся с такой проблемой.
Шлите на мыло. Я редко бываю в инете!
2:5020/6000.50
Re: Вставить компонент в палитру без запуска Дельфи
Здравствуйте Dragon31337, Вы писали:
D>Как мне вставить компонент в панель инструментов (палитру) без запуска Delphi, install component... D>Например с командной строки. Делаю инсталяшку и столкнулся с такой проблемой. D>Шлите на мыло. Я редко бываю в инете!
Я думаю тебе обязательно надо будет растространять откомпиленный bpk и все что к нему нужно, а дальше
совсем просто — колдуеш над реестром (придется повазится для разных опер. систем можно писать по разному).
И все. При следующем старте компонент залезит в палитру. Это набросок действий.Дерзай.
Re[2]: Вставить компонент в палитру без запуска Дельфи
Здравствуйте Whisperer, Вы писали:
W>Здравствуйте Dragon31337, Вы писали:
D>>Как мне вставить компонент в панель инструментов (палитру) без запуска Delphi, install component... D>>Например с командной строки. Делаю инсталяшку и столкнулся с такой проблемой. D>>Шлите на мыло. Я редко бываю в инете!
W>Я думаю тебе обязательно надо будет растространять откомпиленный bpk и все что к нему нужно, а дальше W>совсем просто — колдуеш над реестром (придется повазится для разных опер. систем можно писать по разному). W>И все. При следующем старте компонент залезит в палитру. Это набросок действий.Дерзай.
Это я и так понимаю! Но тогда придется возится и выпускать инсталяшки под разные платформы, т.к installShield
не умеет действовать по-разному взависимости от оси. Это не рулит.
Я спрашиваю, можно ли как-то типа
Delphi32 -installcomponent c:\temp\komponent.pas
А уж дельфи сама прекрасно знает, что и куда её писать.
Если уж конечно никакб то придется покопаться! Но все же..
2:5020/6000.50
Re[3]: Вставить компонент в палитру без запуска Дельфи
Здравствуйте Dragon31337, Вы писали:
D>Здравствуйте Whisperer, Вы писали:
W>>Здравствуйте Dragon31337, Вы писали:
D>>>Как мне вставить компонент в панель инструментов (палитру) без запуска Delphi, install component... D>>>Например с командной строки. Делаю инсталяшку и столкнулся с такой проблемой. D>>>Шлите на мыло. Я редко бываю в инете!
W>>Я думаю тебе обязательно надо будет растространять откомпиленный bpk и все что к нему нужно, а дальше W>>совсем просто — колдуеш над реестром (придется повазится для разных опер. систем можно писать по разному). W>>И все. При следующем старте компонент залезит в палитру. Это набросок действий.Дерзай.
D>Это я и так понимаю! Но тогда придется возится и выпускать инсталяшки под разные платформы, т.к installShield D>не умеет действовать по-разному взависимости от оси. Это не рулит. D>Я спрашиваю, можно ли как-то типа D>Delphi32 -installcomponent c:\temp\komponent.pas D>А уж дельфи сама прекрасно знает, что и куда её писать. D>Если уж конечно никак, то придется покопаться! Но все же..
Ну, во-первых поставить компонент так просто не выйдет прежде всего потому, что это требует модификации какого-то пакета. Команда меню, на которую ссылается ваш постинг, делает довольно много сложной работы. Вообще говоря, нет необходимости ее выполнять, т.к. можно создать свой пакет и инсталлировать его.
Чтобы это сделать, надо прописать компонент в реестре. У меня 5й, он хранит список пакетов в ключе
HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\Known Packages
Записываем туда значение типа REG_SZ с именем, соответствующем пути к нашему bpl, и данными, соответствующими описанию, и вуаля! При старте delphi подберет пакет и вставит его в палитру. Насчет разных операционок ничего сказать не могу, т.к. никогда не работал под 6м дельфи, и не знаю, где он что хранит под линухом. Честно говоря, у меня есть ощущение, что пакет под линух все едино предстоит генерить отдельно, и инсталляшка будет совсем другой.
Трудности под виндой могут возникнуть только с разными версиями дельфи. Вообще говоря, шансов, что один и тот же bpl удастся использовать с разными дельфяками, примерно ноль. Причину могу при необходимости рассказать в отдельном постинге. Поэтому надо делать разные bpl под каждую версию. Для определения версии дельфи надо посмотреть в реестр:
HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Delphi
Там лежат ключи, соответствующие установленным версиям зверя. У меня, например, там лежит ключик 5.0. Надо, ессно, помнить о том, что дельфяков может стоять одновременно несколько — разных версий.
Для тех, кто хочет сэкономить место в инсталляшке, есть возможность сгенерить bpl на лету при помощи примерно такой команды:
delphi32 /ns /b mypackage.dpk
Но я не рекомендую пользоваться ей по следующим причинам:
1. Для правильной работы придется прописать кучу опций в файлах mypackage.cfg, mypackage.dof, причем сделать это динамически, иначе bpl и dcp будут созданы хрен знает где
2. При перекомпиляции инсталлированного пакета дельфяк выкинет ворнинг и будет ждать пользовательского ввода
3. Синтаксис команды имеет все шансы смениться с выходом следующей версии дельфи
4. Для выполнения придется найти расположение екзешника дельфи через реестр (HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Delphi\x.x\App)
Так что... проще всего положить пакет и прописать его в реестре.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.