1 pièce(s) jointe(s)
Problème sur la position des Panels en haut de l'écran
Bonjour,
Je voudrais créer 4 panels dont 3 sont affichés en haut de l'écran (Avec AlTop) et un bouton qui permet de visualiser le dernier panel (Panel 4).
Mais je voudrais que le quatrième panel s'affiche en dessous des 3 autres.
Puis ensuite, comment changer l'ordre des panels ?
Exemple : (dans l'ordre)
panel2
Panel1
panel3
panel4
//--
Merci
Bonne journée
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
procedure TForm1.FormCreate(Sender: TObject);
begin
CreationPanel(Sender);
end;
Procedure TForm1.Sbn1Click(Sender: TObject);
begin
Pnl4.Visible:=true;
end;
Procedure CreationPanel(Sender: TObject);
Const
Hauteur = 40;
begin
With Form1 do begin
//-------------------------------------------------------------- Panel 4
Pnl4:=Tpanel.Create(Form1);
With Pnl4 do begin
Parent:=Form1;
Name:='Pnl4';
Caption:='Panel 4';
height:=Hauteur;
Align:=alTop;
Visible:=false;
Color:=ClDefault;
end;
//-------------------------------------------------------------- Panel 3
Pnl3:=Tpanel.Create(Form1);
With Pnl3 do begin
Parent:=Form1;
Name:='Pnl3';
Caption:='Panel 3';
height:=Hauteur;
Align:=alTop;
Visible:=false;
Color:=ClDefault;
end;
//-------------------------------------------------------------- Panel 2
Pnl2:=Tpanel.Create(Form1);
With Pnl2 do begin
Parent:=Form1;
Name:='Pnl2';
Caption:='Panel 2';
height:=Hauteur;
Align:=alTop;
Visible:=false;
Color:=ClDefault;
end;
//-------------------------------------------------------------- Panel 1
Pnl1:=Tpanel.Create(Form1);
With Pnl1 do begin
Parent:=Form1;
Name:='Pnl1';
Caption:='Panel 1';
height:=Hauteur;
Align:=alTop;
Visible:=false;
Color:=ClDefault;
end;
//--------------------------------------- Bouton d'activation du panel 4
Sbn1:=TSpeedButton.Create(Pnl1);
With Sbn1 do begin
Parent:=Pnl1;
Name:='Sbn1';
Caption:='Pnl 4';
height:=28;
width :=34;
NumGlyphs:=0;
Top:=1;
Hint:='Activation Panel 4';
ShowHint:=true;
visible:=true;
enabled:=true;
OnClick:=@Sbn1Click;
end;
end;
PositionnePanel(Sender);
end;
Procedure PositionnePanel(Sender: TObject);
begin
With Form1 do begin
Pnl1.Visible:=true;
Pnl2.Visible:=true;
Pnl3.Visible:=true;
end;
end; |
Problème sur la position des Panels en haut de l'écran
Bonjour,
en fait, le moyen simple ne fonctionne pas non plus.
car le panel 4, créé en premier pour être en position la plus basse, se retrouve juste en dessous de la barre la plus haute, lorsqu'il est activé par le bouton.
pour la 2ième question, ce serait par code, mais rien n'empêcherait de le déplacer avec la souris.
bonne journée
Problème sur la position des Panels en haut de l'écran
Bonjour,
la solution avec la propriété Top ne fonctionne pas.
j'ai donc fini par les positionner manuellement.
----
Pour ce qui est des questions posées dans le dernier message.
Citation:
Un truc que je ne comprend pas pourquoi utiliser une unité intermédiaire "unit2" ?
Le programme est assez important et j'ai choisi de traiter la partie IHM dans une unité annexe (UntIHM).
Citation:
De plus déclarer ta méthode "positionpanel" forward, ne sert vraiment à rien.
Toutes les fonction sont déclarées --> c'est plus facile d'en retrouver une particulière.
Citation:
Autre chose ton "with form1 do" dans "creationpanel" est inapproprié
Pourquoi est-ce inapproprié ?
Quelle serait la bonne méthode à partir du moment ou le code est dans une autre unité que l'unité où se trouve la fenêtre ?
----
Bonne journée et merci pour le temps que vous passez à nous aider.