Guidance
指路人
g.yi.org
software / rapidq / Examples / QObject / QTButton / QTBUTTON.HTM

Register 
注册
Search 搜索
首页 
Home Home
Software
Upload

  
Appendix A: QTBUTTON
Rapid-Q Documentation par/by d-evolution (c)2004 - 2005 Appendix A: QTBUTTON


Composante QTBUTTON Component

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.

Ordre des images / images order
1 2 3 4

1. Normal
2. Désactivé / Disabled
3. Enfoncé / Pushed
4. Survollé / Hover   (New!)


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.
Propriétés de QTButton Properties
Champs/
Field
Type L/E
R/W
Défaut/
Default
Supporte/
Support





Align ENTIER / INTEGER LE / RW alNone W
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 :
.Caption = "Ceci est " +chr$(10) +_
           "un bouton " +chr$(10) +_
           "multi-lignes."
Color ENTIER / INTEGER LE / RW X
Cursor ENTIER / INTEGER LE / RW crDefault W
Default ENTIER / INTEGER LE / RW False W
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.
DownENTIER / INTEGERLE / RWFalseW
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
FlickeringTrickENTIER / INTEGERLE / RWFalseW
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.

Options :
- xpt_PushBtn
- xpt_ToolBarBtn
- xpt_TabBtn
Visible ENTIER / INTEGER LE / RW True WXG

Méthodes de QTButton Methods
Méthode/
Method
Type Description Paramètres/
Params
Supporte/
Support





StartDrag SUB Permet de déplacer la bouton
Allows Button to be dragged
0 W
ReDraw SUB Redessine le bouton
ReDraw button
0 W

Événements de QTButton Events
Événement/
Event
Type Survient lorsque.../
Occurs when...
Paramètres/
Params
Supporte/
Support





OnClick VOID 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
4 WXG

Options avancés de QTButton Advanced Options
Options générals affectant tous les boutons.
btn_BMP
$REsource btn_BMP As "_RES\bitmap.bmp"
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.




Examples pour QTButton Examples (Copier et coller dans un nouveau projet/Copy and Paste in a new project)
Example 1 : (Actualisez la page pour restaurer le texte/To restore text simply Refresh the page)
Example 2 : (Actualisez la page pour restaurer le texte/To restore text simply Refresh the page)

Prev Component Contents Next Component
掌柜推荐
 
 
 
 
 
 
 
 
 
 
 
 
© Thu 2023-2-2  Guidance Laboratory Inc.
Email:webmaster1g.yi.org Hits:0 Last modified:2013-06-19 07:50:35