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 :

Débuts avec Lazarus sous Linux [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut Débuts avec Lazarus sous Linux
    Bonjour,

    La réponse est probablement simplissime :
    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
    unit Unit1;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Buttons;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm)
        SpeedButton1: TSpeedButton;
      private
        { private declarations }
      public
        { public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.lfm}
     
    end.
    Je vais dans l'évennement "OnClick" (ou je fais un double click sur le composant) pour ajouter une procédure eu j'ai :
    L'éditeur de composants de la classe "TDefaultComponentEditor" a provoqué l'erreur:
    "Incapable de trouver la méthode. Please fix the error shown in the message window, which is normally below the source editor."
    Le code de "System" s'ouvre alors sur la ligne :
    Idem avec un TButton

    Il me manque quoi ?
    Pierre GIRARD

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,

    De mémoire, j'avais eu "ce gag" après une mise à jour d'une version déjà installée de Lazarus. Des chemins vers les sources FPC étaient incorrects.

    Je commencerais donc par là :
    • vérifier la cohérence de l'accès aux sources (FPC)
    • vérifier l'éventuelle présence d'un ancienne version de Lazarus


    Je crois me rappeler aussi que les anciennes version de Lazarus "avaient" ce bug :0.9.28
    Philippe.

  3. #3
    Membre averti
    Profil pro
    au repos
    Inscrit en
    Février 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2013
    Messages : 156
    Points : 331
    Points
    331
    Par défaut
    Bonjour,
    ça ressemble à un problème de configuration. Alors quelques questions s'imposent :

    1 - tu es sous quel linux ? Ubuntu , Fedora, OpenSuse etc ... ? Quelle version ? 32 bits ou 64 bits ?

    2 - Comment as-tu installé Lazarus ? par un gestionnaire de paquet ? A la mano ? En recompilant les sources ?
    3 - Quelle version de Lazarus est-ce ? 0.9.30 ? 1.0 ? 1.1 ?
    Sinon il faut vérifier dans la configuration si tous les chemins sont bons.

    Amicalement, Nullosse

    Oops Ph.B il semble que l'on ai écrit en même temps

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par Nullosse Voir le message
    Oops Ph.B il semble que l'on ai écrit en même temps
    Y a pas de mal !
    Votre intervention complète la mienne...
    Philippe.

  5. #5
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Nullosse Voir le message
    Bonjour,
    ça ressemble à un problème de configuration. Alors quelques questions s'imposent :

    1 - tu es sous quel linux ? Ubuntu , Fedora, OpenSuse etc ... ? Quelle version ? 32 bits ou 64 bits ?
    OpenSUSE 12.3 - 64 bits
    Citation Envoyé par Nullosse Voir le message
    2 - Comment as-tu installé Lazarus ? par un gestionnaire de paquet ? A la mano ? En recompilant les sources ?
    Avec Yast à partir de "lazarus-1.0.8-0.x86_64.rpm"

    Citation Envoyé par Nullosse Voir le message
    3 - Quelle version de Lazarus est-ce ? 0.9.30 ? 1.0 ? 1.1 ?
    Sinon il faut vérifier dans la configuration si tous les chemins sont bons.
    Et tous les chemins semblent corrects :
    - /usr/bin/fpc pour le compilateur
    - /usr/share/fpcsrc/ pour des sources de fpc
    - /usr/lib64/lazarus/ pour le répertoire de lazarus

    Je ne sais pas si c'est ce qu'il faut, mais ça semble cohérent.
    Pierre GIRARD

  6. #6
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Je viens de faire un test avec un des projets exemples de Lazarus (situé dans "/usr/lib64/lazarus/examples".

    Compilation nickel. Ajout d'un bouton => idem, même problème

    J'ai alors fais tout à la main :
    Ajout d'une procédure Quitter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        procedure Quitter(Sender: TObject);
     
    ...
     
    procedure TForm1.Quitter(Sender: TObject);
    begin
      Close;
    end;
    et édition du fichier "unit1.lfm" pour ajouter :
    à l'objet SpeedButton1.

    Compilation OK et ça marche.
    Pierre GIRARD

  7. #7
    Membre averti
    Profil pro
    au repos
    Inscrit en
    Février 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2013
    Messages : 156
    Points : 331
    Points
    331
    Par défaut
    As-tu cliqué sur Outils/reparcourir le répertoire des sources fpc ?
    les sources sont-elles bien dans le répertoire /usr/share/fpcsrc ?
    Le code de "System" s'ouvre alors sur la ligne :
    {$I sysunixh.inc}
    L'include est dans quel fichier ?

    Amicalement, nullosse

  8. #8
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Nullosse Voir le message
    As-tu cliqué sur Outils/reparcourir le répertoire des sources fpc ?
    Oui, j'avais déjà fait.
    Citation Envoyé par Nullosse Voir le message
    les sources sont-elles bien dans le répertoire /usr/share/fpcsrc ?
    En fait, c'est pas dans "/usr/share/fpcsrc/" mais dans "/usr/share/fpcsrc/2.6.2/" au premier coup d'oeil, je pensais que c'était bon car je retrouvais tout dans l'arborescence en question.

    Faudra juste penser à changer le chemin le jour où je changerais de version de fpc.
    Pierre GIRARD

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 506
    Points
    506
    Par défaut
    Citation Envoyé par Pierre GIRARD Voir le message
    Faudra juste penser à changer le chemin le jour où je changerais de version de fpc.
    Avec "/usr/share/fpcsrc/$(FPCVER)/" le changement de version devrait être automatique.

  10. #10
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par batyann811 Voir le message
    Avec "/usr/share/fpcsrc/$(FPCVER)/" le changement de version devrait être automatique.
    Ca ne résout pas tous mes problèmes, mais ça marche. Donc, merci beaucoup pour ce tuyau.

    Bon, maintenant, j'ai des problèmes avec les composants de Lazarus.
    - Les composants Bases de données par défaut ne me conviennent pas.
    - Les composants IBX pour Lazarus sont instables et manifestement pas aboutis.
    - Impossible d'installer ZEOS
    - Impossible d'installer les UIB (voir ICI pour les détails).

    Donc pour le moment, je suis dans une impasse. Ca marchotte avec les IBX, mais impossible d'avoir un affichage correct des données de la base (certainement un PB de Character Set).

    Avec une base et des tables en UTF8, ça plante (ça fait même planter Lazarus). En mettant tout en WIN1252, c'est guère mieux car les caractères "é, è, à etc..." et à plus forte raison les € ne sont pas affichés correctement (alors que FlameRobin affiche tout sans problème).

    Bref, je suis bloqué, au moins tant que je n'arrive pas à installer les UIB.
    Pierre GIRARD

  11. #11
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Pierre GIRARD Voir le message
    ...
    - Les composants Bases de données par défaut ne me conviennent pas.
    Et bien, finalement si, mon premier essai n'étant pas concluant, j'avais laissé tombé pour les IBX. Mais finalement, ça marche très bien. Ca m'oblige à faire beaucoup plus de modifications dans mes programmes, mais bon ...

    Pour ZEOS, j'ai finalement réussi à l'installé, mais les applications plantent sans message d'erreur dès que je rajoute des composants Z...

    Pour les UIB ... il manquait une librairie (libQt4pas). Mais je n'ai pas réussi à les employer. Aucun des exemples trouvés ne fonctionne sur Lazarus sous LINUX. Conclusion : j'ai laissé tombé aussi.

    Donc voila, au moins une de mes applications est en bonne voie de conversion, et je ne doute pas que les autres suivront.
    Pierre GIRARD

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Pierre GIRARD Voir le message
    Pour ZEOS, j'ai finalement réussi à l'installé, mais les applications plantent sans message d'erreur dès que je rajoute des composants Z...

    Pour les UIB ... il manquait une librairie (libQt4pas). Mais je n'ai pas réussi à les employer. Aucun des exemples trouvés ne fonctionne sur Lazarus sous LINUX. Conclusion : j'ai laissé tombé aussi.
    je suis étonné , bien que n'ayant pas les dernières version de Lazarus mes derniers essais (et programmes) avec ZEOS et UIB fonctionnent correctement
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    je suis étonné , (...)
    Oui, mais, 32 ou 64 bits ? Serge, tu oublies le principal
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #14
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    je suis étonné , bien que n'ayant pas les dernières version de Lazarus mes derniers essais (et programmes) avec ZEOS et UIB fonctionnent correctement
    Pour être plus précis avec les composants UIB, j'ai un projet avec seulement :
    - un UIBDatabase
    - un UIBTransaction
    - un UIBDataset
    - un Datasource
    - un DBGrid
    - un DBNavigator

    Si je mets la propriété "Connected" du UIBDatabse à "True", c'est OK la connexion à la base se fait bien. Pour le UIBDataset, si je mets sa propriété "Active" à "True", j'ai le message d'erreur : "Field needs a name" et le UIBDataset reste à False.

    Dans le même temps, à part des problèmes de "CharacterSet", les IBX fonctionnent parfaitement, et avec les composants SQLdb de Lazarus, c'est 100% OK.
    Pierre GIRARD

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Oui, mais, 32 ou 64 bits ? Serge, tu oublies le principal
    C'est vrai , j'en suis encore au 32 bits (et pourtant je suis pas a la retraite)

    Pour le UIBDataset, si je mets sa propriété "Active" à "True", j'ai le message d'erreur : "Field needs a name" et le UIBDataset reste à False.
    Faudrait que je me re-penche sur les UIB
    Dans le même temps, à part des problèmes de "CharacterSet", les IBX fonctionnent parfaitement
    c'est le à part qui me gène ! les IBX sont fait surtout pour Interbase et Firebird en diverge de plus en plus (c'est ce qui fait recommander d'éviter de les utiliser avec Firebird bien que pour l'instant il n'y a que quelques rares cas de plantage)

    Mais bon , j'ai pour l'instant laissé de coté Lazarus pour jouer avec les FMX de XE4 , le Datasnap et FireDac (Anydac encore proposé il y a peu pour Lazarus) . Je ne décourage pas de voir bientôt Linux proposé en compilation Delphi et l'apprentissage va être long c'est toujours du Pascal mais ce n'est plus vraiment du Delphi 7 sauf pour ceux qui étaient habitués aux RTTI
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 246
    Points : 535
    Points
    535
    Par défaut
    Bonjour,

    Citation Envoyé par Pierre GIRARD Voir le message
    Pour le UIBDataset, si je mets sa propriété "Active" à "True", j'ai le message d'erreur : "Field needs a name" et le UIBDataset reste à False.
    Si vous avez des champs calculés dans votre requête, leur donnez-vous un alias?

    Citation Envoyé par Pierre GIRARD Voir le message
    Dans le même temps, à part des problèmes de "CharacterSet", les IBX fonctionnent parfaitement
    Le principal problème que j'ai rencontré vient de l'UTF8. Comme ce CharacterSet est (ou devrait être) utilisé à la connexion avec Lazarus, la taille en octets des champs de type CHAR ou VARCHAR est plus importante que leur nombre de caractères, pouvant en être le quadruple. Il faut y penser lorsqu'on ajoute manuellement les champs au dataset, car lorsqu'on les ajoute automatiquement, la taille est effectivement multipliée par 4.

    André

  17. #17
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par alanglet Voir le message
    ...Si vous avez des champs calculés dans votre requête, leur donnez-vous un alias?
    Non, aucun champ calculé, juste des CHAR, VARCHAR et INTEGER. Et dans ma base de test, juste une table avec une clé primaire moins de 10 champs.

    Citation Envoyé par alanglet Voir le message
    Le principal problème que j'ai rencontré vient de l'UTF8. Comme ce CharacterSet est (ou devrait être) utilisé à la connexion avec Lazarus, la taille en octets des champs de type CHAR ou VARCHAR est plus importante que leur nombre de caractères, pouvant en être le quadruple. Il faut y penser lorsqu'on ajoute manuellement les champs au dataset, car lorsqu'on les ajoute automatiquement, la taille est effectivement multipliée par 4...
    C'est effectivement une piste, car un autre projet obtenu par la conversion "Delphi -> Lazarus" fonctionne avec des données en UTF8.

    En plus, j'ai été alerté là dessus car dans une autre base j'avais un champ CHAR(2) (en UTF8) représentant des noms de répertoires (de 01 à 99). J'ai du modifier le charset en "NONE" car sinon, l'application trouvait "01......" au lieu de "01".

    Du coup, je pense que mon problème avec les IBX finira par être totalement résolu.

    Pour ce qui est de la compatibilité entre les IBX portés sur Lazarus et Firebird/Interbase ... on verra bien. Pour le moment, je reste sur les composants natifs Lazarus ... en attendant mieux.
    Pierre GIRARD

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

Discussions similaires

  1. Probleme avec fopen sous linux
    Par rivieremathieu dans le forum C
    Réponses: 2
    Dernier message: 16/06/2006, 12h04
  2. [débutant]compiler avec gcc sous linux
    Par Ickou dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 10/03/2006, 17h27
  3. Réponses: 5
    Dernier message: 29/12/2005, 15h03
  4. Problème avec glutFullScreen() sous linux...
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/11/2004, 11h30
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

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