Avatar billede frossen Nybegynder
26. august 2003 - 13:33 Der er 23 kommentarer og
4 løsninger

Størrelse på filer når man compiler med delphi?

jeg har i lang tid lavet mange "små" programmer i delphi.. men en ting irritere mig.. de kommer altid til at fylde en helvedes masse selv om det kun er få simple ting de laver..
de fylder som standart 300kb + hvad man nu har fyldt i programmet.. de frustere mig utrolig meget.. hvordan får jeg lavet en "lite" exe.. måske en som næsten kun fylder det som sourcen gør..?
der er jo ingen ide i at ha et program der bare er en simpel form med en knap fx. og så fylder det 312kb.

-- jeg vil gerne ha en masse feedback på det her --
-- der er 200 points på spil, jeg deler ud til 1 --
-- eller flere der kan svare.                    --
Avatar billede athlon-pascal Juniormester
26. august 2003 - 13:40 #2
Det giver lidt :-)
Men ellers kan du altid bruge http://upx.sourceforge.net/, men læs lige http://www.jrsoftware.org/striprlc.php#execomp først...
Avatar billede frossen Nybegynder
26. august 2003 - 13:46 #3
det gør jeg lige :)
Avatar billede Slettet bruger
26. august 2003 - 14:20 #4
Hvis programmerne kun skal bruges på computere med delphi kan du få dem til at fylde meget lidt :-)

Project -> Options -> Packages -> Og sæt kryds i "Build with runtime packages".
Avatar billede Slettet bruger
26. august 2003 - 14:30 #5
Grunden til at de fylder så meget er (som hejhej skriver) at Delphi kompilerer sit Runtime Library med ind i filen.
Selvom du kun bruger en enkelt knap så vil hele librariet blive kompileret med ind i din .exe.

Du kan bruge de små tricks beskrevet ovenfor, eller leve med at dine programmer fylder en del.

På den anden side, hvis du laver et godt Delphi program så skal du alligevel lave en installationspakke med Installshield eller Wise Installer, og så fylder dit program pludselig 2mb. Så betyder de ekstra 300kb, som dit program har i overhead, pludselig ikke så meget.

Hvis du vil lave små programmer skal du skifte til MS C++ eller MS C#. C++ benytter sig direkte af Windows dll'erne, og C# programmer bruger .net librariet på din maskine.
Avatar billede frossen Nybegynder
26. august 2003 - 14:33 #6
jeg ville gerne programmere i c++ men desværre er det sådan at vi på htx bruger man delphi :)
Avatar billede frossen Nybegynder
26. august 2003 - 14:36 #7
Project -> Options -> Packages -> Og sæt kryds i "Build with runtime packages".

^^^^ se det var mere i den stil jeg lige ville ha..
men du siger man kun kan køre dem på computere med delphi installeret så ?
Avatar billede Slettet bruger
26. august 2003 - 14:41 #8
Når du slår "Build with runtime packages" fra, så bliver runtime packages ikke kompileret med. Runtime packages indeholder alle dine komponenter (knapper, dialogbokse, ...) så derfor skal du distribuere disse packages med dit program.

Resultatet er derfor det samme, hvis ikke mere, samtidig med at du ikke skal distribuere 1 fil, men mange.
Avatar billede athlon-pascal Juniormester
26. august 2003 - 14:47 #9
Avatar billede Slettet bruger
26. august 2003 - 14:51 #10
Hvis man bruger "Build with runtime packages" skal man have:

vcl70.bpl
rtl70.bpl

i system32 mappen.
Avatar billede Slettet bruger
26. august 2003 - 14:55 #11
Filerne hedder selvfølgelig vcl60, hvis man f.eks har delphi 6 :-)
Avatar billede Slettet bruger
26. august 2003 - 14:56 #12
Avatar billede athlon-pascal Juniormester
26. august 2003 - 14:59 #13
hejhej -> "KOL - Key Objects Library is a set of objects to develop power
(but small) 32 bit Windows GUI applications using Delphi but without VCL.
It is distributed free of charge, with source code.

http://bonanzas.rinet.ru/"
Se min kommentar 14:47:20 ;-)

"StripReloc is a free (GPL license) command line utility that removes the relocation
(".reloc") section from Win32 PE EXE files, reducing their size.
Most compilers/linkers (including Delphi) put a relocation section in EXE files,
but this is actually not necessary since EXEs never get relocated.
Hence, a relocation section only wastes space.

Why not use an EXE compressor?
http://www.jrsoftware.org/striprlc.php"
Se de (mine) første 2 kommentarer i denne tråd ;-)
Avatar billede Slettet bruger
26. august 2003 - 15:00 #14
KOL kan vist få exe filen ned omkring 50 kb.
Avatar billede Slettet bruger
26. august 2003 - 15:01 #15
Sorry :-)
Avatar billede Slettet bruger
26. august 2003 - 15:05 #16
http://www.swissdelphicenter.ch/torry/showcode.php?id=411

Det kan få en exe fil ned på 15 kb :-).. det er bare lidt mere avanceret.
Avatar billede Slettet bruger
26. august 2003 - 15:10 #17
Jeg synes at kunne læse at problemet ligger i Delphis VCL. Vil du have mindre filer skal du undgå Delphis VCL :-)
Avatar billede athlon-pascal Juniormester
26. august 2003 - 15:33 #18
Jeg har nu hentet KOL og MCK fra http://bonanzas.rinet.ru/
Mit første KOL-projekt, med en form og en edit, fylder 24,0 KB som exe :-)
Prøv det, du kan ganske vist kun bruge rigtige Windows-komponenter, men programmerne bliver mindre :-)
Avatar billede athlon-pascal Juniormester
26. august 2003 - 15:43 #19
Angus Johnson bruger i sit SplitJoin (http://www.users.on.net/johnson/splitjoin/) resource-forms i stedet for Delphi-VCL. Måske er det en mulighed, koden følger med så du kan se hvordan han har gjort :-)
Og du kan evt. også bruge hans Resource Hacker til at ændre Resurce-forme (http://www.users.on.net/johnson/resourcehacker/).
Avatar billede lanstorp Nybegynder
26. august 2003 - 16:18 #20
http://upx.sourceforge.net/ - Kan komprimere executables
Avatar billede athlon-pascal Juniormester
26. august 2003 - 16:22 #21
lanstorp -> Se min kommentar 26/08-2003 13:40:05: "Men ellers kan du altid bruge http://upx.sourceforge.net/"...
Avatar billede frossen Nybegynder
26. august 2003 - 16:28 #22
athlon-pascal lav lige et svar.. ellers kan jeg jo ikke give dig points :)
Avatar billede frossen Nybegynder
26. august 2003 - 16:29 #23
samme med dig hejhej og briancaos
Avatar billede Slettet bruger
26. august 2003 - 16:30 #24
Svar :-)
Avatar billede athlon-pascal Juniormester
26. august 2003 - 16:31 #25
Hvad endte det med?
Avatar billede Slettet bruger
26. august 2003 - 16:35 #26
Svaret er vel: Skal man lave små filer skal man undgå VCL men benytte KOL og MCK i stdet.
Avatar billede lanstorp Nybegynder
26. august 2003 - 16:38 #27
>>athlon-pascal, læste vist ikke hele tråden ....
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester