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 :

Pb pour rendre visible 1 Listbox dynamique


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 942
    Par défaut Pb pour rendre visible 1 Listbox dynamique
    Bonjour,

    J'ai 1 Form contenant 1 Panel qui contient 1 ScrollBox dans laquelle je créé des listbox non visibles en runtime.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    with TListBox.Create(ScrollBox1) do begin
       Name:='lboxContrainte'+RightStr('00'+IntToStr(j+1),3);
       Visible:=False;
       Parent:=ScrollBox1;
       Items:=InfoContrainte;
       Top:=20; Left:=20;
       Height:=250;
       width:=200;
    end;
    Au survol d'un TLabel, je souhaite rendre visible la listbox associée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TForm2.ContrainteMouseEnter(Sender:TObject);
    var numContrainte:string;
    begin
         numContrainte:=RightStr((Sender as TLabel).Name,3);
         with TListBox(FindComponent('lboxContrainte'+numContrainte)) do Visible:=True;
    end;
    Bien sûr le mouseLeave est prévu pour la cacher

    Pb: le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    with TListBox(FindComponent('lboxContrainte'+numContrainte)) do Visible:=True
    génère une violation d'accès...lecture de 0x0..69

    Un avis ?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    Pourquoi ne pas avoir continuer l'autre sujet Assigner un évènement à 1 composant créé dynamiquement ?

    Surtout que j'avais donné la réponse à ce problème (ScrollBox1.FindComponent('lboxContrainte'+numContrainte) as TListBox) avec bien ScrollBox1 comme receveur de la méthode FindComponent puisque c'est lui le Onwer des objets dynamiques, c'est lié directement au paramètre du constructeur TListBox.Create(ScrollBox1);

    Le code que vous utilisez c'est comme Form2.FindComponent qui renvoie nil et le transypage sauvage sans vérification si l'objet est trouvé, ensuite la propriété visible qui doit être à l'adresse offset + 69, donc nil + 69 soit 0x00000069.
    Form2 n'est pas le Onwer donc il ne peut pas trouver ce composant
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 942
    Par défaut
    Merci pour le tuyau.
    Pourquoi ne pas avoir continuer l'autre sujet Assigner un évènement à 1 composant créé dynamiquement ?
    Car pour moi, c'est un autre problème, plus à sa place dans "VCL" que dans "Langage".
    Surtout que j'avais donné la réponse à ce problème
    Réponse par anticipation que j'ai zappée

    Du coup, comment faire pour que la listbox s'affiche toujours dans l'espace visible de la scrollbox? (parce qu'une scrollbox ... ça scrolle )
    Et je ne peux pas utiliser les coordonnées du TLabel associé.

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

Discussions similaires

  1. [XL-2010] Comparaison de dates dans une plage de dates pour rendre visible ou non
    Par PierreXV dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/09/2014, 11h29
  2. [AC-2007] Pb pour rendre visible un bouton dans un formulaire
    Par tibofo dans le forum IHM
    Réponses: 3
    Dernier message: 08/09/2010, 16h09
  3. script pour rendre des fichiers cachés visibles
    Par yucef83 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 21/03/2008, 15h15
  4. Réponses: 2
    Dernier message: 26/07/2006, 12h32
  5. script pour rendre visible un élément
    Par sagitarium dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/04/2006, 13h40

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