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 :

Création dynamique d'un TTaskBar


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 73
    Points
    73
    Par défaut Création dynamique d'un TTaskBar
    Contexte : Delphi XE7, Windows seven

    Exception lors de la création d'une TTaskbar à l'exécution

    L'instanciation du composant se passe bien mais ça se passe mal lors de l'ajout de "TaskBarButtons".

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TmainForm.ajouteTaskBar;
    var taskBtn:TThumbBarButton;
    begin
      if assigned(_taskBar1) then exit;
      _taskBar1:=TTaskbar.Create(self);
      if not assigned(_taskBar1) then exit;
      taskBtn:=_taskBar1.TaskBarButtons.Add; //EXCEPTION !!!
      if assigned(taskBtn) then
      with taskBtn do
      begin
        Action:=actStopScript;
      end;
    end;
    Une nécessaire initialisation m'aurait-elle échappée ?

    N.B. 1) je n'ai pas de problème lorsque la TTaskbar est créée à la conception
    2) pas d'info sur le sujet sur le net (en revanche de nombreux exemples pour l'utilisation en mode "conception")

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut Une idée
    N'ayant pas le composant TTaskbar sur le poste sur lequel je travaille en ce moment, j'image que la solution peut ressembler à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TmainForm.ajouteTaskBar;
    var 
      taskBtn : TThumbBarButton;
    begin
      if assigned(_taskBar1) then exit;
      _taskBar1:=TTaskbar.Create(self);
      TTaskbar.parent := self
      taskBtn : TThumbBarButton.create(TTaskbar) ;
      taskBtn.Action:=actStopScript;
      _taskBar1.TaskBarButtons.Add(taskBtn);
    end;

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 73
    Points
    73
    Par défaut
    Le composant TTaskBar n'a pas de propriété parent

    La méthode _taskBar1.TaskBarButtons.Add n'a pas de paramètres, elle renvoie un objet de type TThumbBarButton

    J'ai essayé la création : taskBtn : TThumbBarButton.create(Taskbar) ; mais elle provoque également une exception

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut Une idée
    Je me suis basé sur ce code
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     var thumbbarButton = TaskbarButton.Current.CreateThumbbarButton((uint)(i + 1));
    thumbbarButton.Flags = THUMBBUTTONFLAGS.THBF_ENABLED;
    thumbbarButton.ImageDataType = ButtonImageDataType.PNG;
    StreamResourceInfo resourceInfo = Application.GetResourceStream(new Uri(string.Format("images/{0}.png", i), UriKind.Relative));
    using (var br = new BinaryReader(resourceInfo.Stream))
    {
    thumbbarButton.Image = br.ReadBytes((int)resourceInfo.Stream.Length);
    }
    taskbarButtons.Add(thumbbarButton);

    disponible à l'adresse suivante :
    https://github.com/Giorgi/Silverligh...inPage.xaml.cs

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 73
    Points
    73
    Par défaut Bingo
    Bingo ! J'ai trouvé (un peu par hasard) il faut utiliser BeginUpdate..EndUpdate

    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
    procedure TmainForm.ajouteTaskBar;
    var taskBtn:TThumbBarButton;
    begin
      if assigned(_taskBar1) then exit;
      _taskBar1:=TTaskbar.Create(self);
      if not assigned(_taskBar1) then exit;
      _taskBar1.TaskBarButtons.BEGINUPDATE //INDISPENSABLE
      taskBtn:=_taskBar1.TaskBarButtons.Add; //PLUS D'EXCEPTION !!!
      if assigned(taskBtn) then
      with taskBtn do
      begin
        Action:=actStopScript;
      end;
      _taskBar1.TaskBarButtons.ENDUPDATE//INDISPENSABLE
    end;

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

Discussions similaires

  1. Création dynamique TADOConnection
    Par chaours dans le forum Bases de données
    Réponses: 6
    Dernier message: 19/04/2004, 11h54
  2. [D7] Création dynamique de Form
    Par jer64 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/08/2003, 13h20
  3. [Rave Report] problème de création dynamique
    Par Nivux dans le forum Rave
    Réponses: 2
    Dernier message: 24/05/2003, 01h07
  4. TWebBrowser et création dynamique
    Par BakaOnigiri dans le forum Web & réseau
    Réponses: 2
    Dernier message: 01/09/2002, 11h53
  5. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 13h36

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