comment alligner le caption d'une Form à doitemerci d'avance
comment alligner le caption d'une Form à doitemerci d'avance
yop
via:
en vérifiant d'avoir:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 label1.Alignment:=taRightJustify;
la propriété de label1.AutoSize égale à false
++
Bonjour à toutes et à tous,
@ f-k-z, c'est le caption du Tform qui doit être aligné sur la droite et non celui d'un Tlabel.
@ sky88, as tu pensé que ta forme donc "le caption", peut être influencée avec le thème qui se trouve sur les différents PC ou avec des skins.
Sinon : form1.Caption := ' espace espace.......... Mon application';
A creuser.
@+,
Cincap
@ Sky88, voici une méthode :
Le caption de ta forme est toujours actif, il suffit de ne mettre aucune valeur pour ne voir que l'affichage de ton caption à droite.
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
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 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Déclarations privées } procedure WMNCPaint(var Msg: TWMNCPaint) ; message WM_NCPAINT; procedure WMNCACTIVATE(var Msg: TWMNCActivate) ; message WM_NCACTIVATE; procedure DrawCaptionText() ; public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.DrawCaptionText; const captionText = 'Mon application'; var canvas: TCanvas; begin canvas := TCanvas.Create; try canvas.Handle := GetWindowDC(Self.Handle) ; with canvas do begin Brush.Style := bsClear; Font.Color := clWhite ; Font.Style := [fsBold]; Font.Name := 'MS sans Serif'; TextOut(Self.Width - 250, 10, captionText) ; // -250 = alignement à droite, 10 = centrage sur la barre de titre end; finally ReleaseDC(Self.Handle, canvas.Handle) ; canvas.Free; end; end; procedure TForm1.WMNCACTIVATE(var Msg: TWMNCActivate) ; begin inherited; DrawCaptionText; end; procedure TForm1.WMNCPaint(var Msg: TWMNCPaint) ; begin inherited; DrawCaptionText; end; end.
@+,
Cincap
@ Sky88, une autre façon de faire :
Pour changer l'alignement par rapport à droite et au centre, il faut changer les valeurs :
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
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 type TForm1 = class(TForm) private { Déclarations privées } procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT; public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMNCPaint(var Msg: TWMNCPaint); var ACanvas : TCanvas; TheRect: TRect; begin inherited; ACanvas := TCanvas.Create; try ACanvas.Handle := GetWindowDC(Form1.Handle); with ACanvas do begin Brush.Color := clActiveCaption; Font.Name := 'Tahoma'; Font.Size := 8; Font.Color := clred; Font.Style := [fsItalic, fsBold]; TextOut(Self.Width -260 + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER), Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height))/2) +4,'Mon application'); end; finally ReleaseDC(Form1.Handle, ACanvas.Handle); ACanvas.Free; end; end;
TextOut(Self.Width -260 + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER),
Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height))/2) +4,'Mon application');
Car -260 correspond au texte 'Mon application' et +4 au centre de ma barre de titre avec un thème Windows.
@+,
Cincap
Bonjour,
En cherchant une méthode pour changer le font du caption d'une Form, je suis tombé sur cet article intéressant. J'ai essayé la solution proposée en modifiant le font.style par exemple, mais je n'ai pas l'impression que le caption soit modifié ?! Avez vous une idée ?
Sinon, il y a un autre exemple ici :
http://www.scalabium.com/faq/dct0059.htm
Merci beaucoup par avance,
VR
PS: OS=Vista, VB6
@ villerose_ws, ceci fonctionne sur Vista malgré le Thême.
@+,
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
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 type TForm1 = class(TForm) private { Déclarations privées } procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT; public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMNCPaint(var Msg: TWMNCPaint); var ACanvas : TCanvas; TheRect: TRect; begin inherited; ACanvas := TCanvas.Create; try ACanvas.Handle := GetWindowDC(Form1.Handle); with ACanvas do begin Brush.Color := clActiveCaption; Font.Name := 'Tahoma'; Font.Size := 8; Font.Color := clred; Font.Style := [fsItalic, fsBold]; TextOut(Self.Width -260 + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER), Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height))/2) +4,'Mon application'); end; finally ReleaseDC(Form1.Handle, ACanvas.Handle); ACanvas.Free; end; end; end.
Cincap
merci cincap pour la réponse
mais je viens de ressayer...ça ne marche pas
est-ce qu'il y a des properties/options à modifier ?!
VR
PS/: Ah en effet, ça marche si dans "Paramètres de l'apparence\Modèle de couleurs", on choisit "Windows Vista Basic" comme modèle
Partager