Díl druhý - minimum které musí obsahovat každý plugin

V tomto fóru se budeme zabívat tvorbou pluginů pro QIP Infium.
Ukážeme si jak využívat všech možností SDK.
Celý seriál bude doplněn o příklady.
Předpokladem pro dokončení seriálu je instalace DELPHI.
Další podmínkou je alespoň základní znalost programování a používání tohoto vývojového prostředí.

Moderátor: sutrus

Zamčeno
Uživatelský avatar
sutrus
Administrátor
Administrátor
Příspěvky: 274
Registrován: 04 úno 2006 18:36
Bydliště: Jihlava
Kontaktovat uživatele:

Díl druhý - minimum které musí obsahovat každý plugin

#1

Příspěvek od sutrus »

Dnes si ukažeme co vše musí obsahovat plugin aby jej bylo možné spustit pod QIP Infium.
Jedná se o minimalistický příklad pluginu který vlastně nic neumí a nám se bude hodit při založení nového prázdného pluginu. Na tomto základě pak budeme stavět a rozšiřovat kód o nové a nové funkce.

Takto upravený plugin si můžete stáhnout
min_plug.rar
Díl druhý. Základ pro tvorbu pluginu
(217.28 KiB) Staženo 265 x
V krátkosti si popíšeme které procedury a konstanty jsou potřeba.
Vše potřebné najdeme v unitu u_qip_plugin.pas

Konstanty
Tyto konstanty nám definují verzi, jméno a popis pluginu zobrazený uživateli.
  • PLUGIN_VER_MAJOR = 1; //Verze pluginu
    PLUGIN_VER_MINOR = 0; //Verze pluginu
    PLUGIN_NAME : WideString = 'QIP Plugin minimum'; //Název pluginu
    PLUGIN_AUTHOR : WideString = 'sutrus'; //Autor pluginu
    PLUGIN_DESC : WideString = 'Test - minimum které musí obsahovat každý plugin'; //Popis pluginu
    PLUGIN_HINT : WideString = 'Test plugin a jeho pipis řádek 1.' + #13#10 + 'Test plugin a jeho pipis řádek 2.'; //Toto se zobrazí při najetí myši nad plugin
Typ TQipPlugin
Obsahuje základní procedury pro řízení a vzájemnou komunikaci pluginu s Infiem.
  • procedure LoadSuccess(PlugMsg: TPluginMessage) //Je zavolána po spuštění Infia
    procedure CreateControls //Je zavolána v okamžiku spuštění pluginu
    procedure FreeControls //Je zavolána v okamžiku ukončení nebo zakázání pluginu
    procedure LoadPluginOptions a SavePluginOptions //Využívá se pro načtení nebo uložení nastavení pluginu
Všechny tyto procedury jsou vázané na zprávy poslané do pluginu.
Jsou to tyto zprávy PM_PLUGIN_LOAD_SUCCESS, PM_PLUGIN_RUN, PM_PLUGIN_QUIT, PM_PLUGIN_DISABLE, PM_PLUGIN_ENABLE.
Dále pak PM_PLUGIN_OPTIONS vyvolaná kliknutím na tlačítko Nastavení v seznamu pluginů
a PM_PLUGIN_WRONG_SDK_VER při zjištění chybné verze SDK pluginu, tedy verze SDK pluginu je větší než verze SDK Infia.

Kompletní seznam všech zpráv které si může plugin vyměnit s Infiem najdete v unitu u_plugin_info.pas
Ke dnešní verzi SDK 1.6.0 jich můžete využít 67. Cílem dnešního dílu byla ukázka prvních šesti zpráv které musí obsahovat každý plugin. Zpráva PM_PLUGIN_WRONG_SDK_VER je sedmá a není nutně vyžadována pro běh pluginu.

Tím dnešní díl končí. V další díle si ukážeme jak do pluginu přidat formulář a také si vytvoříme tlačítko pod avatar.
Zdeněk Kameník - SPSSoftware
Hardware je vše co se nedá ukrást po síťi. Čím rychlejší počítač je, tím rychleji se rozbije.
Počítač vám ušetří spoustu práce, kterou byste bez něj vůbec neměli.
Zamčeno

Zpět na „Seriál - vytváříme vlastní plugin“