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 :

composant créé dynamiquement/événement


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut composant créé dynamiquement/événement
    Bonjour
    J'ai un pb avec des tpagecontrol créés dynamiquement
    Je dois écrire du code dans un événement "ondrawtab" associé.
    En théorie, pas de pb...
    Sauf que j'ai besoin de gérer, comme le permet Delphi pour un compo ajouté en mode conception, certains paramètres à passer lors de l'appel de la procédure, notamment la constante Rect : je ne connais pas ses coordonnées!
    Dois-je bidouiller à partir des propriétés tabindex, tabheight et tabwidth ?
    Galère

    Autre idée:
    J'avais pensé me servir de l'événement ondrawtab d'un autre tpagecontrol, dont je me sers et que j'ai posé à la conception, en appelant sa procédure ondrawcell ...
    Mais je me trouve confronté à la même difficulté : je dois toujours passer ces paramètres lors de l'appel de la procédure

    J'ai aussi tenté ça qui ne fonctionne pas (pagepal est créé à la conception)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
              souspage:=tpagecontrol.Create(onglet);
              with souspage do
              begin
                parent:=onglet;
                style:=tsflatbuttons;
                ondrawtab:=pagepaldrawtab;
                onchange:=pagepalChange;
                width:=parent.ClientWidth;
                height:=parent.ClientHeight;
              end;
    Une piste ?

    merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    Bonjour,

    Quand tu crées ton composant tu lui associes nil à la méthode onDrawTab....

    Il ne te reste plus qu'a lui associé la bonne méthode (pagepaldrawtab) quand tu as réellement l'utilité de la méthode.

    a+

  3. #3
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Pourrais-tu m'en dire plus ?
    Je ne saisis pas bien

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    Voici un mini exemple qui sera plus parlant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure Form.FormActivate(Sender: TObject);
    begin
       MEHolBudDay.OnChange  := nil;
    end;
     
    ... traitements quelconques ...
     
    procedure Fomr.usesMéthode(Sender : TObject);
    begin
        MEHolBudDay.OnChange  := MEHolBudDayChange;
    end;
    Où MEHolBudDayChange est ta méthode à attaché à l'évènement.

  5. #5
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Citation Envoyé par OutOfRange
    Autre idée:
    J'avais pensé me servir de l'événement ondrawtab d'un autre tpagecontrol,
    J'ai aussi tenté ça qui ne fonctionne pas (pagepal est créé à la conception)
    Cette idée est correcte et doit fonctionner alors qu'entends tu par cela ne fonctionne pas; c'est un problème d'exécution ou de compilation.

    Tu dois bien sûr dans cet évènement "pagepaldrawtab" n'utiliser que les paramètres en entrée et aucune référence directe (sauf souhaitée) à un composant de ta fiche.
    Tu n'a pas à chercher à passer à cet évènement ces parmètres c'est la méthde DoDrowTab qui le fait.

    a+

    PS: Donnes nous un exemple de code de pagepaldrawtab

  6. #6
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Salut Yurck
    Il n'y a pas de pb à la compilation
    Le prog ne se branche jamais sur pagepaldrawtab lorsque souspage est dessiné
    Finalement, j'ai opté pour une autre soluce, en posant sur ma fiche un nouveau pagecontrol, et j'implémente ondrawtab comme d'habitude
    Merci qd même

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/01/2014, 17h30
  2. Réponses: 6
    Dernier message: 05/05/2007, 19h51
  3. Événements sur composants créés dynamiquement
    Par systeme1 dans le forum Delphi
    Réponses: 4
    Dernier message: 11/02/2007, 16h08
  4. Composant crée dynamiquement & Access in invalid memory
    Par Sunchaser dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/02/2005, 01h03
  5. Réponses: 7
    Dernier message: 08/08/2003, 18h09

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