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

C++Builder Discussion :

Liste déroulante des composants-> (méthodes, évènements, propiétés)


Sujet :

C++Builder

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2014
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 121
    Points : 57
    Points
    57
    Par défaut Liste déroulante des composants-> (méthodes, évènements, propiétés)
    Bonjour,

    Que ce soit starter10.1, 10.3 ou rad studio community 10.4 que je viens d'installer (licence gratuite 1 an),
    la liste déroulante après un composant ( Ex : Edit1->Text, ListBox1->Items->Add) ne s'affiche pas. Edit1-> rien ...
    Il faut alors utiliser le vieux compilateur Borland (Projet + Options + Compilateur C++ + cocher compilateur Borland)
    qui ne reconnaît pas certains codes. Le code ci-dessous plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
     
      std::vector<int> const tableau_entiers { 1, 2, 3 };
     
    	for (auto const element : tableau_entiers)
    	{
    		ListBox1->Items->Add(IntToStr(element));
    	}
     
    }
    Pas pratique. A moins qu'une solution existe.

    Cordialement

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    mars 2002
    Messages
    1 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2002
    Messages : 1 005
    Points : 2 090
    Points
    2 090
    Par défaut
    Saut
    il existe toujours une solution
    n'aurais tu pas oublier d'inclure le fichier <vector>
    ce code légèrement modifié fonctionne parfaitement chez moi comme tu peux le constater sur la copie écran ci-jointe

    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
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit140.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
     
    #include <vector>     // ne pas oublier
     
    TForm140 *Form140;
    //---------------------------------------------------------------------------
    __fastcall TForm140::TForm140(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm140::Button1Click(TObject *Sender)
    {
       std::vector<int> const tableau_entiers { 1, 2, 3 };
     
    	for (auto const element : tableau_entiers)
    	{
    		ListBox1->Items->Add(element);
    // inutile de passer par IntoString car il existe un constructeur pour le type int dans la classe UnicodeString
    	}
    }
    Nom : FillListBox.PNG
Affichages : 63
Taille : 3,8 Ko
    bien cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2014
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    Salut DJM.

    J'ai bien inséré #include <vector>.

    Chez moi, à partir du moment où le compilateur Borland est activé, ça plante.

    Que ce soit en vcl ou fmx. 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
    #include <fmx.h>
    #pragma hdrstop
     
    #include "Unit2.h"
    #include <vector>
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.fmx"
    TForm2 *Form2;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
      std::vector<int> const tableau_entiers { 1, 2, 3 };
     
    	for (auto const element : tableau_entiers)
    	{
    		ListBox1->Items->Add(element);
    	}
     
     
    }
    Compilation de Project2.cbproj (Debug, Win32)
    [bcc32 Erreur] Unit2.cpp(20): E2108 Utilisation impropre de typedef 'std::vector<int,std::allocator<int> >'
      Contexte d'analyseur complet
        Unit2.cpp(19): analyse : void _fastcall TForm2::Button1Click(TObject *)
    [bcc32 Erreur] Unit2.cpp(20): E2379 ; manquant dans l'instruction
      Contexte d'analyseur complet
        Unit2.cpp(19): analyse : void _fastcall TForm2::Button1Click(TObject *)
    [bcc32 Erreur] Unit2.cpp(22): E2304 La variable Constante 'element' doit être initialisée
      Contexte d'analyseur complet
        Unit2.cpp(19): analyse : void _fastcall TForm2::Button1Click(TObject *)
    [bcc32 Erreur] Unit2.cpp(22): E2141 Erreur de syntaxe de déclaration
      Contexte d'analyseur complet
        Unit2.cpp(19): analyse : void _fastcall TForm2::Button1Click(TObject *)
    [bcc32 Erreur] Unit2.cpp(28): E2139 ; manquant dans la déclaration
      Contexte d'analyseur complet
        Unit2.cpp(19): analyse : void _fastcall TForm2::Button1Click(TObject *)
    [bcc32 Erreur] Unit2.cpp(28): E2188 Syntaxe de l'expression
      Contexte d'analyseur complet
        Unit2.cpp(19): analyse : void _fastcall TForm2::Button1Click(TObject *)
    [bcc32 Erreur] Unit2.cpp(28): E2378 ; manquant dans l'instruction For

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    mars 2002
    Messages
    1 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2002
    Messages : 1 005
    Points : 2 090
    Points
    2 090
    Par défaut
    Salut
    cela veut simplement dire qu'l faut utiliser la version CLANG du compilateur (BCC32X).
    le compilateur bcc32 bien que distribué n'est plus maintenu.
    si tu reste au niveau de la vcl ou de la FMX cela ne pose pas de problème,mais si tu utilise le framework STD et les dernières évolution du langage C++ et C+/ le compilateur compilateur BCC32C est indispensable

    extrait de l'aide Embarcadero

    Le mot clé auto a été redéfini dans les standards C++11 et C++17. Par conséquent, C++Builder supporte deux définitions différentes de auto, déterminées par le standard suivi par chaque compilateur C++.

    La définition C++98 est prise en charge par des compilateurs C++ de précédente génération (BCC32 et BCCOSX).
    La définition C++11 est prise en charge par les compilateurs C++ améliorés par Clang compatibles C++11.
    Les définitions C++14 et C++17 sont prises en charge par les compilateurs C++ améliorés par Clang compatibles C++11.

    Cette page décrit les définitions de auto.

    référence:https://docwiki.embarcadero.com/RADS...andria/fr/Auto

    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2014
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    Salut

    Merci pour tes réponses.

    Sur le site https://docwiki.embarcadero.com/RADS...%A9s_par_Clang

    "Comment utiliser le nouveau compilateur basé sur Clang pour des projets Windows 32 bits

    BCC32C et BCC32X ne remplacent pas BCC32. En effet, RAD Studio vous offre la possibilité d'utiliser le compilateur de votre choix pour chacun de vos projets. BCC32 est le compilateur C++ par défaut pour Windows 32 bits.

    Pour activer BCC32C ou BCC32X pour un projet spécifique, sélectionnez Projet > Options > Compilateur C++ et désactivez l'option Utiliser le compilateur Borland 'classique' sous Compilateur classique.

    L'EDI utilise ensuite le compilateur Win32 amélioré par Clang. La différence entre bcc32c et bcc32x existe uniquement sur la ligne de commande. Le compilateur EDI est hébergé dans le processus de l'EDI et n'est pas piloté depuis la ligne de commande. "

    La dessus pas de problème. Mais lorsque le compilateur Borland est désactivé, plus moyen d'avoir la liste déroulante qui donne accès aux propriétés, évènements, méthodes ... des composants.

    Edit1-> rien ne se passe. Pas pratique. A moins que quelque chose m'échappe ....

    Cordialement

  6. #6
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    mars 2002
    Messages
    1 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2002
    Messages : 1 005
    Points : 2 090
    Points
    2 090
    Par défaut
    Salut,
    effectivement le compilateur Clang est plus lent concernant les audit de code
    ce problème n'est toujours pas résolu correctement chez Embarcadero

    aide Embarcadero ici:https://docwiki.embarcadero.com/RADS...7audit_de_code

    toutefois il existe un plan B permettant sur des machines avec un bon processeur d'améliorer significativement les performances de l'audit de code et de conseil
    pour ce faire il faut

    vérifier que les options audit de code soient identiques à cette copie écran

    Audit de code :Nom : audit.PNG
