Version actuelle/Current version : 0.92C MàJ/Updated : 15/1/2005
Créé pour Windows seulement/Created for Windows only
QTButton est un contrôle hérité de QButton, d'où Q(True)Button, avec la possibilité de placer une enjolivure (un skin) en fond. Pour commencer, créez une resource "btn_BMP" contenant l'image bitmap qui sera l'enjolivure de tous les QTButtons.
QTButton is an herited QButton with skinning capability. First create a bitmap resource named "btn_BMP", this will be the default skin for all QTButtons you defined.
Example :
$REsource btn_BMP As "_RES\Boutons.bmp"
*(remplacer la partie en vert, le reste ne doit pas être modifié /
modify the green part, it should point to an existing bitmap)
Note IMPORTANTE sur l'utilisation de fichier BMP sous Win9x :
L'utilisation de certains fichiers BMP peut geler l'écran. Ouvrir l'image dans Internet Explorer et l'enregistrer à nouveau va résoudre ce problème. Vous remarquerez alors que l'image n'a plus la même taille sur le disque dur. De son côté XP semble moins irrité par ce léger problème, néanmoin après plusieurs exécutions de l'application un message Resource insuffisante peut apparaître et peut aller jusqu'à geler le système complètement.
RapidQ semble avoir un problème avec l'information supplémentaire contenue dans certaines images bitmap.
Fonctionel / Passed
Corrigé / Fixed
Acceptable / Partialy working
Ne pas utiliser / Don't use
Commencez par créer une image bitmap contenant les images, alignées horizontalement, représentant vos boutons. First create a bitmap picture containing all the pictures, in a horizontal row, that will represent your buttons.
QTButton supporte jusqu'à quatres effets, mais vous pouvez n'intégrer que le nombre qui vous plaît, tant qu'ils respectent l'ordre d'affichage. Ainsi vous pouvez n'avoir qu'un seul effet, deux effets, ainsi de suite.
QTButton support up to four fx, but you can add only the number you need, has long they respect the display order. So you may have only one effect, two effects and so on.
Align détermine la façon dont le contrôle s'aligne à l'intérieur de son contrôle parent. Align determines how the control aligns
within its parent control.
BMP
STRING
--
W
BMP est utilisé en interne par QTButton pour créer l'enjolivure. Vous risquez d'obtenir d'étrange résultat si vous l'ajoutez à votre code. Pour remédier à se problème .BMP doit être le premier champs déclaré ou essayez plutôt d'utiliser ICOBMP.BMP si vous désirez insèrer une petite image à côté du texte.
BMP is currently used internally by QTButton for drawing skin and shouldn't be used in your code. Instead try using ICOBMP.BMP if you want to put a little picture near the caption.
Use BMP to assign a new bitmap file, or to
use BMP in a draw statement. Examples:
DIM button AS
QBUTTON button.BMP = "whatever.bmp"
Ajouter une image en contournant l'enjolivure /
Add picture w/o destroying the skin La bonne façon / The Good Way :
DIM TButton1 AS QTBUTTON
TButton1.BMP = "whatever.bmp"
TButton1.Parent = Form
TButton1.Left = 8
...
    ou/or
CREATE Button1 AS QTBUTTON
    BMP = "whatever.bmp"
    Left = 8
    ...
END CREATE
    ou/or
CREATE Button1 AS QTBUTTON
    ICOBMP.BMP = "whatever.bmp"
    Left = 8
    ...
END CREATE
    ou/or
