Sign in Join
Wiki copytemporary

Indy with Lazarus/fr

한국어 · Deutsch · English · Español · Français · 日本語

Notes de traduction E-ric

Indy pour Lazarus

Une 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.

Actuellement, 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é.

(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.

Exigences

Actuellement, 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)

Puisque 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).

Ainsi nous recommendons aux gens de travailler avec Indy10 autant que possible.

(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)

Le portage is honnêtement stable, et JP Mugaas a fait beaucoup pour améliorer la qualité de la version, un ensemble de makefiles compris.

Téléchargements / Liens

Instantanés (snapshots) actuels sont là:

Ce qui marche, ce qui ne marche pas

Indy9:

Indy10:

Tous: les versions sécurisées ne sont pas encore testées.

Plans à court terme

Problèmes

Bugs

Ubuntu 10.04 + Lazarus 0.9.28 + Indy 10(Server Component) -> lancé, ne fait rien à part se planter.

Solution (bruce0829@yahoo.com.tw collecter et organiser les données):

(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.

pascal
procedure TForm1.FormActivate(Sender: TObject);
var
  Binding: TIdSocketHandle;
begin 
  //uses idGlobal
  //explicitly adding a Binding object prevents TIdTCPServer
  //from creating its own default IPv4 and IPv6 Binding objects
  //on the same listening IP/Port pair...
  Binding := IdTCPServer1.Bindings.Add;
  Binding.IPVersion := Id_IPv4; //optional: forces the Binding to work in Id_IPV4 mode.
  Binding.IP := '127.0.0.1';
  Binding.Port := 6501; //customization 
  IdTCPServer1.Active := True;  
end;

(3)Utilise TIdSync pour contrôler votre interface utilisateur dans l'événement IdTCPServer's OnExecute().

Comment installer

Matthijs: Ce n'est donc pas encore parfait, mais vous voulez l'essayer. Voici comment l'installer dans Lazarus.

Enuite reconstruire Lazarus et vous verrez une palette de 15 onglets (Ndt: traduction non sûre) avec les composants Indy.

Comment installer sur Debian/Ubuntu

Comment installer [2]

Si vous ne pouvez pas installer Indy pour Lazarus avec les conseils ci-dessus, vous pouvez essayer ceci ...

De Yahoo! Brazil, Lazarus Group (Utilisateur Everaldo)

Version installée sur Lazarus 0.9.24 utilisant les composants indy-10.2.0.1.

Sur LINUX le chemin d'accès est : /usr/lib/lazarus/components/indy-10.2.0.1/

Comment installer [3] Windows et Debian Linux, Indy 10.5.8.0 et versions postérieures

En 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.

Comment installer (confirmé) sur Windows - Indy 10.2.03

/* 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.

Le site web vous indique de télécharger la dernière version depuis la page des instantanés (snapshots).

Ce wiki vous dit de copier beaucoup de fichiers dans des répertoires.

Pour moi(NdT: Qui?), aucun n'a fonctionné et cela a fini par gâcher mes installations de Lazarus.

  1. Premièrement, la page à partir de laquelle je récupérerais est ici. Les autres sites que j'ai essayé ont des problèmes avec les fichiers dans les archives.
  2. Quand vous ouvrez l'archive ci-dessus, vous verrez qu'il y a deux répertoires: "fpc" et "lazarus".
    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.
    2. Le répertoire "Lazarus", vous copier dans LAZARUS_DIR\components\indylaz.
    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\
  3. 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.
  4. Une fois que le paquet se charge dans votre projet, cliquer sur le bouton "Options", qui ressemble à un paquet cadeau avec un pignon dessus.
  5. Cliquer les "Options du compilateur" à gauche puis cliquer sur le bouton "..." à côté du champ "Autres fichiers unités (-Fu)"

Sé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.

  1. 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.

Problème sur Windows 64 bits

Sur Windows 64-bit, la compilation de l'archive mentionnée au-dessus ne fonctionnera pas. Ceci peut être corrigé en éditant IdAntiFreeze, remplaçant :

pascal
 type
   TIdAntiFreeze = class(TIdAntiFreezeBase)
   public
     procedure Process; override;
   end;

par:

pascal
 type
   TIdAntiFreeze = class(TIdAntiFreezeBase)
   public
     {$IFDEF WIN32}
     procedure Process; override;
     {$ENDIF}
   end;

Problème de fuite de mémoire

Si 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 :

pascal
 {.$DEFINE FREE_ON_FINAL}

par celle-ci:

pascal
 {$DEFINE FREE_ON_FINAL}

et 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 où la correction était mentionnée par l'un des développeurs Indy.

Liens externes


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.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.