Démarrer une application dans le systray

Résolu
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009 - 12 sept. 2006 à 21:37
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009 - 17 sept. 2006 à 22:50
Bonjour à tous.

J'écris une application qui doit pouvoir démarrer dans la barre des tâches.
Pour ça j'utilise la JVCL, mais je ne parviens pas tout à fait à ce que je voudrais .

- Quand je démarre en plein écran, et que je veux réduire ma fenêtre dans le systray, tout marche normalement
- Quand je veux démarrer cette appli directement dans le systay, ça ne fontionnne pas

Dans le deuxième cas, j'appel la fontion qui marche bien dans le premier cas à l'aide de l'evenement OnCreate de la form. La fenêtre s'affiche alors qu'elle ne devrait pas, et j'ai en plus une icône dans la barre des tâches (qui ne devrait pas non plus y être ).

Je sais qu'il y a un ordre logique lors de la création d'une fenêtre en Delphi : d'abord Create, puis Show. Enfin je suppose ...
J'ai pas réussi à retrouver ça dans mon bouquin Delphi, mais je me demande quand même si le problème ne viens pas de là

Voilà

8 réponses

John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
14 sept. 2006 à 23:20
C'est bon, j'ai trouvé !
Dans l'evenement OnShow de la forme principale, il fallait rajouter :

if DemarrageReduit then
ReduireApps;

Vala, c'etait tout simple en fait :)
3
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 7
13 sept. 2006 à 12:06
c vrai que ca vient peut etre de la.
par exemple, si tu surcharge le create de ta form, le parent n'est pas encore affecté, alors que si tu implemente le OnCreate, il l'est. enfin il me semble.
je connais pas l'ordre d'appel des differents evenement, mais un moyen simple de le connaitre est de tous les implementer avec un message. Par exemple

procedure MaForm.FormCreate(...);
begin
  showMessage('FormCreate');
end;

procedure MaForm.FormShow(...);

begin

  showMessage('FormShow');

end;

...
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
13 sept. 2006 à 12:18
Salut,


dans le DPR mettre :


Application.ShowMainForm := False;

@+
Cirec
0
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
13 sept. 2006 à 17:48
Ta méthode ne marche pas cirec
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 7
14 sept. 2006 à 00:14
et si tu met la propriete WindowState de ta form à wsMinimized?
0
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
14 sept. 2006 à 21:57
Faut pas s'enerver ...

La méthode ne marche pas, je dis la tienne parce que c'est toi qui me la suggeré, c'est tout. J'ai esssayé plusieurs fois, et ça ne change rien du tout :s

Ensuite j'utilise un compo parce que c'est bien plus simple (c'est le but d'un compo non ?), et qu'il me permet de faire des choses que je ne saurais pas faire autrement (affichage de balloon par exemple).

Pour finir la source de Verty est très bien mais j'ai pas vu de traces de ce que je cherche dedans (la source fait 1880 lignes en même temps).
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
15 sept. 2006 à 09:48
je ne suis pas énervé (la preuve )
effectivement l'exemple est noyé dans la source de Verty
mais ce n'est pas insurmontable et l'affichage de "Balloon" est aussi dans cette source

tu dis que tu n'as rien trouvé dans la source ... pourtant les noms de procédures sont explicites :
AjouteSysTrayIcone;
AfficheBulleTips;
SupprimeSysTrayIcone;

@+
Cirec
0
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
17 sept. 2006 à 22:50
Pardon d'insister, mais le code auquel tu me renvoie ne contient absolument rien de ce que tu dit
Tu te serais pas tromper de source par hasard ?
0