RÉDUIRE LA TAILLE DE VOTRE EXECUTABLE DELPHI

yousky Messages postés 4 Date d'inscription vendredi 26 juillet 2002 Statut Membre Dernière intervention 9 mai 2004 - 26 juil. 2002 à 13:46
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008 - 15 janv. 2008 à 12:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12041-reduire-la-taille-de-votre-executable-delphi

cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
15 janv. 2008 à 12:52
Le paquet VCL??.BPL (vcl50.bpl pour D5, vcl60.bpl pour D6, vcl70.bpl pour D7...) est utilisé par tous les projets. Ce paquet alourdi la taille de l'exe de l'ordre de 370 Ko.

Une fois installé sur les postes de vos clients avec son .FR associé, vous n'aurez plus qu'à distribuer des exe allégés d'autant.

Pour indiquer à Delphi que ce n'est que ce paquet qu'il ne faut pas intégrer à votre exe, vérifiez que votre projet n'est pas en train de tourner, puis allez dans projet / options / paquets. Cochez construire avec les paquets d'exécution. Dans la liste des paquets qui se trouve juste en dessous, retirez tous les noms des paquets sauf le vcl??.bpl(vcl50.bpl pour D5...).

A noter que la taille des paquets + la taille de l'exe compilé, paquets séparés, est supérieure à la taille de l'exe compilé avec code des paquets intégré à l'exe. En effet, losque l'on compile avec le code des paquets intégré à l'exe, il ne met dans l'exe que le code de chaque paquets dont il se sert pour le programme.
Je vous recommande GUI ou simplement programmer avec le TCL/TK ou PHP ou Python ou même le Borland pascal en Runtime il y a des composant gratuit pour faire ça.
May Delphi be with you.
loadspeed Messages postés 8 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 27 septembre 2003
4 sept. 2003 à 20:26
y'aurait psa moyen de generer a partir d'une form , en fait d'interpreter une form avec les api de bas niveaux windows? je pense que ca pt etre un bon challenge et un programme util aux programmeurs delphi
qu'en pensez vous ?
cs_papy45 Messages postés 3 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 18 novembre 2006
31 août 2003 à 21:51
Hugh!

Le moyen radical pour faire une appli "taille de guepe" est de passer directement par les API et non la VCL! Mais on pert tout les avantages de Delphi. Je travaille beaucoup là dessus en ce moment... FOR FUN
Glorkonline Messages postés 41 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 1 janvier 2005
20 juil. 2003 à 13:47
magic56, le programme upx me dit, quand j'essaye de compresser un programme Delphi, que le fichier n'a pas le bon format ... ?
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
27 juin 2003 à 22:48
si on a besoin de compiler des centaines de fois le programme avant de le refiler, ou si le programme est à usage strictement personnel (ce qui est d'ailleurs un des seuls impératifs de la version personnelle d'ailleurs <_< )
alors je crois que OUI ça peut être intéressant (par contre je le savais déjà^^)
loadspeed Messages postés 8 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 27 septembre 2003
2 juin 2003 à 15:39
Le meilleur moyen est de programmer avec des API de bas niveau la on tombe facilement a 22 KO pr un programme avec interface graphique =)
yousky Messages postés 4 Date d'inscription vendredi 26 juillet 2002 Statut Membre Dernière intervention 9 mai 2004
26 juil. 2002 à 13:46
Si TD32 n'est pas coché, l'executable généré ne dispose donc pas des informations de débuguage utilisées par d'autres debuger que celui de Delphi.
Deplus le fait de ne pas inclure c'est infos n'influence en rien l'execution du programme, il est beaucoup plus petit, tout simplement.

Ciao ciao
Yousky
magic56 Messages postés 11 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 3 juillet 2004
15 juil. 2002 à 23:37
Le moyen le plus simple c'est d'utiliser un petit programme qui permet de compresser l'exe. Le plus connu est upx que vous pouvez trouver sur le site suivant : http://upx.sourceforge.net/

@+
Magic
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
11 juil. 2002 à 00:04
Pourquoi la supprimer ?
Elle à le mérite de poser le problème, J'en suis aussi passé par là car l'option par défaut n'inclu pas les pacquets dans l'exe et j'ai cherché un moment avant de comprendre pourquoi mon appli fonctionnait seulement sur les postes contenant delphi.

@+

Nono.
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
10 juil. 2002 à 23:25
oki oki :)
donc vau mieu ke je supprime cette source
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
10 juil. 2002 à 22:38
Car si l'executable est petit, c'est parce que les paquets ne sont pas dedans. Ils sont placés dans WINDOWSSYSTEM au moment de l'installation de delphi. Essaye de lancer ton appli de 15Ko sur un poste ou delphi n'a jamais été installé.
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
10 juil. 2002 à 10:30
ah ok je vois...
mais alors pk tu as di au début ke l'appli ne fonctionera que sur les postes ou delphi est installé ???
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
10 juil. 2002 à 00:00
Non, 15Ko c'est déjà sans les paquets. Il faut comprende l'option dans le sens inverse : quand elle est cochée, l'appli utilise les paquets donc ils ne sont pas dans l'exe et donc l'exe est petit. Quand l'option est décochée, les paquets d'exécution ne sont pas utilisés et donc sont inclus dans le fichier exe qui deviens gros. Je reconnais que m'on pourrait penser le contraire vu le texte de la case.

Quand aux options de TD32, le fichier est beaucoup plus gros car il ajoute aussi tous les symboles des unités incluses. Ceci explique la taille de l'exe. Note que sans les paquets et avec les options de débogage, l'exe peut devenir très gros ( plusieurs Mo ).

J'espère avoir éclairé un peu ta lanterne...

Nono.
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
9 juil. 2002 à 23:40
ouais mais kan même , moi je travaillai toujours avec des fichiers de 300 ko minumum, et le faite de décocher cette options(ki ne sert k'a un debugger externe), le fai passer a 15 ko,... donc si en plus on règle les packages dont tu parles, l'appli sera minuscule ! :)
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
9 juil. 2002 à 23:33
arf, g pas tous compris ;)
en faite, c TD32 ke g changé pour faire ca,, et d'après ce ke tu di, le faite de décocher cette case ne doit pas influencé le progs
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
9 juil. 2002 à 23:23
Oui c'est vrai mais alors l'application ne fonctionnera QUE sur les postes ou Delphi est installé. Mais ce n'est pas la raison de ces options, c'est en fait l'option "Contruire avec les paquets d'exécution" de l'onglet "Paquets" qui change la taille du programme.

Les options que tu cites changent la taille de l'exécutable mais ne changent pas le fait que l'application soit indépendantes ou pas :
- Option Console : doit être cochée pour une application en mode Texte, c'est un cas particulier d'application
- Informations de débogage TD32 : Ajoute dans l'exe les informations utiles pour que TD32 puisse débuguer le programme avec l'affichage du source en clair. Y compris l'affichage des variables. Cette option ne doit jamais être cochée tant que TD32 n'est pas utilisé. Ce n'est pas utile pour le débogage intégré.
- Symboles de débogage distant : Complète encore plus les infos sur les variables.

Il est donc vrai que l'ajout des symboles ajoute de la taille au source, mais ce n'est pas ce qui ajoute le plus. Avec l'option des paquet, une appli simple passe de 80Ko à 800Ko mais elle est indépendante de l'installation de Delphi.

Nono
Rejoignez-nous