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 :

Anchors d'un Panel par code


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut Anchors d'un Panel par code
    Bonjour,

    Je viens de créer dynamiquement des Panels et je souhaite maintenant éditer la propriété Anchors de chaqu'un d'entre eux (par ligne de code).

    J'ai ce 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
    int i,Nbre_Nature_Coup,haut;
       AnsiString Libelle_Nature_Coup;
       TQuery *Nb_Nature_Coup = new TQuery(this);
       haut=FMatch_En_Cours->ClientHeight;
       Nb_Nature_Coup->DatabaseName="Tennis";
       Nb_Nature_Coup->SQL->Clear();
       Nb_Nature_Coup->SQL->Add("Select count(idT_Nature_Coup) AS Nbre_Nature_Coup From t_nature_coup;");
       Nb_Nature_Coup->Active=true;
       Nbre_Nature_Coup=Nb_Nature_Coup->FieldByName("Nbre_Nature_Coup")->AsInteger;
       TQuery *Libelle_Nature = new TQuery(this);
       Libelle_Nature->DatabaseName="Tennis";
       for (i=Nbre_Nature_Coup;i>=1;i--)
      {
         Libelle_Nature->SQL->Clear();
         Libelle_Nature->SQL->Add("Select S_Libelle From t_nature_coup where idT_Nature_Coup="+AnsiString(i)+";");
         Libelle_Nature->Active=true;
         Libelle_Nature_Coup=Libelle_Nature->FieldByName("S_Libelle")->AsString;
         haut=haut-50;
         TPanel *Panel = new TPanel(this);
         Panel->Parent = this;
         Panel->Left=100;
         Panel->Top=haut;
         Panel->Caption=Libelle_Nature_Coup;
         Panel->Name=Libelle_Nature_Coup;
         Panel->Anchors <<akBottom <<akLeft;
      }
    Ce code ne génère pas d'erreur cependant lorque je redimentionne ma fenêtre, mes panels restent ancrés par défaut en haut à gauche.
    Pouvez-vous m'éclaircir sur ce point et m'expliquer comment faire (dans le forum j'ai cherché mais j'ai rien trouvé )

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par défaut
    bonjour,
    si tu donnes les coordonnées de top et left apres les anchors, et eventuellement que tu fini par un form->repaint(); ça change qqchose?

    ou en utilisant l'evenement OnResize peut etre

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Effectivement, ma ligne de code était mal placée mais un autre problème s'ajoute c'est celui des dimensions des Panels! Tous panels se redimensionnent mais l'effet qui en résulte n'est pas celui que je pensé lol.

    Le résultat que je souhaiterai obtenir c'est un Panel de la même dimension de départ mais qui se colle à la fenêtre en bas à gauche pour que je puisse utiliser tout l'espace restant

    Si vous voyez un peut l'idée ... et si vous avez une autre solution, faites moi en part

    EDIT :

    J'ai trouvé d'où vient le problème concernant la dimension des panels. C'est en faite que le Panel s'étire (Panel->Top ne change pas). Je vais encore chercher pour voir comment obtenir le résultat que je veux !

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par défaut
    si tu veux que les proprietes height et width garde la meme valeur (si g bien compris ce que tu veux), tu les garde dans 2 variables et quand tu redimensionne ta fenetre et place le panel en bas gauche tu precise aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    panel1->height=VariableHeight;
    panel1->width=VariableWidth;

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Je n'y arrive pas Le code que je vous ai donné plus haut est dans une procédure et donc la propriété de mes panels ne sont accessible que dans la procédure non? Ce que je ne comprends pas c'est que tous les autres propriétés (akRight,akLeft etc ... marche). Normalement, avec akBottom, c'est la position du Panel en Top qui change!? J'ai essayé de faire cela avec des boutons que j'ai créer via l'interface graphique (donc pas de création dynamique) et là, tout fonctionne ! Je ne comprends pas

    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Par défaut
    une fois créés les panels devraient etre accessibles meme en dehors de la procedure, a moins que je me trompe mais il me semble avoir fait qqchose de ressemblant en delphi
    par contre si les largeurs et hauteurs st stockées ds des variables, ces variables sont declarées dans le .h (du moins c'est ainsi que je fais dans mon application)

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

Discussions similaires

  1. Fermeture fenetre crée par code javascript
    Par Kerod dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 27/02/2010, 00h04
  2. Tri par Codes Postaux + Noms d'entreprises
    Par matperino dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/07/2005, 14h04
  3. Retirer une clé primaire par code
    Par Arrown dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2004, 15h15
  4. [VCL] Scroller un contrôle par code
    Par sbeu dans le forum Composants VCL
    Réponses: 3
    Dernier message: 31/03/2004, 10h39
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

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