Pour que la form ne se cache pas sous barre de tache [Résolu]

Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
25 février 2007
- - Dernière réponse : ThWilliam
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
- 12 févr. 2007 à 13:05
Bonsoir,
J'ai un truc c'est que quand je lance le projet... puis dans la form je peux choisir la position de ma form (en bas a gauche ou droite ou en haut a gauche ou droite)
Mais quand je met ma form en bas (gauche ou droite), la form se cache un peu. sous la barre de tache...
Comment c'est possible pour faire que la form ne se cache pas... ??
Merci

Le code:
    Case Tag of {et on change la position}
      0 : Begin  // Bottom Right
            Self.Left := Left + (Width - Self.Width);
            Self.Top  := Top + (Height - Self.Height);
      End;
      1 : Begin  // Bottom Left
            Self.Left := Left;
            Self.Top  := Top + (Height - Self.Height);
      End;
      2 : Begin   // Top Right
            Self.Left := Left + (Width - Self.Width);
            Self.Top  := Top;
      End;
      3 : Begin  // Top Left
            Self.Left := Left;
            Self.Top  := Top;
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
3
Merci
Salut,

Screen.Height renvoie la hauteur de l'écran en pixels, de laquelle tu décomptes les pixels pris par la barre des tâches (+- 30)
Cette valeur moins la hauteur de ta form te donne le point Top à ne pas dépasser.
Form1.Top:= Screen.Height - Form1.Height - 30;
Idéalement, il faudrait une fonction Windows pour connaître la hauteur de la barre des tâches, mais là je ne peux pas t'aider.

A +
Thierry

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de ThWilliam
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
25 février 2007
0
Merci
Merci beaucoup
Commenter la réponse de cocowz
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
0
Merci
Bonsoir,

Pour récupérer la hauteur de la barre des tâches, rien de bien compliqué :

function HauteurBarreDeTache : integer ;
var
  hBarreDeTache : HWND  ;
  R             : TRect ;
begin
  Result := -1 ;
  // Recherche de la fenêtre dont le nom de classe est "Shell_TrayWnd"
  //  qui n'est autre que le nom de la barre des tâches.
  hBarreDeTache := FindWindow( 'Shell_TrayWnd', '' ) ;
  if ( hBarreDeTache <> 0 ) then
  begin
    // Récupération du rectangle représentant la totalité de la barre des tâches
    GetWindowRect( hBarreDeTache, R ) ;
    // Bottom - Top car le 0 se trouve en haut de l'écran
    Result := R.Bottom - R.Top;
  end ;
end ;

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
Commenter la réponse de WhiteHippo
Messages postés
900
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
30 juillet 2009
0
Merci
salut,

je viens juste mettre mon grain de sel:

Delphi help:
Screen.WorkAreaRect

Use WorkAreaRect to determine the coordinates of the usable space on the primary monitor. The usable work space is the surface of the primary monitor with the space occupied by the task bar and any tool bars subtracted off.

cad, partie utile de l'écran princicpal. (sans task bar et autres.)

bon code,

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Commenter la réponse de cs_Loda
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Dernière intervention
18 novembre 2010
0
Merci
Loda, trop rapide pour moi, j'allais le dire !
Commenter la réponse de JulioDelphi
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
0
Merci
Comme quoi, répondre à quelqu'un permet d'enrichir ses propres connaissances !
Merci WhiteHippo, Loda... et JulioDelphi (malgré sa lenteur...lol).

A +
Thierry
Commenter la réponse de ThWilliam
Messages postés
900
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
30 juillet 2009
0
Merci
hehe, lundi matin. fatigué ;o)

A+

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Commenter la réponse de cs_Loda
Messages postés
900
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
30 juillet 2009
0
Merci
PS:

je sais pas si ça vas t'aider, mais regarde aussi TCustomForm.ScreenSnap et SnapBuffer (j'ai "découvert" ça un jour que je lisais le forum)

bon code,

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Commenter la réponse de cs_Loda
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
0
Merci
@ Loda : je viens de tester ScreenSnap, cela donne un effet "aimant" un peu comme les prog de mise en page, mais cela n'interdit pas de "sortir de l'écran" si tu continues le déplacement de la form.

A +
Thierry 
Commenter la réponse de ThWilliam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.