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 :

Creer un composant non visuel(Timer) dans une DLL


Sujet :

Composants VCL Delphi

  1. #1
    Membre actif Avatar de hugobob
    Profil pro
    FOI
    Inscrit en
    Septembre 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : Gabon

    Informations professionnelles :
    Activité : FOI

    Informations forums :
    Inscription : Septembre 2005
    Messages : 169
    Points : 203
    Points
    203
    Par défaut Creer un composant non visuel(Timer) dans une DLL
    Slt!

    Est-il possible de creer un composant non visuel dans une DLL ?

  2. #2
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    voir AllocateHWnd dans l'aide de delphi il donne un example (ttimer)
    Référence VCL
    AllocateHWnd, DeallocateHWnd, exemple

    Le code suivant vient de l'implémentation de TTimer. Il montre comment le constructeur de composant timer crée une fenêtre cachée pour répondre aux messages Timer et comment le destructeur libère cette fenêtre.

    {TTimer implémente une méthode WndProc qui devient la procédure de fenêtre pour la fenêtre cachée. }
    procedure TTimer.WndProc(var Msg: TMessage);

    begin
    with Msg do
    if Msg = WM_TIMER then { contrôle de messages du timer }
    try
    Timer; { appel du gestionnaire d'événement OnTimer }
    except
    Application.HandleException(Self);
    end
    else
    { Tous les autres messages sont passé à DefWindowProc, qui indique à Windows de gérer le message. Remarquez que le premier paramètre, FWindowHandle, est le handle de la fenêtre recevant ce message. Il est obtenu depuis l'appel de AllocateHWnd dans le constructeur. }

    Result := DefWindowProc(FWindowHandle, Msg, wParam, lParam);

    end;

    { le constructeur TTimer utilise AllocateHWnd pour créer la fenêtre et enregistrer son handle. }
    constructor TTimer.Create(AOwner: TComponent);

    begin
    inherited Create(AOwner);
    FEnabled := True;
    FInterval := 1000;
    FWindowHandle := AllocateHWnd(WndProc);

    end;

    { le destructeur de TTimer appelle DeallocateHWnd pour libérer la fenêtre cachée. }
    destructor TTimer.Destroy;

    begin
    FEnabled := False;
    UpdateTimer;
    DeallocateHWnd(FWindowHandle);
    inherited Destroy;

    end;

Discussions similaires

  1. Création du timer dans une Dll
    Par Hokagge dans le forum MFC
    Réponses: 13
    Dernier message: 14/03/2006, 18h04
  2. Creation d'un message dans une dll non MFC
    Par dug dans le forum Windows
    Réponses: 1
    Dernier message: 29/11/2005, 12h50
  3. Destructeur pour un composant non visuel
    Par sfpx dans le forum Composants VCL
    Réponses: 4
    Dernier message: 27/08/2005, 02h14
  4. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 14h07
  5. Timer dans une feuille excel
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 28/01/2005, 10h43

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