Autor Téma: Vytvorenie modulovej aplikácie - ako sa to robí  (Přečteno 2624 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5307
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Vytvorenie modulovej aplikácie - ako sa to robí
« kdy: 11-09-2016, 16:17:32 »
Pravdepodobne budem robiť rôzne drobné (pomocné) programčeky pre projektanta stavbára. Technické výpočty, zjednodušené stanovenie ceny stavby na základe "stavebných modulov" a podobne. Aby som sa trocha odreagoval od hlavnej aplikácie. Už mi dosť lezie na nervy  :)  Rád by som ich zahrnul do jednej aplikácie. No netuším ako na to.
Niektoré z mojich predstáv:

1) Čo aplikácia to exe súbor. Hlavný formulár si načíta exe súbory a vytvorí pre každú aplikáciu tlačidlo. Jednotlivé exe súbory (+ prípadne DB a iné) postačí len skopírovať do predvoleného adresára

2) Budem mať inštalačný program, ktorý sa postará o nakopírovanie patričných modulov a vytvorí ich zoznam, ktorý si pri spustení načíta hlavný formulár a z neho vytvorí tlačidlá. Alebo priamo dá patrične upravený hlavný formulár - ale netuším či sa to vôbec dá.

Nejaké odkazy, čo hľadať - kľúčové slová, návrhy...
Ďakujem.

Poznámka:
Teraz ma nezaujíma žiadna ochrana, prípadná spolupráca medzi modulmi či niečo iné.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Sender

  • Plnoletý
  • ***
  • Příspěvků: 184
  • Karma: 5
    • Verze Delphi: Delphi 7 Prof.
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #1 kdy: 11-09-2016, 18:58:56 »
Řešil bych to asi tak,že bych do resource exe miniaplikace vložil identifikátor,že se jedná o součást hlavního programu,případně i informace o názvu tlačítka ap. V hlavním programu při startu aplikace bych prohledával adresář (ve kterým se mají miniaplikace nacházet) a testoval,jestli aplikace patří k hlavnímu programu.Pokud ano,vytvořilo by se tlačítko s názvem i případnou ikonou,zároveň bych i uložil do proměnný cestu a název exe souboru. Určitě bych  neřešil identifikaci názvem souboru.
 

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5307
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #2 kdy: 11-09-2016, 19:03:10 »

Citace
a testoval,jestli aplikace patří k hlavnímu programu
Predpokladám, že to mám hľadať v resource exe
Citace
Určitě bych neřešil identifikaci názvem souboru
To ma nenapadlo, že to je totálne zle.

W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1003
  • Karma: 28
    • Verze Delphi: XE8, Seattle
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #3 kdy: 11-09-2016, 19:08:20 »
Radek kdysi popsal metodu (jistě se to dá najít v archivu delphi.cz), jak napsat a propojit s aplikací jednoduchý plugin (dll, bpl). Třeba i to by mohla být cesta k obohacení vlastní aplikace. Já sice používám tu metodu z RxLib, ale princip je téměř stejný.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5307
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #4 kdy: 11-09-2016, 19:49:37 »
Asi myslíš toto http://delphi.cz/post/Delphi-DLL-plugin.aspx
Spomínajú tam aj RxLib v JVCL. Asi naň pozriem.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 421
  • Karma: 5
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #5 kdy: 11-09-2016, 19:55:54 »
Stano, jinak kdybys chtěl trochu srozumitelné teorie, tak jsem letmo našel tohle: http://theses.cz/id/zi8jf1/downloadPraceContent_adipIdno_9270.

Offline Sender

  • Plnoletý
  • ***
  • Příspěvků: 184
  • Karma: 5
    • Verze Delphi: Delphi 7 Prof.
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #6 kdy: 11-09-2016, 20:57:42 »