Appeler Redraw juste après avoir ajoutée l'image /
Call Redraw once new BMP value set
Details: You can hold multiple images
on a single bitmap, but they must be of the same size and next to each
other in a horizontal row. The "first" bitmap appears when the button
is up. The "second" bitmap appears when the button disabled. The
"third" bitmap appears when the button is down (clicked). You have to
tell Rapid-Q how many images are in your bitmap by assigning the number to
NumBMPs.
BMPHandle
RESOURCE
--
W
Comme BMP, BMPHandle est utilisé en interne par QTButton pour créer l'enjolivure. Vous risquez d'obtenir d'étrange résultat si vous l'ajoutez à votre code. Pour remédier à se problème .BMPHandle doit être le premier champs déclaré ou essayez plutôt d'utiliser ICOBMP.BMPHandle si vous désirez insèrer une petite image à côté du texte.
Like BMP, BMPHandle is currently used internally by QTButton for drawing skin and shouldn't be used in your code. Instead try using ICOBMP.BMPHandle if you want to put a little picture near the caption.
Assign a BMP resource handle to appear on
the selected button. Example:
$RESOURCE game_BMP AS
"game.bmp" DIM button AS QTBUTTON button.bmpHandle = game_BMP
Ajouter une image en contournant l'enjolivure /
Add picture w/o destroying the skin La bonne façon / The Good Way :
'Voir l'astuce dans BMP /
'See the trick in BMP
Détails / Details:
Voir BMP / See BMP
Cancel
ENTIER / INTEGER
LE / RW
False
W
Si Cancel est True, l'événement OnClique attaché au button est éxécuté lorsque l'utilisteur appuie sur la touche Échappe.
If Cancel is True, the button's OnClick event handler executes when the user presses the Escape key.
Caption
STRING
LE / RW
WXG
Caption spécifie le texte qui apparaît sur le bouton. Pour souligner une lettre, inclure (&) devant la lettre.
Caption specifies the text that appears on the button. To underline a character, include an ampersand (&) symbol
before the character.
Multi-Lignes / Multi-Lines
Pour créer un effet multi-lignes, ajoutez chr$(10) ou \n entre les mots où vous voulez créer l'effet.
To create a multi-lines button, insert chr$(10) or \n where you want to create that effect. Example :
Si Default est True, l'événement OnClique attaché au button est éxécuté lorsque l'utilisteur appuie sur la touche Entrée.
If Default is True, the button's OnClick event handler executes when the user presses the Enter key.
Down
ENTIER / INTEGER
LE / RW
False
W
Down définie si le btn est sélectionné (enfoncé) ou normal.
Down specifies whether the button is selected (down) or unselected (up).
Note : GroupIndex doit être supérieur à 0.
Enabled
ENTIER / INTEGER
LE / RW
True
WXG
FlickeringTrick
ENTIER / INTEGER
LE / RW
False
W
FlickeringTrick masque la partie 3D du btn sous l'image, ce qui peut aider à prévenir le scintillement, sourtout visible lorsque l'enjolivure n'est pas de forme rectangulaire, lorsque la souris entre ou sort du btn. Le btn aura aussi l'air plus petit.
FlickeringTrick mask the 3D part of the btn, this could help resolve the flickering that may occur momently when the mouse enter or leave the btn. Btn will also look smaller.
Font
QFONT
E / W
W
GroupIndex
ENTIER / INTEGER
LE / RW
0
WXG
GroupIndex permet à plusieurs boutons de coopérer en groupe. Si GroupIndex est 0, le bouton réagis independemment de tous les autres boutons.
GroupIndex allows buttons to work together as a group. If GroupIndex is 0, the button behaves independently of all other buttons.
Handle
ENTIER / INTEGER
E / R
W
Height
ENTIER / INTEGER
LE / RW
WXG
Hint
STRING
LE / RW
WXG
Kind
ENTIER / INTEGER
LE / RW
bkCustom
W
Layout
ENTIER / INTEGER
--
blBMPLeft
W
Layout détermine où sera affiché l'image bitmap sur le bouton. /
Layout determines where the bitmap image
appears on the button.
0 = blBMPLeft -- l'image apparaît à gauche du texte / image appears at the left side
of the caption
1 = blBMPRight -- l'image apparaît à droite du texte / image appears at the right side of the
caption
2 = blBMPTop -- l'image apparaît au dessus du texte / image appears above the caption
3 = blBMPBottom -- l'image apparaît sous le texte / image appears below the caption
Left
ENTIER / INTEGER
LE / RW
0
WXG
ModalResult
ENTIER / INTEGER
LE / RW
mrNone
W
NumBMPs
ENTIER / INTEGER
LE / RW
W
NumBMPs a été redéfinie pour déterminer le nombre d'image inclut dans l'image du bouton (l'enjolivure).
NumBMPs has been redefine to determine the number of images
within the bitmap button (the skin).
NumICOBMPs
ENTIER / INTEGER
LE / RW
W
NumICOBMPs détermine le nombre d'image inclut dans l'image icône qui sera placée juste à côté du texte du bouton.
NumICOBMPs determines the number of images
within the icon bitmap that will be draw near the button caption.
Parent
QFORM/QPANEL/QTABCONTROL
LE / W
WXG
PopupMenu
QPOPUPMENU
E / W
W
ShowHint
ENTIER / INTEGER
LE / RW
False
WXG
Spacing
ENTIER / INTEGER
--
4
W
Détermine l'espace, en pixels, séparant l'image du texte.
Determines the separation, in pixels,
between the image and the caption.
TabOrder
ENTIER / INTEGER
LE / RW
W
Tag
ENTIER / INTEGER
LE / RW
WXG
Top
ENTIER / INTEGER
LE / RW
0
WXG
Width
ENTIER / INTEGER
LE / RW
WXG
XPThemeEnabled
ENTIER / INTEGER
LE / RW
True
W
Force l'utilisation du Thème en dépie de l'enjolivure choisie.
Force QTButton to use the current deskop XP theme.
XPThemeBtnType
CHAÎNE / STRING
LE / RW
xpt_PushBtn
W
Définie le type de btn à utiliser.
Determine wich btn class will be drawed on QTButton.
L'utilisateur a cliqué sur le bouton User clicked on the button
0
WXG
OnKeyDown
SUB (Key AS Word, Shift AS INTEGER)
Une touche est maintenue enfoncée Key held down
2
W
OnKeyPress
SUB (Key AS BYTE)
L'utilisateur appuie sur une touche User presses a key
1
W
OnKeyUp
SUB (Key AS Word, Shift AS INTEGER)
L'utilisateur relâche une touche User releases a key
2
W
OnMouseDown
SUB (Button%, X%, Y%, Shift%)
Le bouton de la souris est maintenu enfoncé
Mouse button held down
4
WXG
OnMouseMove
SUB (X%, Y%, Shift%)
La souris se déplace
Vous devrez ajouter .InheritOnMouseMove(x,y,shift) dans votre SUB
Mouse moves You should add .InheritOnMouseMove(x,y,shift) in your SUB
3
WXG
OnMouseEnter
SUB (X%, Y%, Shift%, Sender As QTButton)
La souris entre sur le bouton
Mouse moves over the button
3
WXG
OnMouseLeave
SUB (X%, Y%, Shift%, Sender As QTButton)
La souris quitte le bouton
Mouse moves outside the button
3
WXG
OnMouseUp
SUB (Button%, X%, Y%, Shift%)
Le bouton de la souris est relâché
Vous devrez utiliser .InheritOnMouseUp dans le SUB
Mouse button is released You should use .InheritOnMouseUp in your SUB
Resource obligatoir par défaut pour tous les QTButton, contenant l'image du bouton, si elle n'est pas spécifié vous recevrez un messages d'erreur. Il est possible de créer d'autres resources contenant d'autres images de bouton, pour ce, voir l'example plus bas.
QTBtnOptimize = True / *False *(Défaut/Default)
Option visant à optimizer le nombre de fois où le btn sera redessiné lors du chargement de l'application et ainsi accélérer l'ouverture de celui-ci. Il doit être insèrer juste après $include "QTButtonXX.inc" pour que optimisation soit au maximum. Si les btns sont dessinés incorrectement désactivez-le en retirant la ligne QTBtnOptimize ou en ajoutant QTBtnOptimize = False et LeNomDuBtn.ReDraw au chargement pour corriger le problème. Pour évaluer l'optimisation ajoutez la ligne ShowMessage STR$(DrawCount) au chargement de votre fenêtre principale et comparez-le avec et sans l'optimisation.
Note: Vous pouvez aussi utiliser la méthode ReDraw pour forcer le redessinement des btns incorrectement dessinés et ainsi garder une meilleure optimisation.