Affichages : 43
Taille : 79,8 Ko
    1. sauvegarder ton projet sur disque avant la compilation
    2 activer toutes les cases à cocher comme indiquer dans la copie écran ci dessous
    option LSP:Nom : Capture.PNG
Affichages : 40
Taille : 44,7 Ko

    3 compile un bout de code
    suivant les performances de ta machine tu devrais avoir l'audit de code dans les 15 secondes (la première fois)


    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2014
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    Salut et merci.

    Ça marche avec la version 10.4.

    Par contre, dans la version Starter 10.3.2, pas de LSP dans le compilateur c++

    C'est compliqué chez Embarcadero. Et pourtant, les listes déroulantes font partie du B.A.B.A . Elles sont arrivées dans Delphi3 chez Borland.

    Cordialement.

  8. #8
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    mars 2002
    Messages
    1 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2002
    Messages : 1 005
    Points : 2 090
    Points
    2 090
    Par défaut
    Salut,
    En fait ça n’a rien à voir le système LSP ( language server protocol) est implémenté différemment dans les versions précédentes.
    C’est le process cquerry qui est sensé rappatrié l’audit et conseil de code dans l’EDI
    Si tu observe attentiVement ce process dans le gestionnaire tu t’apercevra qu’il consomme énormément de mémoire et parfois ce bloque
    Seul remède redémarrer c++ builder.. Il existe passablement d’informations à ce sujet sur le net (embarcadero lsp server)
    Je suis un peu déçu de la part d’embarcadero de ne pas utiliser mon plan B et de se contenter du minimum syndical

    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2014
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    Salut et merci

    Codialement

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2014
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    Salut

    J'ai trouvé des explication dans l'aide de la version 10.4.
    Il faut cocher la case Achèvement de code de l'Audit de code.

    Cordialement.


    Utilisation de l'audit de code

    L'audit de code (parfois appelé achèvement de code) est un ensemble de fonctionnalités de l'éditeur de code et de l'éditeur de balise HTML qui fournissent l'achèvement du code, affichent des listes de paramètres de code et donnent des conseils pour les expressions et les symboles.

    La boîte liste de la fenêtre de conseil filtre toutes les déclarations de méthode d'interface qui sont référencées par les clauses de lecture ou d'écriture des propriétés. La boîte liste affiche uniquement les propriétés et les méthodes autonomes déclarées dans le type interface.

    Sommaire
    1 Pour activer l'audit de code (tâche générale)
    2 Pour activer et utiliser l'achèvement du code
    3 Exemples d'audit de code
    4 Pour activer et utiliser les paramètres de code
    5 Pour activer et utiliser l'évaluation d'expression dans un conseil
    6 Pour activer et utiliser l'audit de symbole dans un conseil
    7 Voir aussi
    Pour activer l'audit de code (tâche générale)Choisissez Outils > Options > Options de l'éditeur > Audit de code.
    Examinez et définissez les préférences de couleurs et les options de l'audit de code, selon les besoins. Les tâches qui suivent celle-ci dans cette rubrique d'aide donnent davantage de détails sur certains paramètres d'audit de code.
    Cliquez sur OK.
    Pour activer et utiliser l'achèvement du code Choisissez Outils > Options > Options de l'éditeur > Audit de code.

    Cochez la case Achèvement de code.

    Pour afficher la liste des types, propriétés, méthodes et événements dans l'éditeur de code, tapez un point (.) (pour Delphi ou C++) ou une flèche (->) (pour C++) à la suite du nom d'un objet ou d'une classe. Pour afficher les propriétés, les méthodes et les événements disponibles dans une classe, tapez le nom d'une variable et appuyez sur Ctrl + Espace.
    Sélectionnez l'élément affiché pour lequel vous souhaitez achever la classe ou l'objet, et appuyez sur ENTREE. Pour annuler l'achèvement de code, appuyez sur Retour Arrière ou Echap.

Discussions similaires

  1. [MySQL] liste déroulante des pays
    Par tchaw dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 10/12/2009, 09h30
  2. Afficher une liste déroulante des villes
    Par kamclasse dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/07/2009, 16h21
  3. Liste déroulante des polices
    Par The SorroW dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 19/02/2009, 12h15
  4. '30/12/1899' dans la liste déroulante des dates
    Par amka dans le forum Access
    Réponses: 3
    Dernier message: 11/08/2006, 10h21
  5. ajustement de la taille de la liste déroulante des combobox
    Par mdevlieg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/08/2006, 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