IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Installation et utilisation des composants Indy sous Ubuntu [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Par défaut Installation et utilisation des composants Indy sous Ubuntu
    Bonjour à tous et merci pour les nombreux conseils donnés sur ce forum et le site,

    Je cherche désespérément à installer les composants Indy10 sur un lazarus 1.2.6, et malgré les différents et nombreux posts et tutos de droite et de gauche, impossible d'utiliser les serveurs Indy.

    Explication du problème:

    Utilisation du paquet Indy-10.2.0.3.tar.gz
    fpc : 2.6.4
    lazarus : 1.2.6
    OS Ubuntu 14.04

    Sans rien changer au paquet, celui-ci se compile et s'installe sans erreurs (enfin pas de msg d'erreur). Lazarus se relance, j'ai bien mes composants Indy dans le VCL. J'ouvre un projet contenant un composant serveur UDP sur une fiche, tout se passe bien. Si je sélectionne le composant sur la fiche, j'ai une violation d'accès avec un message vide à l'écran. Impossible de fermer le message autrement que par un clic droit-> Fermer la fenêtre. A ce moment Lazarus se ferme en mettant un autre message (idem vide). Puis pus rien.

    Test ouverture d'un nouveau projet, fiche vide, je place un composant serveur sur la fiche, l'erreur se reproduit.

    Cette erreur est reproductible malgré toutes mes tentatives d'installation du paquet par différents procédés (ceux du forum inclus). J'utilise également CodeTyphon, et je me suis aperçu que le problème est identique avec les Indy installés par défaut.

    PRÉCISION : Le phénomène ne se produit que sur les composants serveurs. Sous CodeTyphon: les autres serveurs, mis à part lnet, font de même. Les clients ont l'air de fonctionner.


    Lancement de startlazarus depuis le terminal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    alain@alain-MS-7376:~$ startlazarus 
     is a file
    TLazarusManager.Run starting /home/alain/.lazarus/bin/lazarus ...
    TMainIDE.ParseCmdLineOptions:
      PrimaryConfigPath="/home/alain/.lazarus"
      SecondaryConfigPath="/etc/lazarus"
    TSourceEditorSharedValues.GetMainLinkScanner CodeBuffer=nil
    TSourceEditorSharedValues.GetMainLinkScanner not a pascal source: unit1.pas
    AddComponent TIdUDPServer Parent=Form1:TForm1 36,37,0,0
    Parent is 'Form1:TForm1'
    TMainIDE.OnPropHookPersistentAdded A IdUDPServer1:TIdUDPServer
    TPkgManager.AddUnitDependenciesForComponentClasses Adding Project Dependency project1 -> indylaz
    TPkgManager.AddUnitDependenciesForComponentClasses Extending Uses unit1.pas IdUDPServer
    [TEventsCodeTool.CompleteComponent]  CurComponent=IdUDPServer1:TIdUDPServer
    TApplication.HandleException Access violation
      Stack trace:
      $00000000005225A8
      $000000000145EA2D line 147 of IdDsnPropEdBinding.pas
      $000000000145E845 line 136 of IdCoreDsnRegister.pas
      $00000000009CF316 line 2609 of propedits.pp
      $00000000009D0875 line 2943 of propedits.pp
      $00000000009B9584 line 2717 of objectinspector.pp
      $00000000009BA59C line 2823 of objectinspector.pp
      $00000000009BAACB line 2867 of objectinspector.pp
      $00000000006FD8F5 line 126 of include/customcontrol.inc
      $00000000006D6CA3 line 4762 of include/wincontrol.inc
      $00000000006DD5E2 line 6636 of include/wincontrol.inc
      $00000000006FD79D line 106 of include/customcontrol.inc
      $00000000004329F1
      $00000000006D92DD line 5326 of include/wincontrol.inc
      $0000000000812A48 line 112 of lclmessageglue.pas
      $00000000007B4803 line 3614 of gtk2/gtk2proc.inc
      $00000000007C53AE line 26 of gtk2/gtk2callback.inc
    [TMainIDE.Destroy] A 
    WARNING: TLCLComponent.Destroy with LCLRefCount>0. Hint: Maybe the component is processing an event?
    [TJITComponentList.DestroyJITComponent] ERROR destroying component Error: Unknown Run-Time error : 210
      Stack trace:
      $00000000010F9B2A line 1740 of editbtn.pas
      $00000000009C2E60 line 4184 of objectinspector.pp
      $00000000009DC5D6 line 6141 of propedits.pp
      $00000000009DC7DF line 6185 of propedits.pp
      $000000000052EC2C
      $00000000006F9EB5 line 4836 of include/control.inc
      $00000000006DCE76 line 6466 of include/wincontrol.inc
      $00000000006FD5BD line 54 of include/customcontrol.inc
      $000000000046C32D line 265 of include/scrollingwincontrol.inc
      $000000000046DC21 line 207 of include/customform.inc
      $00000000004324CA
      $0000000000AC3790 line 715 of ../designer/jitforms.pp
      $00000000004324CA
      $00000000004324CA
      $00000000004A4958 line 1607 of main.pp
      $00000000004324CA
      $0000000000468191 line 1792 of forms.pp
    TCustomFormEditor.JITListException List.CurReadStreamClass=nil nil
    [TMainIDE.Destroy] A 
    TApplication.HandleException: there was another exception during showing the first exception
      Stack trace:
      $00000000004DB54F line 10355 of main.pp
      $0000000000D1DDD7 line 129 of transfermacros.pp
      $0000000000A39021 line 3942 of compileroptions.pp
      $0000000000A357DE line 3693 of compileroptions.pp
      $0000000000A9A623 line 4151 of ../packager/packagedefs.pas
      $0000000000A35ACD line 3711 of compileroptions.pp
      $0000000000A90B91 line 2673 of ../packager/packagedefs.pas
      $0000000000A90250 line 2573 of ../packager/packagedefs.pas
      $00000000004324CA
      $0000000000B6D72C line 743 of ../packager/packagesystem.pas
      $0000000000B6D63F line 730 of ../packager/packagesystem.pas
      $00000000004324CA
      $0000000000B9DC4D line 1646 of ../packager/pkgmanager.pas
      $00000000004324CA
      $00000000004A499E line 1618 of main.pp
      $000000000052ED21
      $00000000004324CA
    Runtime error 210 at $000000000042482D
      $000000000042482D
      $000000000046DD4B line 239 of include/customform.inc
      $000000000052EC2C
      $00000000004324CA
      $00000000004324CA
      $00000000004A4B88 line 1653 of main.pp
     
    alain@alain-MS-7376:~$
    Voilà, si quelqu'un de plus avancé que moi peu me donner un coup de main, j'aimerais bien comprendre et surtout régler mon problèmes car je dois 'travailler' sur un fichier contenant ce composant afin de test et je n'avance pas...

    Avec mes remerciements les plus sincères.

  2. #2
    Rédacteur

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par tuxy Voir le message
    Bonjour à tous et merci pour les nombreux conseils donnés sur ce forum et le site,

    Je cherche désespérément à installer les composants Indy10 sur un lazarus 1.2.6, et malgré les différents et nombreux posts et tutos de droite et de gauche, impossible d'utiliser les serveurs Indy.

    Explication du problème:

    Utilisation du paquet Indy-10.2.0.3.tar.gz
    fpc : 2.6.4
    lazarus : 1.2.6
    OS Ubuntu 14.04
    Bonjour,

    Pour le moment, ma réponse va être incomplète, car je n'ai pas testé (j'ai une Mint17 sur un Pc : je verrai plus tard).
    J'ai lu sur le wiki en anglais que Ubuntu 10.04 + Lazarus 0.9.28 + Indy 10(Composant serveur) se lançait mais provoquait un crash. Je ne sais pas si une correction a été apportée, mais une solution provisoire serait celle-ci :
    1. Dans Lazarus Projet -> Options du compilateur -> Autre page , ajoute le paramètre "-dUseCThreads"
    2. Force IdTCPServer à travailler en mode Id_IPV4 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    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 ton affichage dans le gestionnaire d'événement OnExecute() de IdTCPServere.

    Je répète que je n'ai pas pu tester, mais tiens-nous au courant...

    Bon courage,

    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 212
    Par défaut
    hello,
    je ne sais pas quels sont tous les composants Indy que tu veux utiliser, mais si c'est pour faire un client/serveur TCP UDP tu peux utiliser la bibliothèque lnet (Lightweight Networking Library) qui fonctionne sous linux mais aussi sous free-bsd et windows. Elle dispose de composants visuels. Elle est disponible ici.

    1 - Télécharger la bibliothèque
    2 - Installer les paquetages lnetbase (compiler) et lnetvisual (compiler et installer)
    3 - Pour un exemple client/serveur ouvrir le projet exemple examples/visual/tcpudp
    4 - Construire le projet
    Et voici ce que cela donne sous Ubuntu 14.04 - Lazarus 1.2.6 :
    Nom : Capture_TestLnetUbuntu.png
