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 :

Problème d'installation de composant : erreur "Impossible de trouver componenttreeview.pas"


Sujet :

Lazarus Pascal

  1. #1
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut Problème d'installation de composant : erreur "Impossible de trouver componenttreeview.pas"
    Salut à tous

    Voilà je suis en train de créer un composant graphique et lors de l'installation j'ai l'erreur suivante:
    Impossible de trouver componenttreeview.pas
    Ce fichier ne fait pas du tout partie de mon composant et j'ai fini par le trouver dans le répertoire lazarus\components\ideintf
    Mais quand je met ce chemin dans les chemins supplémentaire de mon paquet, la compilation de Lazarus me sort la même erreur

    J'avoue que je sèche

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 132
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Salut,

    Et en passant par Projet / Inspecteur de projet / Ajouter / Nouvelle condition / Nom du paquet et faire dérouler pour trouver ideIntf ?

    Jamais testé en création de composant, mais c'est un truc qui me fait galérer, parfois...

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Ca ne marche pas car il ne propose que les composants installé et comme je n'arrive pas à l'installer il n'est pas dans la liste

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 132
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Citation Envoyé par Gouyon Voir le message
    Ca ne marche pas car il ne propose que les composants installé et comme je n'arrive pas à l'installer il n'est pas dans la liste
    On parle bien de IDEintf ?

    Images attachées Images attachées  

  5. #5
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 740
    Par défaut
    Bonjour,

    J'ai eu le même problème (exactement) suite à l'installation de la dernière version.

    J'ai tout désinstallé et tout réinstallé et ça fonctionne. Ne me demandez pas pourquoi, mais c'est ce que j'ai fait !

  6. #6
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    J'ai tout désinstallé et tout réinstallé et ça fonctionne. Ne me demandez pas pourquoi, mais c'est ce que j'ai fait !
    Je confirme c'est la solution que j'ai finalement utilisée. Mais j'ai fait aussi quelque modifications sur l'emplacement de mon composant (je l'ai mis dans le registre "Standard" au lieu de "Misc") et j'ai complété les procédures qui manquait.

    Par contre maintenant si je le met sur une Form il me met une Unknown Runtime error 202 et l'interface plante complètement

    Voici mon code
    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
    86
    87
    88
    89
    90
     
    unit illustratedBarGraphRG;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls;
     
    type
      TillustratedBarGraph = class(TImage)
      private
        { Private declarations }
      protected
        { Protected declarations }
        function GetNombreDeCellules:integer;
        procedure SetNombreDeCellules(Nb:integer);
      public
        { Public declarations }
        constructor Create(AOwner :TComponent); override;
        procedure Paint; override;
      published
        { Published declarations }
        property Align;
        property Anchors;
        property AntialiasingMode;
        property AutoSize;
        property BorderSpacing;
        property Center;
        property Constraints;
        property Cursor;
        property DragCursor;
        property DragMode;
        property Enabled;
        property Height;
        property HelpContext;
        property HelpKeyword;
        property HelpType;
        property Hint;
        property Left;
        property Name;
        property ParentShowHint;
        property Picture;
        property PopupMenu;
        property Proportional;
        property ShowHint;
        property Stretch;
        property Tag;
        property Top;
        property Transparent;
        property Visible;
        property Width;
     
        property NombreDeCellules:integer read GetNombreDeCellules write SetNombreDeCellules;
      end;
     
    procedure Register;
     
    implementation
     
    procedure Register;
    begin
      {$I illustratedbargraphRG_icon.lrs}
      RegisterComponents('Standard',[TillustratedBarGraph]);
    end;
    constructor TillustratedBarGraph.Create(AOwner :TComponent);
    begin
      inherited Create(AOwner);
      NombreDeCellules:=1;
      Height:=72;
      self.Width:=72;
    end;
    procedure TillustratedBarGraph.Paint;
    begin
      inherited Paint;
      //Canvas.Rectangle(0,0,10,10);
    end;
     
    function TillustratedBarGraph.GetNombreDeCellules:integer;
    begin
      result:=NombreDeCellules;
    end;
     
    procedure TillustratedBarGraph.SetNombreDeCellules(Nb:integer);
    begin
     NombreDeCellules:=Nb;
    end;
     
    end.

  7. #7
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    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 786
    Par défaut
    Bonjour,
    Citation Envoyé par Gouyon Voir le message
    Par contre maintenant si je le met sur une Form il me met une Unknown Runtime error 202 et l'interface plante complètement
    C'est pour cela que je préfère toujours passer par des tests "runtime" avant de faire le paquet...

    Cela étant, l'erreur s'explique par le manque de la variable privée associée à la propriété.
    Voici le code amendé qui devrait beaucoup mieux fonctionner :
    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
    86
    87
    88
    89
    90
    91
    92
    unit illustratedBarGraphRG;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls;
     
    type
      TillustratedBarGraph = class(TImage)
      private
        { Private declarations }
        FNombreDeCellules: Integer; // A RAJOUTER
      protected
        { Protected declarations }
        function GetNombreDeCellules:integer;
        procedure SetNombreDeCellules(Nb:integer);
      public
        { Public declarations }
        constructor Create(AOwner :TComponent); override;
        procedure Paint; override;
      published
        { Published declarations }
        property Align;
        property Anchors;
        property AntialiasingMode;
        property AutoSize;
        property BorderSpacing;
        property Center;
        property Constraints;
        property Cursor;
        property DragCursor;
        property DragMode;
        property Enabled;
        property Height;
        property HelpContext;
        property HelpKeyword;
        property HelpType;
        property Hint;
        property Left;
        property Name;
        property ParentShowHint;
        property Picture;
        property PopupMenu;
        property Proportional;
        property ShowHint;
        property Stretch;
        property Tag;
        property Top;
        property Transparent;
        property Visible;
        property Width;
     
        property NombreDeCellules:integer read GetNombreDeCellules write SetNombreDeCellules;
      end;
     
    procedure Register;
     
    implementation
     
    procedure Register;
    begin
      {$I illustratedbargraphRG_icon.lrs}
      RegisterComponents('Standard',[TillustratedBarGraph]);
    end;
    constructor TillustratedBarGraph.Create(AOwner :TComponent);
    begin
      inherited Create(AOwner);
      NombreDeCellules:=1;
      Height:=72;
      self.Width:=72;
    end;
    procedure TillustratedBarGraph.Paint;
    begin
      inherited Paint;
      //Canvas.Rectangle(0,0,10,10);
    end;
     
    function TillustratedBarGraph.GetNombreDeCellules:integer;
    begin
      // result:=NombreDeCellules;  // A REMPLACER !
      Result := FNombreDeCellules;
    end;
     
    procedure TillustratedBarGraph.SetNombreDeCellules(Nb:integer);
    begin
     // NombreDeCellules:=Nb; // A REMPLACER !
      FNombreDeCellules := Nb;
    end;
     
    end.

  8. #8
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Effectivement je m'en suis aperçu après.
    Ceci dit c'est très sensible car après correction et vérification du bon fonctionnement j'ai ajouté
    Canvas.Rexctangle(10,20,20,30);
    Dans la procédure Paint et là Lazarus à explosé dès que j'ai posé le composant sur une Form et réinstallation de Lazarus
    Du coup je le fait en "runtime" et après j'essayerais d'en faire un Composant

  9. #9
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour,

    Je viens d'avoir le même problème lors de l'install d'un paquet, et j'ai opté aussi pour la solution de Jon (tout désinstaller, puis réinstaller). Merci pour le tuyau.

    @Gouyon :

    Je crois voir d'où vient le problème de ton Canvas.Rectangle.
    TImage est dérivé de TCustomImage et celui-ci de TGraphicControl.

    TGraphicControl a son propre Canvas que l'on peut utiliser sans aucun problème en design-time.
    Par contre, quand tu utilises pour la première fois la propriété Canvas de TCustomImage, il y a création d'un bitmap aux dimensions du composant, et le Canvas sur lequel tu dessines est en fait celui du bitmap.
    Cette création n'est évidemment plus à faire lorsque Picture a été assigné.
    Donc en design-time, cela ne peut poser que des problèmes (dimensionnement du composant, taille du bitmap...).

    Tu ne devrais plus avoir de problèmes en mettant dans ta procedure Paint :
    if not(csDesigning in ComponentState) then Canvas.Rectangle(0,0,10,10);

    Pour que cela marche en design-time, je te conseille de dériver ton composant de TCustomImage et de réécrire la procedure Paint.
    Voir fichier : customimage.inc

    Tu remarqueras que le Paint utilise "inherited Canvas", c'est-à-dire celui de TGraphicControl.

    Thierry

  10. #10
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Merci pour ces précisions j'essayerais dès que possible.

Discussions similaires

  1. Problème d'installation des composant Orpheus
    Par Claude l'ancien dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/06/2011, 12h01
  2. problème en installant des composants TMS pour BCB6
    Par chamamo dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/06/2008, 09h41
  3. Réponses: 1
    Dernier message: 09/12/2005, 09h16
  4. Réponses: 3
    Dernier message: 01/08/2005, 21h32
  5. Réponses: 2
    Dernier message: 31/07/2005, 14h52

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