05. december 2000 - 16:33Der er
13 kommentarer og 2 løsninger
Samling af forms osv. i bpl eller dll
Hej derude !
Jeg vil lave et par programmer, der skal køre sammen. Dvs. to exe-filer for samme program. Det kan ikke diskuteres - sådan er det bare! ;o)
Men så ville jeg høre, om det var muligt at placere nogle af de units, som begge apps bruger, i en bpl- eller dll-fil? Jeg har prøvet at oprette en package og puttet lortet ind i den - dvs. forskellige units, som ligger i vcl50.bpl (bare for at prøve) - plus nogle fælles-units. Det eneste jeg fik ud af mine anstrengelser var en dcu-fil på 3K. Og den kan jeg jo ikke bruge ;o(
Et andet tilfælde: Jeg har installeret i Delphi nogle meget meget tunge komponenter med over 30.000 linjer kode. Dem ville jeg ligeledes gerne have placeret væk fra min egen kode (dvs. ind i fx bpl eller dll) - så compileren ikke behøvede bruge tid på dem hver gang jeg havde ændret et enkelt tegn i hovedapp\'en.
Du kan starte med af afinstalere de komponenter, som er ikke borland Standard og som begge programmer. Der efter instalerer du dem igen i en ny Package. Den er VIGTIGT at den hedder enten Rensdyr eller Hest.
Så linker du den DYNAMISK på dine projekter ... Så er du i hvertfald ude over meget dobbelt kode ...
Har du der udover nogle hjælpe units kan du med fordel ligge dem i en DLL fil.
Men hvis jeg så gerne vil lave nogle bpl-filer til mig selv... Hvordan gør jeg så det?
Jeg kunne forestille mig, at jeg lavede én, som hed d5common.bpl - med alle de normale units og komponenter i. Altså alle dem, som man bruger i en standard form. Så kunne jeg lave en bpl til de fælles komponenter og forme - og så lade resten være.
Grunden til dette er, at jeg gerne vil spare mest mulig plads, så den samlede filstørrelse er mindst mulig. Og hvis jeg bruger vcl50.bpl som dynamic (runtime), så fylder den 1,9 Mb upakket og 500 Kb pakket. Hvis jeg bare laver en tom form, bliver exe-størrelsen ca. 300 Kb.
Jeg ville derfor gerne lave en skræddersyet bpl til de programmer, jeg lavede. Men kan en komponent godt være registreret i to packages - og hvordan kompilerer man overhovedet en dpk til en bpl ?????
okay. jeg fandt ud af at lave bpl-filer selv. når man kompilerer package\'n bliver de lagt i ($DELPHI)\\Projects\\Bpl
problemet er bare, at de her bpl\'s stadig fylder mere, end hvis man inkluderer dem i selve exe-filen.
derfor valgte jeg at skrive de to programmer ind i én og samme exe-fil. derved sparede jeg ca 500 Kb. - og det er jo unægtelig noget, når det er beregnet til download fra nettet.
jeg vil lade spørgsmålet være åbent et par dage endnu. hvis der er andre, der har gode forslag. ellers lukker jeg og giver borrisholt 100 point for hjælpen.
Du førsøger at lave en blindtarms operation på en myre med bokse hansker på! lad dog den stakkels myre være i fred !
Delphi laver store EXE filer sådan er det ! Problemer er at du får en masse ekstra kode med ind i exe filer, alt det kode Borland har skrevet for at gøre det let for dig. Altså når du beder on en form får du hele VCL bibloteket med ind i din exe fil.
Skal du absolut lave små exe filer skal du selv skive dine kontroller, og for alt i verden undgå at Resourcen. I stedet skal du genere dine skærm billeder dynamisk. Et meget stor arbejde, men så afgjort ikke umuligt.
Ellers skal du blot acceptere størelsen på exefilerne ... Any wway hvis du nøjes med at ligge fælles forme og klasser i DLL filer så har du sparet en del ...
men da mine to programmer - som er dels et ftp-program, og en notepad-klon - er ret komplexe med et stort udvalg af kontroller - tja, så er det nok umuligt ;o)
specielt når man tænker på den tid, jeg har til rådighed...
men hvis I ikke allerede kender det - så brug ASPack. det er temmelig billigt. faktisk gratis til privat brug (så vidt jeg husker).
det reducerede min exe-fil (altså den med begge programmer) fra 1,6 Mb til 500 Kb.
Flot, ik?
Forresten irriterer det mig grusomt, at Borland ikke har aftalt med Microsoft at få installeret vcl50.bpl og vclx50.bpl og nogle af de andre livsvigtige libraries i Windows fra starten. Så ville alle vores exe-filer jo kunne fylde sådan cirka 90% mindre...
Som det sikkert er dig bekendt så er det MFC klasserne der gør at exe fra MS VC++ så små, lige ledes ligger der libraies til Visual Basic. Det er ligeledes et Microsoft produkt.
Borland har forsøgt at få deres BPL filer lagt ind i windows, men ind til videre så uden held.
De står dig jo frit for at kalde MFC klasserne ...
Hmmn .. Måske man skulle lave en konkurencr om hvem der kunne lave den mindste notepad klon ? Er du firsk ? Den skal være 100% magen til ! Alt er tilladt, dog ikke dynamisk linkning ! Men ellers pakning af exe filer og hvad ellers du kan finde på ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.