Umíme to s Delphi, 34. díl – BPL: packages (balíky), 1. část

Diskuze čtenářů k článku

Mifko  |  12. 11. 2001 17:46

Ma nejaky hlbsi vyznam sirit aplikaciu s balickami, ked predpokladam, ze vacsina userov doma delphi nema? Ja som si napriklad nasiel na mojom disku subor vcl50.bpl a ten ma 2MB. To uz radsej budem mat 300kB exac namiesto 20kB, ked musim prilozit 2MB . Teda to je moj nazor...

Zaujimalo by ma, ci niekto z Vas pouziva kompilaciu bez balickov a preco. Zatial som v tom nenasiel nejake extra klady, skor zapory...

Mifko

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr Pilný  |  13. 11. 2001 09:15

Používáme ji alespoň částečně, protože nám nefunguje zcela dle našich představ (zatím).

Představ si aplikaci, kde základní modul volá jednotlivé funkční podmoduly dle výběru uživatele. Aplikace má pracovat v síti i na notebooku a má být možná jednoduchá aktualizace. 2MB exe z internetu stahovat při změně každého modulu nemůžeme, zvlášť když se má aplikace průběžně vyvíjet.

Jinak pro pakování exe, dll, bpl a ocx používáme ASPack, doporučuji!!!

www.aspack.com

                        Hezký den

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr  |  13. 11. 2001 13:15

Tak přesně tyto 'packy' bych zásadně nedoporučoval. Výsledek je totiž přesně opačný, díky tomu že jejich princip jde zcela proti operačnímu systému a způsobí daleko větší nároky na pamět. V zásadě vedou ke zkopírování každého takto "zkomprimovaného" souboru na swap file (v dekomprimované podobě) a to ještě pro každou spuštěnou instanci aplikace. Jediné smyslupné řešení je zkomprimovat soubor pro distribuci a na počitači jej pak rozbalit do původní podoby. Co bych si opravdu přál, aby Microsoft znemožnil používání takovýchto paskvilů, protože jde o typické matení uživatele menší délkou souboru.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr  |  13. 11. 2001 13:20

Balíčky mají tu ohromnou výhodu, že umožňují předávání Delphi objektů mezi EXE a DLL, BPL ... a navíc tak lze velmi dobře napsat aplikace do kterých lze pak přidávat další moduly rozširující jejich funkci.

Souhlasím  |  Nesouhlasím  |  Odpovědět
rostislav pavelka  |  11. 03. 2002 08:30

My napriklad pouzivame 32 uloh, ktere si mapuji vcl knihovny DELPHI, ktere jsou pak jen jednou v systemu.

Kazde OCX, ktere zkompiluji bez VCL Delphi tak jsou maximalne 150kb velke a dohromady usetrim misto. Nikoliv v pameti pri spousteni aplikaci, kdy kazda instance si rozbaluje kazdy pozadovany balicek zvlast. Ale u nas situace kdy vsechny aplikace by byly spusteny nenastane.

Tedy pokud mate vice uloh, volajicich jeden a tentyz balcek - je vhodne ulohy zkompilovat bez nich a balicek dat do systemu. Je treba si to spociatat.

 

R.Pavelka BRNO

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr Pilný  |  12. 11. 2001 09:02


Zkuste si vytvořit modulární aplikaci, která volá funkce uložené v DLL knihovnách a ty jsou zeštíhleny použitím překladu s BPL.

Stoprocentně nám to padá pokud z hlavního EXE zavoláme DLL knihovnu, která si pro zobrazení grafu zavolá další společné DLL (při návratu z něj). Vypadá to jako když se někde něco neuvolní, či čo.

Vyzkoušeno v Delphi 5.

                                     Hezký den a , Pilous

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr  |  12. 11. 2001 16:41

A máte s balíčky přeložené i to EXE ?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr Pilný  |  13. 11. 2001 08:51


Děkuji za odpověď a přeji hezký den.

Pokud přeložíme s balíčky vše, tuhne to, jak jsem popsal. Bezchybně to funguje pouze pokud je s balíčky zkompilována pouze jedna úroveň a ostatní bez nich.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr  |  13. 11. 2001 13:17

Pak je z 99.9% chyba někde ve vašem kódu. Používáte někde dynamicky nahrávané balíčky nebo nějaké komponenty od jiných výrobců ?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor