Bonjour,
Je veux crée une classe dérivée de TBitBtn avec :
TNumGlyphs = 1..12;
dans la classe de base TBitBtn est TNumGlyphs = 1..4;
Comment faire SVP ?
Bonjour,
Je veux crée une classe dérivée de TBitBtn avec :
TNumGlyphs = 1..12;
dans la classe de base TBitBtn est TNumGlyphs = 1..4;
Comment faire SVP ?
il faut que redefinisseTNumGlyphs, TBitBtnEx et un TButtonGlyphEx
Faut savoir que 1..4 selon les options de compilation pourra être restrictif à 1, 2, 3 ou 4 ou permissif à toutes valeurs entières ...
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 type TNumGlyphs = 1..12; TButtonGlyphEx = class(TButtonGlyph) public property NumGlyphs: TNumGlyphs read FNumGlyphs write SetNumGlyphs; end; TBitBtnEx = class(TBitBtn) private function GetNumGlyphs: TNumGlyphs; procedure SetNumGlyphs(Value: TNumGlyphs); published property NumGlyphs: TNumGlyphs read GetNumGlyphs write SetNumGlyphs default 1; end;cela masquera complètement l'ancienne propriété
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 function TBitBtnEx.GetNumGlyphs: TNumGlyphs; begin Result := TButtonGlyph(FGlyph).NumGlyphs; end; procedure TBitBtnEx.SetNumGlyphs(Value: TNumGlyphs); begin if Value < 0 then Value := 1 else if Value > 12 then Value := 12; if Value <> TButtonGlyphEx(FGlyph).NumGlyphs then begin TButtonGlyphEx(FGlyph).NumGlyphs := Value; Invalidate; end; end;
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
salut
tu veut faire un bouton a douze états différents ?
je ne voit qu'une solution réécrire l'implémentation d'un bouton
@+ Phil
[EDIT] La proposition de modification du numglyph ne fonctionnera pas
le dessin du bitmap étant dépendant de l'état du bouton
[bsUp, bsDisabled, bsDown, bsExclusive]
@+ Phil
Le compilateur m'affiche :
Identificateur non déclaré TButtonGlyph
malgré que l'unité Buttons est dans la clause uses.
salut
a dériver les "class" mais il faut correctement choisir la "class" de base
en l'occurrence pour moi le bitbtn ou le speedbutton ne font pas partie du bon choix
le dessin de ces objet sont dépendant de leur états et pas du nombre de glyph
installé
@+ Phil
[edit] remplace TButtonGlyph par TButtonGlyphEx
Tout a fait normal, c'est une classe interne à l'unité Buttons, et il faut soit la refaire complètement, soit écrire un code organisé différemment dans ton TBitBtnEx
Sinon comme anapurna, 12 états, je trouve cela aussi très étrange, ça ne serait pas plus simple un BitBtn et une ImageList avec un peu de code autour ... ce n'est pas un bouton que tu vas utiliser partout ...
Bonne remarque pour (bsUp, bsDisabled, bsDown, bsExclusive), si l'on regarde bien c'est le TButtonGlyph qui le gère et non le TBitBtn, il faudrait donc avoir une autre énumération, ...
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