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

Composants VCL Delphi Discussion :

Passage de CLX à VCL


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Passage de CLX à VCL
    Bonjour à tous

    Je'ai une application qui fonctionne sans soucis en CLX. Je suis en train de la passer en VCL. Et je suis confronté à une erreur à la compilation. (Delphi 7)
    Dans une unité j'utilise la bibliothèque Comport. Tous les modules de cette bibliothèque sont dans un dossier Cport. Ce dossier est, bien entendu, déclaré dans le chemin des bibliothèques, puisque, comme je viens de l'écrire, en CLX tout fonctionne. Mais quand je compile en VCL, j'ai le message suivant pour le module CportTrmSet

    [Erreur] CPortTrmSet.pas(101): Identificateur non déclaré : 'TranslateProperties'
    et voilà le 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
    91
    92
    93
    94
    95
    unit CPortTrmSet;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, CPortCtl;
     
    type
      TComTrmSetForm = class(TForm)
        GroupBox1: TGroupBox;
        CheckBox1: TCheckBox;
        CheckBox2: TCheckBox;
        CheckBox3: TCheckBox;
        CheckBox4: TCheckBox;
        CheckBox5: TCheckBox;
        GroupBox2: TGroupBox;
        Label1: TLabel;
        ComboBox1: TComboBox;
        Label3: TLabel;
        Label4: TLabel;
        ComboBox2: TComboBox;
        Label2: TLabel;
        ComboBox3: TComboBox;
        Label5: TLabel;
        Button1: TButton;
        Button2: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    procedure EditComTerminal(ComTerminal: TCustomComTerminal);
     
    implementation
     
    uses gnugettext;
     
    {$R *.DFM}
     
    // show terminal setup dialog
    procedure EditComTerminal(ComTerminal: TCustomComTerminal);
    begin
      with TComTrmSetForm.Create(nil) do
      begin
        CheckBox1.Checked := ComTerminal.LocalEcho;
        CheckBox2.Checked := ComTerminal.SendLF;
        CheckBox3.Checked := ComTerminal.WrapLines;
        CheckBox4.Checked := ComTerminal.Force7Bit;
        CheckBox5.Checked := ComTerminal.AppendLF;
        ComboBox1.ItemIndex := Integer(ComTerminal.Caret);
        ComboBox2.ItemIndex := Integer(ComTerminal.Emulation);
        Edit1.Text := IntToStr(ComTerminal.Columns);
        Edit2.Text := IntToStr(ComTerminal.Rows);
        ComboBox3.ItemIndex := Integer(ComTerminal.ArrowKeys);
        if ShowModal = mrOK then
        begin
          ComTerminal.LocalEcho := CheckBox1.Checked;
          ComTerminal.SendLF := CheckBox2.Checked;
          ComTerminal.WrapLines := CheckBox3.Checked;
          ComTerminal.Force7Bit := CheckBox4.Checked;
          ComTerminal.AppendLF := CheckBox5.Checked;
          ComTerminal.Caret := TTermCaret(ComboBox1.ItemIndex);
          ComTerminal.Emulation := TTermEmulation(ComboBox2.ItemIndex);
          try
            ComTerminal.Columns := StrToInt(Edit1.Text);
          except
            ComTerminal.Columns := 80;
          end;
          try
            ComTerminal.Rows := StrToInt(Edit2.Text);
          except
            ComTerminal.Rows := 24;
          end;
          ComTerminal.ArrowKeys := TArrowKeys(ComboBox3.ItemIndex);
        end;
        Free;
      end;
    end;
     
    procedure TComTrmSetForm.FormCreate(Sender: TObject);
    begin
      TP_Ignore (self,'ComboBox1');
      TP_Ignore (self,'ComboBox2');
      TP_Ignore (self,'ComboBox3');
      TP_Ignore (self,'Edit1');
      TP_Ignore (self,'Edit2');
      TranslateProperties (self,'cport');    <<<<<< Plantage sur cet ordre
    end;
     
    end.
    J'ai mis cet ordre en commentaire, juste pour voir la suite. Je n'ai pas été déçu ! Le module CportSetup ne trouve pas la classe TComComboBox. Or cette classe est bien définie dans un module CPortCtl et voila le début de CportSetup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    unit CPortSetup;
     
    {$I CPort.inc}
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ExtCtrls, Buttons, CPort, CPortCtl;
    Ce que je ne m'explique pas est pourquoi en CLX je n'ai aucun pb et ces deux messages en VCL
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  2. #2
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    bonjour JP.NUAGE,

    tu as du observer qu'il n'y a plus de rubriques
    Composants CLX dans le forum..
    @+

  3. #3
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    mais ouf, il y a de la doc:

    https://delphi.developpez.com/cours/...pos#compos-clx

    les unités étant différentes CLX et VCL
    peut-être un souci de USES..
    ?
    @+

  4. #4
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Il n'y a plus de forum CLX, mais mon problème est en VCL ! Comport est une bibliothèque en VCL : il suffit de regarder les USES ! C'est bien là que le bas blesse ! Utilisée dans mon application de départ sans rien changer dans les USES, elle ne fonctionne pas dans une application VCL.
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  5. #5
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    cool JP.NUAGE..

    CPort, CPortCtl :
    CLX ou VCL ?

    @+

  6. #6
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Bonne question ! Je viens de contrôler.
    Aucun des *.pas de la bibliothèque n'utilise de Qxxxx. Donc rien de CLX. Il n'y a aucun {$R *.xfm}, ni de {$R *.dfm} d'ailleurs mais un {$I CPort.inc} (je ne sais pas à quoi cela correspond !)

    PS : je suis allé regardé à l'adresse que tu m'as donnée cantador et j'ai bien fait. Tu viens de m'éviter une autre conversation : CLX ne m'intéressait pas trop, mais j'ai trouvé comment créer un composant et ça c'est cool !!! J'ai un composant perso fait part une autre personne (perdue de vue) sous CLX qui m'ennuie ! Tu devines ce que je vais faire ! Alors
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  7. #7
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Comme quoi, il faut juste quelque fois un peu de piment..
    un autre lien pour {$I CPort.inc} :

    https://www.developpez.net/forums/d2...2005-a/http://

    bien content que tu as réglé ton souci
    @bientôt

  8. #8
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Ben non, il n'est pas réglé ! L'histoire du composant c'est un autre souci, mais qui n'a rien à voir avec Comport ! Et le dernier lien que tu m'as donné tombe sur "Page not found"
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    le message d'erreur me fait penser qu'il s'agit plutôt d'un problème avec l'unité gnugettext.
    Ce qui me fait dire ça ? le fait que dans le message il y ait le mot Translate or , a mon avis, il s'agit justement d'un des boulots de cette unité, gérer les traductions !
    à méditer .....

    Autre point, que contient le fichier .inc ?
    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

  10. #10
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    @JP.NUAGE
    désolé pour le lien, un copier coller malheureux..

    j'ai trouvé ce post, mais sous toutes réserves :

    https://www.developpez.net/forums/d2...delphi-2005-a/

    @+

  11. #11
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Trop fort SergioMaster : j'ai contrôlé le contenu du dossier Cport contenant tous les Cp***. Il n'y avait pas gnugettext. Je l'ai ajouté et bingo, plus de message !

    Ceci dit, j'ai tout de même une question, mais je peux considérer le pb résolu !

    Ma question : mes définitions de bibliothèques sont les mêmes, que je travaille en CLX ou en VCL. Le programme gnugettext était jusqu'à il y a peu dans un dossier totalement à part. Et il n'est pas dans un des dossiers utilisés uniquement par l'appli CLX. Alors pourquoi CLX fonctionne et pas VCL ? Faut-il chercher la solution dans ce qui suit ?

    Cport.inc :
    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
    { ComPort Library global definitions }
     
    {$B-}
    {$X+}
    {$H+}
     
    {$IFDEF VER110}     { C++ Builder 3 }
      {$ObjExportAll On}
    {$ENDIF}
     
    {$IFDEF VER120}     { Delphi 4 }
      {$DEFINE DELPHI_4_OR_HIGHER}
      {$DEFINE DELPHI_4}
    {$ENDIF}
     
    {$IFDEF VER125}     { C++ Builder 4 }
      {$DEFINE DELPHI_4_OR_HIGHER}
      {$DEFINE DELPHI_4}
      {$ObjExportAll On}
    {$ENDIF}
     
    {$IFDEF VER130}     { Delphi 5 and C++ Builder 5 }
      {$DEFINE DELPHI_4_OR_HIGHER}
      {$DEFINE DELPHI_5_OR_HIGHER}
      {$DEFINE DELPHI_5}
      {$IFDEF BCBNOTDELPHI}
        {$ObjExportAll On}
      {$ENDIF}
    {$ENDIF}
     
    {$IFDEF VER140}     { Delphi 6 and C++ Builder 6}
      {$DEFINE DELPHI_4_OR_HIGHER}
      {$DEFINE DELPHI_5_OR_HIGHER}
      {$DEFINE DELPHI_6_OR_HIGHER}
      {$DEFINE DELPHI_6}
      {$IFDEF BCBNOTDELPHI}
        {$ObjExportAll On}
      {$ENDIF}
    {$ENDIF}
     
    {$IFDEF VER150}     { Delphi 7 }
      {$DEFINE DELPHI_4_OR_HIGHER}
      {$DEFINE DELPHI_5_OR_HIGHER}
      {$DEFINE DELPHI_6_OR_HIGHER}
      {$DEFINE DELPHI_7_OR_HIGHER}
      {$DEFINE DELPHI_7}
      {$IFDEF BCBNOTDELPHI}
        {$ObjExportAll On}
      {$ENDIF}
      {$WARN UNSAFE_TYPE OFF}
      {$WARN UNSAFE_CODE OFF}
      {$WARN UNSAFE_CAST OFF}
    {$ENDIF}
     
    {$IFDEF VER170}     { Delphi 2005 (Delphi 9) }
      {$DEFINE DELPHI_4_OR_HIGHER}
      {$DEFINE DELPHI_5_OR_HIGHER}
      {$DEFINE DELPHI_6_OR_HIGHER}
      {$DEFINE DELPHI_7_OR_HIGHER}
      {$DEFINE DELPHI_9_OR_HIGHER}
      {$DEFINE DELPHI_9}
      {$IFDEF BCBNOTDELPHI}
        {$ObjExportAll On}
      {$ENDIF}
      {$WARN UNSAFE_TYPE OFF}
      {$WARN UNSAFE_CODE OFF}
      {$WARN UNSAFE_CAST OFF}
    {$ENDIF}
     
    {$IFDEF VER180}     { Delphi 2006 (10) C++ Builder 2006 (10) }
      {$DEFINE DELPHI_4_OR_HIGHER}
      {$DEFINE DELPHI_5_OR_HIGHER}
      {$DEFINE DELPHI_6_OR_HIGHER}
      {$DEFINE DELPHI_7_OR_HIGHER}
      {$DEFINE DELPHI_9_OR_HIGHER}
      {$DEFINE DELPHI_10_OR_HIGHER}
      {$DEFINE DELPHI_9}
      {$IFDEF BCBNOTDELPHI}
        {$ObjExportAll On}
      {$ENDIF}
      {$WARN UNSAFE_TYPE OFF}
      {$WARN UNSAFE_CODE OFF}
      {$WARN UNSAFE_CAST OFF}
    {$ENDIF}
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Faut-il chercher la solution dans ce qui suit ?
    Non pas dans le fichier Cport.inc, plutôt un problème de chemins de recherche du projet en VCL
    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

Discussions similaires

  1. Composant personnel CLX->VCL
    Par JP.NUAGE dans le forum Composants VCL
    Réponses: 9
    Dernier message: 23/05/2012, 23h38
  2. Passage application VCL en MDI
    Par 2nd Floor dans le forum Débuter
    Réponses: 3
    Dernier message: 08/07/2011, 14h27
  3. Réponses: 3
    Dernier message: 29/06/2007, 17h18
  4. Réponses: 3
    Dernier message: 23/02/2006, 18h11
  5. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55

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