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

Delphi Discussion :

Gestion des evenements avec création de boutons dynamiquement


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Par défaut Gestion des evenements avec création de boutons dynamiquement
    Bonjour!
    voila je suis en train de créer un assistant de personnalisation de fenêtre.
    A partir d'un checkListBox je recupere des informations qui vont me servir a crée des boutons dynamiquement.
    Par la suite je souhaite utiliser le drag and drop pour déplacer les boutons.

    Ma question est comme je peux faire pour définir la méthode onMouseDown pour permettre de déplacer les boutons. Bien sur je veux que tous les boutons que je crée possede cette possibilité de déplacement

    Si quelqu'un peut me renseigner?
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    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 086
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyDynamicButton.OnMouseMove := Form.DynBtnMouseMove
    il faut déclarer un DynBtnMouseMove avec les bons paramètres
    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
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Vi, affectation dynamique d'une valeur a une variable

    les evenements sont des variables de types procedures (tiens je me repete )

    Donc declare une procedure du meme type que ta variable evenement .... et apres suffit de lui affecter.
    Et tu peux affecter uen meme methode a autant d'objet que tu desire .... le parametre Sender est la pour ca

    D'ailleur tu peux personaliser certains traitement dans un gestionaire generique en utilisant le sender (objet qui a declanche l'evenement).

    Etant de type TObject tu peux pas faire grand chose, mais grace a un bon cast, tu peux le manipuler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If sender.inheritsFrom(TButton) Then TButton(Sender).Top := 50;
    Note : Verifier que le composant descent bien directement ou indirectemetn de la classe de caste est plus sur

  4. #4
    Membre confirmé
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Par défaut
    Je rebondis sur ce message parce que j'ai un problème voisin : je crée dynamiquement un TForm avec une listbox dessus et je l'affiche en modal. J'aimerais associer à l'événement OnDblClick de la listbox la fermeture du Form créé dynamiquement.
    Pour le moment ça fonctionne et je récupère le choix de l'utilisateur, mais celui-ci doit sortir avec la croix rouge (sans blessure, ouahaha). Mais j'aimerais qu'un simple DblClick suffise...

    J'y arrive pas, sniffff... Pour tout dire, je patauge, même ;-)
    Pas sûr que je comprenne moi-même ce que je fais

    L'événement que j'associe au OnDblClick, je le crée comment ? Pour que syntaxiquement il accepte, je dois créer une fonction qui me retourne un TNotifyEvent, mais à l'exécution, ça va pas... Quelqu'un peut me montrer un exemple de code ?

    Merci d'avance...

  5. #5
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    suffit de chercher dans l'aide delphi quel est le type de l'evenement et de creer une procedure du meme type.

    Pour le dblclick si c'est TNotifyEvent, toute procedure declaree comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Procedure MonGestionaire(Sender : TObject)
    pourra etre affecté a l'evenement OnDblClick;

  6. #6
    Membre confirmé
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Par défaut
    C'est là que je vois que j'ai encore beaucoup à apprendre :-)
    Parce que j'ai le message suivant à la compile : Types incompatibles : 'TNotifyEvent et 'procedure, untyped pointer or untyped parameter'.
    Ce que je ne comprends pas, c'est comment une procédure peut être typée...

    A tout hasard (et pour un peu faire rire sans doute :-))), voilà le code tout simple de ma procédure.



    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
     
    function TMaForm.ChoisirDansUneListBox(pListBox: TStrings): integer;
    var
       frm : TForm;
       listbox : TListBox;
       i : integer;
       procedure MaFermeture(pEcran: TObject);
       begin
          (pEcran as TForm).Release;
       end;
    begin
       Application.CreateForm(TForm,frm);
       // je dessine mon bel écran
       frm.Caption := 'Choisir une adresse';
       frm.Position := poScreenCenter;
       frm.Height := 300;
       frm.Width  := 250;
       listbox := TListBox.Create(frm);
       listbox.Parent := frm;
       // Je remplis la listbox à l'écran avec le TStrings passé en paramètre
       for i := 0 to pListBox.Count - 1 do listbox.Items.Add( pListBox[i] );
       lLbx.Align := alClient;
       listbox.OnDblClick := MaFermeture(frm);
       // MaFermeture est une proc toute bête avec frm.Release, ou frm.Close
       frm.ShowModal;
       Result := listbox.ItemIndex;
       frm.Free;
    end

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

Discussions similaires

  1. gestion des evenements du clavier avec irrlicht
    Par mari-ion dans le forum Irrlicht
    Réponses: 5
    Dernier message: 05/03/2009, 11h34
  2. gestion des evenements avec j2EE
    Par fAdoua123 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/10/2007, 15h35
  3. gestion des evenements dynamique
    Par moniteur41 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/09/2007, 21h22
  4. Gestion des evenements avec la SDL
    Par gusgus dans le forum Ogre
    Réponses: 5
    Dernier message: 01/11/2006, 10h47
  5. [C#] Gestion des evenements
    Par zebulix13 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/06/2004, 18h40

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