Sign in Join
Wiki copytemporary

Indy with Lazarus/fr: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Notes de traduction E-ric
22
33- Les indications chronologiques originales étant relatives, leur validité actuelle l'est tout autant.
44- La page originale contient des avis personnels qui ont été retranscrits.
55- Aucun contrôle lié aux versions des bibliothèques n'a été fait, il est donc possible que les modes opératoires des installations aient changé.
66
77## Indy pour Lazarus
88
99Une nouvelle tenative de conversion d'Indy a été entreprise par l'équipe du noyau d'Indy. Marco van de Voort, développeur FPC, travaille avec le coeur d'Indy pour que FPC/Lazarus fonctionne pleinement avec Indy. En particulier, JP Mugaas d'Indy a fait pas mal de bon travail pour porter Indy10 vers FPC. La plupart du backend unixrtl est de son fait.
1010
1111Actuellement, Indy10 fonctionne presque complètement et l'utilisabilité pour l'utilisateur final a été améliorée. Seuls des sujets tels que OpenSSL et la compression pourraient demander des connaissances supplémetaires. Le suport 64-bit n'est pas entièrement validé.
1212
1313(Avis d'un contributeur) Conseil: Je ne suis pas très intéressé(e) par le support de la partie Kylix d'Indy. (Tout ce qui utilise l'unité libc). Je l'ai portée uniquement comme une étape vers une RTL native d'Unix utilisant les apps Indy.
1414
1515### Exigences
1616
1717Actuellement, FPC 2.0.4 (NdT: aucun vérification faite pour les versions 3.x) est vraiment près d'être capable d'utiliser Indy dans tous ses aspects, excepté pour le bug de serveur sur FreeBSD/Mac OS X (qui nécessite 2.1.1)
1818
1919Puisque Indy10 fonctionne maintenant sur toutes les cibles majeures, nous nous concentrons sur cette version. Alors que la conversion vers Indy9 semble plus simple, il faut garder à l'esprit qu'elle ne tourne que sous Win32 (et pourrait être théoriquement portée sur Linux/x86).
2020
2121Ainsi nous recommendons aux gens de travailler avec Indy10 autant que possible.
2222
2323(Pour Indy9, vous pourriez avoir besoin de retirer la surcharge de la méthode tmemorystream.setsize (Marcov: ???) pour que les composants Telnet fonctionnent, mais Indy9 n'a pas été testé depuis longtemps)
2424
2525Le portage is honnêtement stable, et JP Mugaas a fait beaucoup pour améliorer la qualité de la version, un ensemble de makefiles compris.
2626
2727### Téléchargements / Liens
2828
2929Instantanés (snapshots) actuels sont là:
3030
3131- Indy9:
3232 - [Indy9, incluant des démos](http://www.stack.nl/~marcov/indy/indy9.zip) et
3333- Indy10:
3434 - Démos Indy10 converties : [démos Indy10 converties](http://www.stack.nl/~marcov/demo10.zip)
3535 - [Indy 10 website](http://www.indyproject.org) Récemment (NdT: référence chronologique manquante) cette archive commençait à intégrer cette démo aussi.
3636
3737### Ce qui marche, ce qui ne marche pas
3838
3939**Indy9**:
4040
4141- Devrait fonctionner largement sur Windows. Beaucoup de démos sont portées.
4242- Pas ou peu sur Linux. Aucun espoir sur les cibles non Linuxw/x86 (non Kylix).
4343
4444**Indy10**:
4545
4646- Windows et Unix: Les clients fonctionnent et les serveurs devraient bien marcher en principe.
4747- Le principal travail pour la RTL Unix native est fait. Les serveurs et clients semblent fonctionner avec FreeBSD et OS X.
4848
4949Tous: les versions sécurisées ne sont pas encore testées.
5050
5151### Plans à court terme
5252
5353- Convertir les démos pour démontrer/tester le fonctionnement.
5454- Fixations des bugs à réinjecter dans le [RCS](https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions) FPC ou Indy.
5555
5656### Problèmes
5757
5858- Indy9 et Indy10 s'excluent mutuellement, ce qui provoque des problèmes de déploiement, même la valeur par défaut est un problème
5959 - Indy9 est plus utilisé et éprouvé dans l'industrie.
6060 - Indy10 est plus portable et à meilleur long terme. Cependant, l'assimilation semble faible et il n'y a plus beaucoup de mouvement à Indy non plus.
6161- Comment déployer ? Parties revenant à Lazarus et celle revenant à FPC.
6262- Beaucoup de paquets et de démos ont des chemins d'accès dedans. Comment les fixer centralement de façon à ce qu'un utilisateur "profane" puisse les construire.
6363- Problèmes liés à Lazarus:
6464 - Problèmes de transaprence des icônes.
6565 - La palette de composants ne défile pas, si vous posez beaucoup de composants dans un onglet, ils ne sont pas sélectionnables. **Contournement implémenté** JP Mugaas les a séparés en clients Indy A-M et N-Z etc. De plus, pendant ce temps, Lazarus est passé à deux rangées de composants par onglet.
6666- Les démos Indy (et particulièrement celles d'Indy10) ne sont pas adaptées pour un usage multi-plateforme. Leur installation est terriblement liée à Windows, avec des espaces dans les chemins d'accès, des répertoires profondément imbriqués (deep nested dirs) et des charges inutiles (C# code). Un petit ensemble de démonstrations devra être créé.
6767
6868### Bugs
6969
7070- Les serveurs Indy10 ne fonctionnaient pas avant du fait d'une exception survenant durant le démarrage, ce qui arrêtait tout. Vous devez avoir FPC 2.2(.0) ou postérieur pour corriger ceci (problème pthread_kill). Cela affecte sans doute aussi Mac OS X.
7171
7272- Pendant la conversion de la démo, la propriété de liaison est souvent mal convertie. Cela peut amener à des erreurs étranges, spécialement parce Indy semble lier le même port utilisant ensemble IPV4 et IPV6 en même temps.
7373
7474Ubuntu 10.04 + Lazarus 0.9.28 + Indy 10(Server Component) -\> lancé, ne fait rien à part se planter.
7575
7676Solution (bruce0829@yahoo.com.tw collecter et organiser les données):
7777
78-(1).Menu principal de Lazarus -\> Projet -\> Options du projet -\> Options du compilateur -\> Options personnalisées, ajouter le paramètre "-dUseCThreads". </br>(2).Forcer le IdTCPServer à travailler en mode Id_IPV4.
78+(1).Menu principal de Lazarus -\> Projet -\> Options du projet -\> Options du compilateur -\> Options personnalisées, ajouter le paramètre "-dUseCThreads". (2).Forcer le IdTCPServer à travailler en mode Id_IPV4.
7979
8080``` pascal
8181procedure TForm1.FormActivate(Sender: TObject);
8282var
8383 Binding: TIdSocketHandle;
8484begin
8585 //uses idGlobal
8686 //explicitly adding a Binding object prevents TIdTCPServer
8787 //from creating its own default IPv4 and IPv6 Binding objects
8888 //on the same listening IP/Port pair...
8989 Binding := IdTCPServer1.Bindings.Add;
9090 Binding.IPVersion := Id_IPv4; //optional: forces the Binding to work in Id_IPV4 mode.
9191 Binding.IP := '127.0.0.1';
9292 Binding.Port := 6501; //customization
9393 IdTCPServer1.Active := True;
9494end;
9595```
9696
9797(3)Utilise TIdSync pour contrôler votre interface utilisateur dans l'événement IdTCPServer's OnExecute().
9898
9999### Comment installer
100100
101101Matthijs: Ce n'est donc pas encore parfait, mais vous voulez l'essayer. Voici comment l'installer dans Lazarus.
102102
103103- Ouvrir et compiler indysystemlaz.lpk
104104- Ouvrir et compiler indycorelaz.lpk
105105- Ouvrir et compiler indyprotocolslaz.lpk
106106- Ouvrir et compiler et installer dclindycorelaz.lpk
107107- Ouvrir et compiler et installer dclindyprotocolslaz.lpk
108108
109109Enuite reconstruire Lazarus et vous verrez une palette de 15 onglets (Ndt: traduction non sûre) avec les composants Indy.
110110
111111### Comment installer sur Debian/Ubuntu
112112
113113- \# cd indy-10.2.0.1/fpc
114114- \# chmod +x debian/rules
115115- \# touch README
116116- \# sudo apt-get install fakeroot
117117- \# dpkg-buildpackage -rfakeroot -uc
118118- \# cd ..
119119- \# sudo dpkg -i *.deb
120120- installer le paquet indylaz.lpk dans lazarus
121121
122122### Comment installer \[2\]
123123
124124Si vous ne pouvez pas installer Indy pour Lazarus avec les conseils ci-dessus, vous pouvez essayer ceci ...
125125
126126De [Yahoo! Brazil, Lazarus Group](http://br.groups.yahoo.com/group/lazarus-brasil/) (Utilisateur Everaldo)
127127
128128Version installée sur Lazarus 0.9.24 utilisant les composants indy-10.2.0.1.
129129
130130- Dézipper le composant depuis le fichier tar.gz (cela doit être ce fichier, le fichier zip ne fonctionne pas) dans le répertoire \$(LazarusDir)\components;
131131- Aller dans le répertoire \$(LazarusDir)\components\indy-10.2.0.1\\ pour créer dedans un répertoire nommé "saved";
132132- Copier le contenu du répertoire \$(LazarusDir)\components\indy-10.2.0.1\lazarus\\ vers le répertoire créé ci-dessus;
133133- Copier le contenu du répertoire \$(LazarusDir)\components\indy-10.2.0.1\fpc\\ vers le répertoire \$(LazarusDir)\components\indy-10.2.0.1\lazarus, et écraser tous les fichiers, ok;
134134- Prendre le contenu du répertoire "saved" et le copier dans \$(LazarusDir)\components\indy-10.2.0.1\lazarus, vous pouvez alors supprimer le contenu du répertorie "saved";
135135- Installer le paquet laz.lpk (disponible dans \$(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) de manière habituelle.
136136
137137Sur LINUX le chemin d'accès est : /usr/lib/lazarus/components/indy-10.2.0.1/
138138
139139### Comment installer \[3\] Windows et Debian Linux, Indy 10.5.8.0 et versions postérieures
140140
141141- Nécessite que Lazarus (et FPC) soit fonctionnel pour ceci.
142142- Télécharger depuis [1](http://www.indyproject.org/Sockets/Download/DevSnapshot.EN.aspx) ou depuis le site Web alternatif pour la version mise à jour et courante: [2](http://indy.fulgan.com/).
143143- Décompresser dans un répertoire.
144144- Copier les *.pas, *.lrs and *.inc des sous-répertoires \Lib\System, \Lib\Core et \Lib\Protocols dans un nouveau répertoire de votre choix.
145145- Copier le indylaz.lpk dans le répertoire \Lib dans le répertoire que vous avez créé ci-dessus.
146146- A partir de Lazarus, faire Paquet -\> Ouvrir un fichier de paquet (.lpk)... pour ouvrir le indylaz.lpk.
147147- Dans la boîte de dialogue Options du paquet, ajouter le chemin d'accès au répertoire que vous avez créé ci-dessus dans le champ "Unit".
148148- Compiler puis installer (ce qui reconstruira Lazarus). EDIT: Actuellement, à cause d'un bug dans FPC, vous devez recompiler le paquet Indy DEUX FOIS avant de l'installer.
149149
150150En vue d'écrire et compiler des applications Indy10, vous avez besoin de mettre le chemin d'accès vers le répertoire d'Indy dans champ "Autres sources" de chaque projet que vous écrivez. Vous trouverez "Autres sources" sous Options du projet ... -\> Options du compilateur -\> Chemins.
151151
152152### Comment installer (confirmé) sur Windows - Indy 10.2.03
153153
154154/* Comment installer \[3\] Windows et Debian Linux, Indy 10.5.8.0 et versions postérieures */ pour beaucoup d'utilisateurs, je suis sûr que l'information donnée ci-dessus ne marchera pas, ou sera quelques peu confus étant donné les différences entre les versions et les explications inconsistantes.
155155
156156
157157Le site web vous indique de télécharger la dernière version depuis la page des instantanés (snapshots).
158158
159159Ce wiki vous dit de copier beaucoup de fichiers dans des répertoires.
160160
161161Pour moi(NdT: Qui?), aucun n'a fonctionné et cela a fini par gâcher mes installations de Lazarus.
162162
1631631. Premièrement, la page à partir de laquelle je récupérerais est [ici](http://www.indyproject.org/Sockets/fpc/index.EN.aspx). Les autres sites que j'ai essayé ont des problèmes avec les fichiers dans les archives.
1641642. Quand vous ouvrez l'archive ci-dessus, vous verrez qu'il y a deux répertoires: "fpc" et "lazarus".
165165 1. Vous pouvez copier le contenu de "fpc" dans : LAZARUS_DIR\fpc\2.6.0\source\packages\indylaz si vous voulez des choses propres et nettes.
166166 2. Le répertoire "Lazarus", vous copier dans LAZARUS_DIR\components\indylaz.
167167 3. Avec ces deux actions, assurez vous qu'il n'y a pas de sous-répertoire dans les répertoires donnés. i.e. LAZARUS_DIR\components\indylaz\lazarus\\
1681683. Aller dans Lazarus puis sur "Paquet" -\> "Ouvrir un fichier de paquet..." et sélectionner le "indylaz.lpk" dans le répertoire LAZARUS_DIR\components\indylaz.
1691694. Une fois que le paquet se charge dans votre projet, cliquer sur le bouton "Options", qui ressemble à un paquet cadeau avec un pignon dessus.
1701705. Cliquer les "Options du compilateur" à gauche puis cliquer sur le bouton "..." à côté du champ "Autres fichiers unités (-Fu)"
171171
172172Sélectionner les répertoires "fpc" puis "Lazarus" créés au dessus et cliquer Ok. Lazare va trier le chemin relatif pour vous. Ne pas le changer.
173173
1741741. Cliquez sur OK et compiler puis déverser votre bile de colère vers la personne qui vous a mal orienté avec les instructions précédentes, inutiles.
175175
176176### Problème sur Windows 64 bits
177177
178178Sur Windows 64-bit, la compilation de l'archive mentionnée au-dessus ne fonctionnera pas. Ceci peut être corrigé en éditant IdAntiFreeze, remplaçant :
179179
180180``` pascal
181181 type
182182 TIdAntiFreeze = class(TIdAntiFreezeBase)
183183 public
184184 procedure Process; override;
185185 end;
186186```
187187
188188par:
189189
190190``` pascal
191191 type
192192 TIdAntiFreeze = class(TIdAntiFreezeBase)
193193 public
194194 {$IFDEF WIN32}
195195 procedure Process; override;
196196 {$ENDIF}
197197 end;
198198```
199199
200200### Problème de fuite de mémoire
201201
202202Si vous avez des fuites de mémoire dans votre application Indy, c'est parce que vous utilisez les unités **IdStack** ou **IdThread**, ou des composants dépendant d'eux. C'est voulu dans la conception, dans Delphi cela est résolu en enregistrant de telles fuites avec le gestionnaire de mémoire. De telles fonctionnalités ne sont pas encore disponibles dans Free Pascal, mais heureusement vous pouvez la corriger de manière assez simple. Dans le fichier **IdCompilerDefines.inc**, vous devriez remplacer cette ligne :
203203
204204``` pascal
205205 {.$DEFINE FREE_ON_FINAL}
206206```
207207
208208par celle-ci:
209209
210210``` pascal
211211 {$DEFINE FREE_ON_FINAL}
212212```
213213
214214et recompiler Lazarus et Indy. Les fuites sont parties mais vous devriez lire ces avertissements liés au define dans les unités **IdStack.pas** et **IdThread.pas** pour éviter des potentielles fautes de protection générale. Voici le [fil de discussion de forum](https://forum.lazarus.freepascal.org/index.php/topic,39257.msg268869.html#msg268869) où la correction était mentionnée par l'un des développeurs Indy.
215215
216216## Liens externes
217217
218218- [Le site web officiel du projet Indy](http://www.indyproject.org)
219219
220220---
221221*From the Free Pascal wiki, page "Indy with Lazarus/fr", as it stood on 2020-04-29 after a change by E-ric, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history