Citace
a testoval,jestli aplikace patří k hlavnímu programu
Predpokladám, že to mám hľadať v resource exe
Citace
Určitě bych neřešil identifikaci názvem souboru
To ma nenapadlo, že to je totálne zle.
jj,v resource toho konkrétního exe (případně dll ap.).Je to jedna z cest jak řešit záležitost bez kniihoven třetích stran.
Je i možnost třeba do názvu miniaplikace exe souboru zařadit nějaký identifikátor,ale je to náchylný na přejmenování (uživatel,antivir ap.).Proto bych se identifikací v názvu raději vyhnul.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5307
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #7 kdy: 11-09-2016, 21:48:29 »
Hm, ja rozmýšľam ísť cestou: čo problém, to nový projekt v Delphi.
Takže DLL, z môjho pohľadu, ako modul vypadáva. Jednu DLL používam, ale výslovne len ako sklad funkcií, aby som ich nemal v projekte. Neviem ako by som tam dostal funkčnosť "celej aplikácie".
Neviem ako to je s balíčkami bpl, ale čítal som dosť vecí "proti" nim. Nikdy som s nimi nerobil a mám skôr predstavu, že sú v nich komponenty :)
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1003
  • Karma: 28
    • Verze Delphi: XE8, Seattle
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #8 kdy: 11-09-2016, 21:59:52 »
RxLib sice v JVCL je zahrnutá, ale nejsem si jist, zdali jsou tam ty samé pluginy co v samostatné knihovně, viz http://www.micrel.cz/RxLib/dfiles.htm. :-\

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5307
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #9 kdy: 11-09-2016, 22:10:24 »
Ja tam mám TJvPluginManager. Či to je zhodné s TRxPlugin neviem. Udáva sa tam typ (custom, bpl a dll) a adresár s plugin-mi. Nič viac.
Jas som sa niekedy pokúšal nainštalovať RXlib v XE2, ale nešlo mi to. V D7 nebol problém.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1003
  • Karma: 28
    • Verze Delphi: XE8, Seattle
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #10 kdy: 12-09-2016, 12:36:18 »
Ano, vypadá to že TJvPluginManager a TRxPlugin jsou podle stejného zdroje :)

Offline Daniel_Andrascik

  • Hrdina
  • ****
  • Příspěvků: 470
  • Karma: 20
    • Verze Delphi: D2007, XE3
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #11 kdy: 12-09-2016, 13:12:51 »
No kedysi som dost onanoval s moznostami modulovatelnej aplikacie. Presiel som si toho v celku vela. Vyskusal viacero konceptov a viacero suflikarskych ak sa to da nazvat frameworkov a kniznic. A teda nic moc.

Samozrejme hned od zaciatku som vyskusal "odporucane" bpl baliky (dokonca aj komercne) a neodporucam.

Skusal som dll kniznice. Ako tak to s nimi slo. Daju sa do nich vopchat aj VCL formulare, len v paru bodoch ma VCL trosku namietky voci tomu ale tie body su vseobecne zname a da sa to vo vacsine pripadoch osetrit a nie je to ani extremne pracne. Co ma ale mrzi nedaju sa z dll natahovat TFrame kontajnery a ani klasicky TForm nevies pomocou parenta umiestnit na nejaky formular hostovskej aplikacie. Keby toto slo, bol by to podla mna asi najlepsi pristup a pouzitie interfejsov na zdielanie objektov z dll kniznic sa mi tiez velmi osvedcilo. V paru pripadoch to mam vyskusane aj komercne.

Inac v urcitych pripadoch sa da pouzit este jeden partizancky postup. Jednotlive moduly su vytvorene ako separatne exe aplikacie. Hostovska aplikacia spusti exe modul a posle mu handle svojho okna a formular v modulovom exe sa tiez rovnako cez vlastnost Parent prilepi na hostovsky formular. V pripade ze nepotrebujes riesit IPC komunikaciu tak sa tato mozno zda byt uplne najjednoduchsia a nemusis studovat vsetky tie zaludnosti okolo dll a pod.


Offline Daniel_Andrascik

  • Hrdina
  • ****
  • Příspěvků: 470
  • Karma: 20
    • Verze Delphi: D2007, XE3
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #12 kdy: 12-09-2016, 13:16:19 »
Inac je tu este jeden framework ktory na mna posobi v celku dvoverihodne a seriozne. Cize ziadna suflikarcina, ale je drahy, cize pre teba stano asi nie moc vhodny. Ale keby nahodou niekto potreboval.

http://www.remobjects.com/tv/hydra.aspx

Neskusal som to, ale pri prechadzani ich webu sa mi to javi ako najserioznejsi framework na ktory som pre delphi narazil...

Offline Daniel_Andrascik

  • Hrdina
  • ****
  • Příspěvků: 470
  • Karma: 20
    • Verze Delphi: D2007, XE3
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #13 kdy: 12-09-2016, 13:33:04 »
Ked si clovek pozrie to prezentacne video Hydry od RemObjects tak ma pocit ze neajko asi obisli fyzikalne zakony aby to spravili. Aspon teda po mojich skusenostiach a problemoch ktore som si prezil s pluginovatelnymi aplikaciami sa mi ta Hydra zda ako zazrak. Len dokial nevyskusam nemozem povedat ze je to ok a bez problemov...

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2698
  • Karma: 104
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Vytvorenie modulovej aplikácie - ako sa to robí
« Odpověď #14 kdy: 12-09-2016, 13:42:45 »
Skusal som dll kniznice.
...
 Co ma ale mrzi nedaju sa z dll natahovat TFrame kontajnery a ani klasicky TForm nevies pomocou parenta umiestnit na nejaky formular hostovskej aplikacie.

TFrame by mne nevadil. To druhe nejde ani kdyz spravne priradis handle? To podle mne musi jit, ne? To je zakladni princip pouziti komponent z windows. Nebo se pletu?
Embarcadero MVP - Czech republic