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

IHM Discussion :

Ajout de controls dynamiquement


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut Ajout de controls dynamiquement
    Bonjour,
    (j'ai déjà poster ce sujet, donc je m'excuse... mais je reposte car je n'ai pas eu de réponse)

    j'ai un fomulaire dans lequel j'ajoute dynamiquement des controls. Pour ajouter ces contrôles, pour le moment je récupère les données dans un recordset.

    Je parcours ce recordset dans une boucle :
    - creation du control(i) à la hauteur y
    - i++, y++

    Mon problème, c'est que si mon recordset contient trop de résultat, vu que j'ajoute mes controls selon une hauteur en dur, au bout d'un moment j'atteint la hauteur max d'un formulaire.

    Je voudrais donc savoir comment résoudre ce problème.
    Je suppose que je dois mettre mon formulaire en mode continu et au lieu de spécifier la hauteur, ajouter un enregistrement au formulaire... mais je sais pas faire... snif...

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    personne ?

  3. #3
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    Il y a sans doute un moyen de faire ce que tu demandes, mais ça sera forcément plus compliqué que d'ajouter des enregistrements à un formulaire continu... (enfin c'est mon point de vue : je n'ai aucune idée sur comment on peut ajouter dynamiquement des contrôles...)

    Tu voudrais pas nous dire de quoi il s'agit exactement ? Avec une copie d'écran peut-être.

    Sinon, si ta méthode marche (j'aimerais beaucoup que tu me montres comment) et que c'est juste un problème de tout faire tenir, tout ce que tu peux faire c'est resserrer les contrôles:

    n=nb d'enregistrements (par la méthode de ton choix)
    h = 55cm / n
    y(i=1)=0.5cm
    y(i)=0.5cm + i.h

    Sous Access 97 la hauteur max d'une section d'un formulaire est 55cm et des poussières.

    ...Plus j'y pense et plus je me dis qu'un formulaire continu serait beaucoup plus simple...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 168
    Points : 196
    Points
    196
    Par défaut
    Quand tu arrive a la fin de la page, recommence d en haut en decalant tes controles pour creer une nouvelle colonne...enfin faut voir ...
    a+

  5. #5
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par sunvialley
    ... ajouter un enregistrement au formulaire...
    c'est dans une table que tu peux ajouter des enregistrements
    et le formulaire a cette table comme source

    tu vides la table à l'ouverture et/ou à la fermeture du formulaire, et tu la remplis comme tu veux

    c'est plus simple et ça marche en mde et avec le runtime, contrairement aux contrôles ajoutés dynamiquement

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    Citation Envoyé par Sunvialley
    ... ajouter un enregistrement au formulaire...
    c'est vrai que les enregistrements sont uniquement dans des tables, mais je savait pas comment expliquer mon problème. Mais en y repensant, c'est vrai que c'est bête...
    Il "suffit" de passer par une table temporaire comme tu dis.

    Maintenant que l'idée est là, reste plus qu'à faire la requete SQL (pas evident je pense les insert selon un select... à voir)

    Merci


    (je test, je mettrais résolu bientôt)

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    C'est tout bon sur le principe, cela fonctionne. J'ai juste une petite erreur qui persiste...

    ca va pas etre facile a expliquer...

    En gros j'ai créée une table temporaire qui est la source de mon sous formulaire (tout va bien pour la table).
    Dans mon formulaire principal, j'ai 2 boutons (suivant précédent) qui augementent ou dimunuent la date qui me sert de critère dans la création de la table temporaire, et ces boutons relancent la fonction qui me permet de rafrachir le sous formulaire (passage mode creation, creation table temp, creation des controls, retour en mode normal)

    Mon sous formulaire possède une en-tete qui affiche les dates (selon la date liée aux boutons), et le details affiche le contenu de la table temporaire.
    L'en-tete est actualisée dans la fonction "form_current" de mon sous fomulaire.

    Mon problème :
    quand ma table temporaire est vide, la fonction "form_current" n'est pa activée (donc mes label plantent) ; j'ai essayé avec d'autre évènement, mais je n'ai pas trouvé...

  8. #8
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    A essayer :
    Juste après la mise à jour de tes labels, ajoute Me.Refresh
    Ou bien, remplace tes labels par des zones de texte non liées.

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    je ne comprend pas tout

    pourquoi créer une table et passer en mode création

    tu ne peux pas tout figer : la structure de la table et du formulaire changent?

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    le problème est dans l'autre sens :

    le rafraichissement des données (enregistrements) est correct, mais pas pour les labels...
    refresh actualise les enregistrements
    j'avais déjà essayé avec repaint, mais ca change rien...

    si je change mes labels en zone de texte, je pense que cela reviendra au meme, car je les change (pour le moment) dans ma fonction current qui n'est pas activée

    en gros, il me faudrait une fonction qui force le current

    sinon, je vais voir si je peux pas mettre le contenu de ma fonction current dans une fonction que j'appelerais manuellement...

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    en fait je passe en mode création pour ajouter des controls dont la position en x changent (ainsi que la couleur...etc), pas pour la table...
    mais je fais tout au meme moment...


    par contre pour ce qui est de la position en x, j'ai besoin de recuperer certaines valeur de la table source, mais je sais pas comment faire pour le moment car en fait mainenant que je n'utilise plus de recordset, je ne créée qu'un seul control qui se répercute sur chaque enregistrement... alors que je veux que pour chaque enregistrement, je puisse changer la position...

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    en gros je me heurte à un choix :

    - soit j utilise une table temporaire pour ne pas avoir de problème de hauteur, mais dans ce cas, je n'arrive pas à créer des controls différents (car en fait on en créée un seul)
    - soit j'utilise un recordset sur lequel je peux obtenir toutes les valeurs qui m'intéresse pour créer des controls différents, mais par contre je me heurte au problème de hauteur


    que dois je faire ?

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    y a plus personne ?

    je pense que je vais revenir à l'utilisation d'un recordset pour modifier comme je veux les controls. Par contre je vais devoir tester la hauteur max, et découper tous mes controls selon la hauteur, ca va pas être facile...

Discussions similaires

  1. Ajouter des controles dynamiquement à un pannel
    Par mimosa803 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 05/05/2009, 20h40
  2. ajout de control dynamiquement
    Par libuma dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 09/06/2008, 16h25
  3. Réponses: 3
    Dernier message: 05/11/2006, 11h42
  4. Réponses: 1
    Dernier message: 19/08/2006, 19h40
  5. [VB.NET] Ajout de controles dynamiquement
    Par A77 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2005, 09h00

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