Bonsoir!
J'aimerai savoir s'il y a moyen d'orienter HORIZONTALEMENT les titres de pages d'un TPageControl qui a son TabPosition à tpLeft ?
Merci !
Bonsoir!
J'aimerai savoir s'il y a moyen d'orienter HORIZONTALEMENT les titres de pages d'un TPageControl qui a son TabPosition à tpLeft ?
Merci !
Faut redessiner le texte, c'est l'orientation voir lfEscapement et lfOrientation
https://www.developpez.net/forums/d1...l/#post6516335
Après tout c'est l'inverse, on veut généralement écrire verticalement quand c'est horizontal, tu veux juste l'inverse, faut trouver l'angle approprié
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Je n'ai jamais travaillé avec C++...
j'ai essayé de convertir le code en Delphi, mais il reste quelques modifications
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 Var OldMode : integer; OldFontHandle, NewFontHandle : HGDIOBJ; ParamFont : LOGFONT; begin if (GetObject(Control->Canvas->Font->Handle, sizeof(ParamFont), &ParamFont) > 0) then begin OldMode := SetGraphicsMode(Control->Canvas->Handle, GM_ADVANCED); try if (GetGraphicsMode(Control->Canvas->Handle) = GM_ADVANCED) then begin ParamFont.lfEscapement := -450; // tenths of degrees, angle of Text ParamFont.lfOrientation := 450; // tenths of degrees, angle of Letters end else ParamFont.lfEscapement := -450; // tenths of degrees, angle of Text and Letters NewFontHandle := CreateFontIndirect(&ParamFont); try OldFontHandle := SelectObject(Control->Canvas->Handle, NewFontHandle); try DrawText(Control->Canvas->Handle, ((TTabControl*)Control)->Tabs->Strings[TabIndex].c_str(), -1, (LPRECT)&Rect, 0); finally SelectObject(Control->Canvas->Handle, OldFontHandle); end; finally DeleteObject(NewFontHandle); end; finally SetGraphicsMode(Control->Canvas->Handle, OldMode); end; end; end;
-> c'est . .
& c'est @ ou rien selon le cas .
(Class*)Objc'est Class(Obj) .
Sinon, j'ai aussi ces codes :
Quel style est utilisé pour les onglets ? redessin complet d'un onglet style corrigé un bug de XE2 pour la gestion de l'ImageIndex voir AngleTextOut
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Rebonjour !
j'étais tellement occupé, je viens d'avoir le temps de lire votre réponse...
Je continue avec la conversion;
je compte m'assurer d'abord de son bon fonctionnement,
avant d'apporter les modifications nécessaires par rapport à mon besoin:
prière de m'indiquer ce qu'il faut modifier au niveau de la ligne DrawText.
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 Var OldMode : integer; OldFontHandle, NewFontHandle : HGDIOBJ; ParamFont : LOGFONT; begin if (GetObject(Control.Canvas.Font.Handle, sizeof(ParamFont), @ParamFont) > 0) then begin OldMode := SetGraphicsMode(Control.Canvas.Handle, GM_ADVANCED); try if (GetGraphicsMode(Control.Canvas.Handle) = GM_ADVANCED) then begin ParamFont.lfEscapement := -450; // tenths of degrees, angle of Text ParamFont.lfOrientation := 450; // tenths of degrees, angle of Letters end else ParamFont.lfEscapement := -450; // tenths of degrees, angle of Text and Letters NewFontHandle := CreateFontIndirect(ParamFont); try OldFontHandle := SelectObject(Control.Canvas.Handle, NewFontHandle); try DrawText(Control.Canvas.Handle, (TTabControl(Control).Tabs.Strings[TabIndex].str(), -1, (LPRECT)@Rect, 0); finally SelectObject(Control.Canvas.Handle, OldFontHandle); end; finally DeleteObject(NewFontHandle); end; finally SetGraphicsMode(Control.Canvas.Handle, OldMode); end; end; end;
et aussi de vérifier s'il n ya pas d'erreurs concernant Begin..End, Try..Finally par rapport aux acclolades de C++.
Merci.
Je suis reparti de la version C++
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part DrawText(Control->Canvas->Handle, ((TTabControl*)Control)->Tabs->Strings[TabIndex].c_str(), -1, (LPRECT)&Rect, 0);
vers la version Delphi
Code : Sélectionner tout - Visualiser dans une fenêtre à part DrawText(Control.Canvas.Handle, PChar(TTabControl(Control).Tabs.Strings[TabIndex]), -1, Rect, 0);
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Partager