Affichages : 1130
Taille : 40,1 Ko

    Cliquer sur le bouton host pour se mettre en serveur.

    Indy c'est un peu une usine à gaz et donc plus difficile à faire fonctionner sous tous les O.S. Alors si on peut trouver plus simple pour ses besoins autant en profiter. Il y a aussi synapse qui marche pas mal sous linux.

    Ami calmant, J.P

  4. #4
    Membre chevronné
    Homme Profil pro
    web a11y
    Inscrit en
    Avril 2014
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : web a11y
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 191
    Par défaut
    @jurassic pork : Heu, le lien semble vide…
    Tu parlais bien de celle-ci : https://lnet.wordpress.com/ ?

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 212
    Par défaut
    hello,
    Merci à toi Stellar7, j'avais effectivement oublié de mettre le lien, maintenant c'est rectifié.

    Ami calmant, J.P

  6. #6
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Par défaut
    Merci de vos réponses.

    Pour le paramètre -dUseCThreads il se trouve bien dans les options du compilateur, par contre effectivement il me reste à tester l'IPV4, bien que le logiciel auquel je fais référence le propose déjà, mais je vais vérifier de nouveau. Merci pour le code que je vais étudier.

    Pour répondre à Jurassic, oui le composant lnet est installé, c'est d'ailleurs avec celui-ci que j'ai fait mes premiers test sur le serveur UDP mais, bien que je reçoive les datagrams, ceux-ci sont incomplet. Mon but était d'étudier un code fourni qui fonctionne mais avec Indy, bref... impossible donc de le faire fonctionner...

    Personnellement je ne vois aucun inconvénient à utiliser autre chose qu'Indy que je connais mal et qui me parait effectivement être une gazinière !!!

    Je poursuis mes recherches et reviendrais vers vous pour la suite, un grand merci en tout cas de bien vouloir me donner un petit coup de main.

    Amitiés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2014, 11h56
  2. Installation des composants TSynEdit sous Delphi 2007
    Par Zaki_SDwin dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/12/2008, 13h12
  3. Utilisation des composants Indy
    Par pduceux dans le forum Delphi
    Réponses: 1
    Dernier message: 11/05/2007, 20h45
  4. Compilation des composants Indy 10
    Par rconty dans le forum C++Builder
    Réponses: 23
    Dernier message: 13/07/2005, 15h48
  5. utilisation des composants d'aide à la décision
    Par karim2005 dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/07/2005, 13h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo