2010-11-19 4 views
3

J'ai actuellement un projet delphi 7 assis devant moi et ce que les créateurs originaux du logiciel ont fait est utilisé le formulaire principal comme une rampe de lancement pour un autre formulaire qui contient les contrôles réels et la logique derrière le toute l'application. Donc, fondamentalement, form1 charge, est défini sur invisible et une autre forme (la forme avec tous les contrôles et la logique de l'interface utilisateur) est créée et affichée, c'est une façon étrange de faire les choses, mais c'est comme ça. Maintenant, je ne suis pas familier avec la façon dont Delphi 7 gère ses formulaires, mais cette deuxième fenêtre, la fenêtre avec tous les contrôles sur, chaque fois que je clique sur le bouton Réduire, le formulaire ne descend pas à la barre des tâches comme un attendrait, mais plutôt, redimensionne de sorte que seuls les boutons minimiser, agrandir et fermer soient visibles, puis se placer en bas à gauche de l'écran, juste au-dessus du menu Démarrer.Formulaire Delphi Réduire le problème

la création de cette seconde fenêtre est:

frmPlatform := TfrmPlatform.Create(frmMain); 
ModalResult := frmPlatform.ShowModal; 

où frmMain est la forme invisible.

Ma question est, pourquoi la deuxième fenêtre ne minimise pas comme on s'y attendrait et déposer dans la barre des tâches? et comment puis-je faire fonctionner,

grâce

Répondre

0

Je pense que vous trouverez que standard de Delphi apps que la principale forme (premier) sera affiché dans la barre des tâches. Puisque votre formulaire principal est invisible, c'est votre problème. La minimisation est probablement due au fait que la seconde forme est appelée avec show modal plutôt que simplement show.

Pouvez-vous supprimer le premier formulaire ou changer quel formulaire est le formulaire principal? Cela peut être fait à partir de la page des paramètres du projet.

+0

Si vous modifiez la mainform via les options du projet, la nouvelle mainform sera créée par le dpr, ce n'est peut-être pas ce que l'OP souhaite. –

+0

envisageait réellement de faire cela, mais depuis que je viens de commencer à regarder le système aujourd'hui, je ne suis pas encore assez bien informé pour savoir quelles répercussions cela aura sur la ligne. J'espérais donc une solution rapide pour le moment –

+0

@Marjan - Eventuellement, mais la mainform implique qu'elle est créée dans le dpr puisque ce n'est pas la forme principale sinon. –

7

Comportement standard des formulaires J'ai peur que la forme principale soit par défaut le seul formulaire affiché par Delphi dans la barre des tâches. Vous pouvez toutefois définir d'autres formes apparaissent sur la barre des tâches ainsi:

procedure TForm1.CreateParams 
    (var Params: TCreateParams); 
begin 
    inherited CreateParams(Params); 
    Params.ExStyle := Params.ExStyle 
        or WS_EX_APPWINDOW; 
end; 

Et vous pouvez cacher votre principale forme actuelle bien sûr aussi bien, voir: http://delphi.about.com/od/adptips1999/qt/hidefromtaskbar.htm et http://delphi.about.com/od/delphitips2008/qt/hide_taskbutton.htm pour D2007 et plus.