Tutorial RAPIDQ

Transcription

Tutorial RAPIDQ
RAPIDQ
APPRENTISSAGE RAPIDQ
LANGAGE BASIC
1. Guide du langage
1.1. Les directives
Les directives du langage RAPIDQ servent à indiquer des actions que le compilateur
doit effectuer.
$APPTYPE GUI
Indique au compilateur qu’il doit compiler une application Windows
$INCLUDE « RAPIDQ.INC »
Indique au compilateur qu’il doit utiliser le contenu du fichier RAPIDQ.INC pour
compiler le programme. En général, il s’agit de fichiers de constantes. En
l’occurrence, RAPIDQ.INC est le fichier de constantes fourni avec le compilateur
RAPIDQ. On y trouve tout ce qu’il faut pour programmer des boutons, etc. sous
Windows.
$RESOURCE RES_BMP1 AS « CLOUDS.BMP »
Indique au compilateur qu’il faut inclure au programme l’image qui se trouve dans le
fichier CLOUDS.BMP, et de lui donner le nom RES_BMP1 pour pouvoir l’utiliser dans le
programme.
$DEFINE NOMBRE_DE_CASES 64
Indique au compilateur que lorsque le programme utilisera le mot clé
NOMBRE_DE_CASES, il faudra le remplacer par la valeur 64 pour compiler. Ceci permet
de rendre plus compréhensible le programme, parce qu’on donne un nom
compréhensible aux valeurs que le programme utilise.
$UNDEF NOMBRE_DE_CASES
Indique au compilateur qu’il doit enlever la définition précédente appliquée au mot
clé NOMBRE_DE_CASES
$IFDEF NOMBRE_DE_CASES
‘ Si NOMBRE_DE_CASES a été défini
$ELSE
‘ Si NOMBRE_DE_CASES n’a pas été défini
$ENDIF
Indique au compilateur de compiler une partie de code dans le cas où un mot clé est
défini et une autre partie de code si ce mot clé n’est pas défini. C’est très pratique
pour fabriquer un programme qui peut être adapté à plusieurs utilisations : par
exemple, changer facilement le titre d’un programme, ou d’autres idées du même
genre.
-1-
RAPIDQ
$IFNDEF NOMBRE_DE_CASES
‘ Si NOMBRE_DE_CASES n’a pas été défini
$ELSE
‘ Si NOMBRE_DE_CASES a été défini
$ENDIF
Même type d’utilisation que $IFDEF, mais avec la logique inversée.
1.2. Déclaration de variables
La déclaration de variable se fait au moyen de l’instruction suivante :
DIM Nombre AS INTEGER
L’expression ci-dessus déclare la variable « Nombre » en tant qu’entier, c’est-à-dire un
nombre entier entre –2 milliards et +2 milliards. INTEGER s’appelle un type.
De même, on peut déclarer les types suivants :
DIM
DIM
DIM
DIM
DIM
Nombre AS BYTE
Nombre AS WORD
Nombre AS SHORT
Nombre AS Single
Texte AS STRING
=>
=>
=>
=>
=>
Nombre
Nombre
Nombre
Nombre
Chaîne
entier entre 0 et 255
entier entre 0 et 65535
entier entre –32768 et 32767
réel à virgules
de caractères
On peut aussi déclarer des tableaux de données :
DIM Nombre(10) AS INTEGER
=> Tableau de 10 entiers
est le premier nombre du tableau, Nombre(2) est le deuxième nombre du
tableau, etc.
Nombre(1)
1.3. Objets de Windows
La programmation sous Windows avec RAPIDQ est facilitée par l’utilisation d’objets
prêts à l’emploi permettant d’animer les caractéristiques et les objets les plus courants
de l’environnement Windows.
Les principaux objets utilisés sont :
Type
QFORM
QLABEL
QEDIT
QBUTTON
QMAINMENU
Description
Fenêtre de Windows affichant les informations d’un programme.
Texte non modifiable : étiquette d’une donnée, titre, textes divers
affichés en pleine fenêtre
Zone de saisie de texte modifiable : pour entrer une donnée d’un
programme
Bouton : pour effectuer une action dans un programme
Menu principal d’un programme : celui qu’on trouve juste sous
la barre de titre de la fenêtre du programme
-2-
RAPIDQ
Type
QMENUITEM
QLISTBOX
Description
Items de menu secondaires dans un menu : ce sont les choix de
menu que l’on trouve lorsqu’on clique sur un choix du menu
principal ; ces items de menu secondaires sont affichés
verticalement sous le choix du menu principal sur lequel on a
cliqué.
Zone de choix d’un mot ou texte dans une liste de mots ou de
textes
On peut également utiliser de nombreux autres objets, plus complexes :
Type
QCANVAS
QCHECKBOX
QCOMBOBOX
QCOOLBTN
QDIRTREE
QFILELISTBOX
QFONTDIALOG
QGAUGE
QGROUPBOX
QIMAGE
QOPENDIALOG
QOVALBTN
QPOPUPMENU
QRADIOBUTTON
QRICHEDIT
QSAVEDIALOG
Description
Zone rectangulaire dans laquelle le programme peut dessiner ou
écrire
Case à cocher : il s’agit d’un texte avec une case blanche à sa
gauche. Si l’utilisateur clique sur le texte ou la case, la case est
remplie avec une croix, montrant par exemple que l’option
correspondant au texte est sélectionnée
Zone de choix modifiable : l’utilisateur peut choisir un mot ou un
texte parmi ceux affichés en cliquant dessus, et il peut aussi
ajouter un nouveau mot ou texte. Cet objet est utilisé pour
proposer une liste de choix modifiable à l’utilisateur
Bouton spécial permettant des fonctionnalités supplémentaires :
bouton avec image, bouton à position levée/enfoncée ou jeu de
plusieurs boutons liés entre eux (tous se lèvent quand l’un
s’enfonce)
Fenêtre présentant les répertoires, comme sous l’explorateur
Windows
Fenêtre présentant les fichiers, comme sous l’explorateur
Windows
Fenêtre présentant un choix de police de caractères, comme sous
Windows
Barre de progression, allant de 0% à 100% pour indiquer la
progression d’une action longue sous Windows
Zone permettant de grouper différents objets dans une même
zone
Zone permettant d’afficher une image (fichier .bmp)
Fenêtre proposant l’ouverture d’un fichier, comme cela est fait
sous Windows
Bouton de forme ovale
Menu apparaissant là où l’utilisateur a cliqué (exemple de menu
contextuel apparaissant dans Windows sur le bureau lorsqu’on
clique avec le bouton droit)
Bouton de type radio, permettant à l’utilisateur de choisir une
option parmi plusieurs, en cliquant sur des zones de texte
comportant à gauche un rond blanc, rempli d’un point noir pour
l’option choisie
Zone d’édition de texte, avec de nombreuses possibilités
d’édition standard, telles que celles qu’on trouve dans un
traitement de texte
Fenêtre proposant la sauvegarde d’un fichier, comme cela est
fait sous Windows
-3-
RAPIDQ
Type
QSCROLLBAR
QSCROLLBOX
QSTATUSBAR
QTABCONTROL
QTRACKBAR
PRINTER
QBITMAP
QFONT
QMEMORYSTREAM
QSPLITTER
QTIMER
QDXIMAGELIST
QDXSCREEN
QDXSOUND
QDXTIMER
QD3DFACE
Description
Barre de défilement identique à ce qui est fait sous Windows
Fenêtre possédant des barres de défilement verticale et
horizontale
Barre d’état située en général en bas d’une fenêtre, permettant
au programme d’afficher son état et des informations diverses.
On trouve un exemple de barre d’état dans Word ou Excel.
Fenêtre présentée avec des onglets, permettant la sélection de
diverses fonctionnalités
Curseur
Gestionnaire des imprimantes
Gestion des images BMP. Restitution et sauvegarde de ces
images
Spécification d’une police de caractère, pour utilisation dans un
objet de Windows
Allocation de mémoire vive et manipulation
Ligne séparatrice déplaçable à l’intérieur d’une fenêtre
Horloge permettant de lancer une fonction à intervalles réguliers
Stockage d’une liste d’images pour la programmation 3D par
DirectX (pour les jeux vidéo)
Création et gestion d’une fenêtre type DirectX (pour les jeux
vidéo)
Création et gestion d’un environnement DirectSound (pour les
jeux vidéo)
Horloge permettant de lancer une fonction à intervalles réguliers.
Cette horloge est de haute précision et adaptée à
l’environnement DirectX
Mise en œuvre de l’environnement graphique Direct3D avec des
objets constitués de Faces
Les propriétés ou fonctions utilisables pour chaque objet peuvent être utilisées ou
appelées par la syntaxe suivante :
DIM Form AS QFORM
=> Déclare un objet QFORM
Form.Height = 40
Form.Center
Form.ShowModal
=> Définit la hauteur de la fenêtre
=> Indique le centrage de la fenêtre
=> Affiche la fenêtre sous Windows
Autrement dit, on utilise le nom de l’objet suivi d’un point, et suivi lui-même du nom
de la propriété ou de la fonction à utiliser.
1.4. Fonctions et sous-programmes
Le language RAPIDQ permet de définir des fonctions et des sous-programmes.
Un sous-programme est un morceau de code en BASIC qui peut être « appelé » par
un autre morceau de code en BASIC. Ceci est très utile chaque fois qu’un morceau de
code doit être utilisé à plusieurs endroits dans un programme.
Par exemple, si l’on veut écrire un texte changeant dans un bouton, on écrira le sousprogramme ci-dessous :
-4-
RAPIDQ
SUB TexteBouton(Texte AS STRING, Bouton AS QBUTTON)
Bouton.Caption = Texte
END SUB
Et dans le programme principal, on verra les lignes suivantes :
DIM MonBouton AS QBUTTON
…
TexteBouton(« Coucou », MonBouton)
…
TexteBouton(« Bonjour », MonBouton)
Ceci permettra de mettre le texte « Coucou », puis à un autre moment, le texte
« Bonjour » sur le bouton MonBouton.
Une fonction est un morceau de code en BASIC qui peut être « appelé » par un autre
morceau de code en BASIC, et qui peut renvoyer une valeur au programme qui l’a
appelée. On peut par exemple créer une fonction qui fait une somme.
FUNCTION Somme(Nombre1 AS INTEGER, Nombre2 AS INTEGER) AS INTEGER
Somme = Nombre1 + Nombre2
END FUNCTION
Et dans le programme principal, on verra les lignes suivantes :
DIM Nb1, Nb2, Total AS INTEGER
Total = Somme(Nb1, Nb2)
Ceci permet de calculer la somme de Nb1 et de Nb2, et de mettre le résultat dans
Total.
1.5. Eléments de base du langage BASIC de RAPIDQ
1.5.1. Les opérateurs
a) Opérateurs arithmétiques
- Si Chaine est une STRING, alors Chaine[3] représente le 3ème caractère de cette
chaîne de caractères.
- Pour calculer 2 au carré, il faut écrire 2 ^ 2.
- La multiplication se note * : 4 fois 3 s’écrit : 4 * 3.
- La division se note / : 4 divisé par 2 s’écrit : 4 / 2.
- Le reste de la division de 15 par 10 s’écrit : 15 MOD 10.
b) Opérateurs logiques
- Pour tester si a est
IF (a = b) THEN
…
END IF
égal à b, on écrit :
- Pour tester si a est différent de b, on écrit :
-5-
RAPIDQ
IF (a <> b) THEN
…
END IF
- Pour tester si a est inférieur à b, on écrit :
IF (a < b) THEN
…
END IF
- Pour tester si a est supérieur à b, on écrit :
IF (a > b) THEN
…
END IF
- Pour tester si a est inférieur ou égal à b, on écrit :
IF (a <= b) THEN
…
END IF
- Pour tester si a est supérieur ou égal à b, on écrit :
IF (a >= b) THEN
…
END IF
- Pour tester si a est égal à b et c est égal à d, on écrit :
IF ((a = b) AND (c = d)) THEN
…
END IF
- Pour tester si a est égal à b ou c est égal à d, on écrit :
IF ((a = b) OR (c = d)) THEN
…
END IF
1.5.2. Les conditions
On peut écrire plusieurs types d’instructions conditionnelles.
IF (a = b) THEN
‘ Instructions à exécuter si a est égal à b
END IF
IF (a = b) THEN
‘ Instructions à exécuter si a est égal à b
ELSE
‘ Instructions à exécuter si a est différent de b
END IF
IF (a = b) THEN
‘ Instructions à exécuter si a est égal à b
ELSEIF (a < b) THEN
‘ Instructions à exécuter si a est inférieur à b
ELSE
‘ Instructions à exécuter si a est supérieur à b
END IF
On peut également écrire des instructions de sélection d’une variable parmi plusieurs
valeurs :
-6-
RAPIDQ
SELECT CASE a
CASE 0
CASE 1
CASE 2
END SELECT
‘ Instructions à exécuter si a vaut 0
‘ Instructions à exécuter si a vaut 1
‘ Instructions à exécuter si a vaut 2
1.5.3. Boucles
En BASIC de RAPIDQ, on peut décrire des boucles dans un programme.
FOR i = 1 TO 100
‘ Instructions à réaliser pour i entre 1 et 100
NEXT I
On peut écrire une boucle dépendant d’une condition vérifiée par un test.
WHILE (a
‘
‘
‘
WEND
= b)
Instructions à réaliser tant que a = b
Attention, la boucle peut être éternelle
si a n’est jamais égal à b !
2. Mon premier programme
Voici notre premier programme : ce sera une calculatrice.
On commence toujours le programme par la ligne ci-dessous, qui permet à RAPIDQ
de reconnaître les objets de Windows et les mots-clés du langage.
$INCLUDE "RAPIDQ.INC"
Ensuite, on déclare les variables du langage. Ce sont les cases dans lesquelles nous
allons déposer les valeurs des données nécessaires au fonctionnement du
programme.
Nous avons besoin de 2 chaînes de caractères (STRING), Nombre1 et Nombre2, dans
lesquelles nous déposerons les nombres (sous forme de caractères tapés au clavier)
qui seront saisis par l’utilisateur de notre calculatrice.
Nous avons également besoin de 2 entiers (INTEGER), Nb1 et Nb2, dans lesquels nous
déposerons les valeurs correspondant aux 2 chaînes de caractères saisies par
l’utilisateur de la calculatrice. Il faudra donc mettre dans ces variables la conversion
des chaînes de caractères saisies en un nombre correspondant. Par exemple, si
l’utilisateur tape 123, on trouvera dans Nombre1 la chaîne de caractères constituée du
caractère 1, suivi du caractère 2, suivi du caractère 3. Cette chaîne de caractère sera
convertie par le programme ci-dessous en un véritable entier 123. Nous verrons plus
loin comment il faut faire cela.
Nous avons besoin également d’une chaîne où nous déposerons le résultat de
l’opération faite, sous forme de chaîne de caractères. Il s’agit de Resultat (STRING).
Enfin, nous utiliserons également un entier (INTEGER) dans lequel se trouvera le résultat
de l’opération appliquée sur Nb1 et Nb2. Il s’agit de la variable Res.
-7-
RAPIDQ
DIM
DIM
DIM
DIM
DIM
DIM
Nombre1 As String
Nombre2 As String
Resultat As String
Nb1 As Integer
Nb2 As Integer
Res As Integer
Puis le programme doit créer une fenêtre sous Windows, dans laquelle l’utilisateur
pourra saisir les nombres qu’il veut calculer et dans laquelle nous trouverons des
boutons pour les opérations addition, soustraction, multiplication et division. Enfin,
cette fenêtre comportera une zone pour afficher le résultat.
On commence par créer un objet QFORM par l’instruction CREATE ci-dessous.
CREATE Form AS QFORM
Caption = "Calculatrice"
Width = 320
Height = 240
Center
=>
=>
=>
=>
=>
Titre de la fenêtre
Largeur en pixels
Hauteur en pixels
Centrer la fenêtre dans
la fenêtre Windows
Puis on crée une zone de texte dans la fenêtre (QLABEL). Le CREATE de cette zone de
texte est imbriqué dans le CREATE de QFORM, afin de montrer que la zone de texte
appartient à la fenêtre Form que nous avons créée.
CREATE Label1 AS QLABEL
Caption = "Ma Calculatrice moderne"
Left = 77
Top = 5
Width = 132
Height = 21
END CREATE
Puis on crée une zone de titre pour indiquer la case TOTAL.
CREATE Label2 AS QLABEL
Caption = "TOTAL"
Left = 24
Top = 157
Width = 48
END CREATE
On crée alors les zones d’édition (QEDIT) pour les nombres.
CREATE Edit1 AS QEDIT
Text = ""
Left = 17
Top = 49
END CREATE
CREATE Edit2 AS QEDIT
Text = ""
Left = 17
Top = 90
TabOrder = 1
END CREATE
CREATE Edit3 AS QEDIT
Text = ""
Left = 22
Top = 177
TabOrder = 2
END CREATE
Puis on crée les boutons des différentes opérations.
-8-
RAPIDQ
CREATE Button1 AS QBUTTON
Caption = "+"
Left = 208
Top = 43
TabOrder = 3
END CREATE
CREATE Button2 AS QBUTTON
Caption = "--"
Left = 208
Top = 76
TabOrder = 4
END CREATE
CREATE Button3 AS QBUTTON
Caption = "X"
Left = 207
Top = 113
TabOrder = 5
END CREATE
CREATE Button4 AS QBUTTON
Caption = "/"
Left = 208
Top = 153
TabOrder = 6
END CREATE
END CREATE
Les différents objets de notre programme sont créés.
Il faut maintenant créer les sous-programmes qui permettront de réaliser les
opérations de la calculatrice.
SUB Ajouter
Nombre1 = Edit1.Text
Nb1 = VAL(Nombre1)
Nombre2 = Edit2.Text
Nb2 = VAL(Nombre2)
Res = Nb1 + Nb2
Resultat = STR$(Res)
Edit3.Text = Resultat
END SUB
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
SUB Soustraire
Nombre1 = Edit1.Text
Nb1 = VAL(Nombre1)
Nombre2 = Edit2.Text
Nb2 = VAL(Nombre2)
Res = Nb1 - Nb2
Resultat = STR$(Res)
Edit3.Text = Resultat
END SUB
SUB Multiplier
Nombre1 = Edit1.Text
Nb1 = VAL(Nombre1)
Nombre2 = Edit2.Text
Nb2 = VAL(Nombre2)
Res = Nb1 * Nb2
Resultat = STR$(Res)
-9-
Copier le nombre 1 saisi
par l’utilisateur
Le convertir en entier
Copier le nombre 2 saisi
par l’utilisateur
Le convertir en entier
Faire l’addition des 2
nombres
Convertir le résultat de
l’addition en chaîne de
caractères
Copier la chaîne du
résultat dans le champ
QEDIT correspondant à
l’écran
RAPIDQ
Edit3.Text = Resultat
END SUB
SUB Diviser
Nombre1 = Edit1.Text
Nb1 = VAL(Nombre1)
Nombre2 = Edit2.Text
Nb2 = VAL(Nombre2)
IF (Nb2 = 0) THEN
FOR i = 1 TO 3
MessageBox("Vous ne devez pas diviser par zéro ! " + STR$(i) + "
fois", "Erreur", 0)
NEXT i
ELSE
Res = Nb1 / Nb2
Resultat = STR$(Res)
Edit3.Text = Resultat
END IF
END SUB
Maintenant que les sous-programmes permettant de réaliser les opérations de notre
calculatrice sont créés, nous devons indiquer à Windows d’appeler ces sousprogrammes lorsqu’on clique sur les boutons. Ceci se fait par les instructions cidessous.
Button1.OnClick
Button2.OnClick
Button3.OnClick
Button4.OnCLick
=
=
=
=
Ajouter
Soustraire
Multiplier
Diviser
Pour terminer, on demande à Windows d’afficher la fenêtre de notre programme, par
l’instruction ci-dessous :
Form.ShowModal
- 10 -
RAPIDQ
3. Utilisation des objets Windows
3.1. QFORM
- Déclaration : DIM Form AS QFORM
- Titre de la fenêtre : Form.Caption
- Hauteur de la fenêtre : Form.Height
- Largeur de la fenêtre : Form.Width
- Icône : Form.Icon
- Position sur le bureau : Form.Left, Form.Top
- Pour centrer la fenêtre sur le bureau : Form.Center
- Pour afficher et attendre le résultat : Form.ShowModal
- Exemple :
$INCLUDE "RAPIDQ.INC"
DIM Form AS QFORM
Form.Caption = "Utilisation QFORM"
Form.Height = 300
Form.Width = 400
Form.Left = 100
Form.Top = 140
Form.ShowModal
- 11 -
RAPIDQ
3.2. QLABEL
- Déclaration : DIM Label AS QLABEL
- Police : Label.Font
- Texte : Label.Text
$INCLUDE "RAPIDQ.INC"
DIM Form AS QFORM
DIM Label AS QLABEL
Form.Caption = "Utilisation QLABEL"
Form.Height = 200
Form.Width = 300
Form.Left = 100
Form.Top = 140
Label.Parent = Form
Label.Caption = "Ceci est un label"
Label.Height = 20
Label.Width = 200
Label.Left = 30
Label.Top = 50
Form.ShowModal
- 12 -
RAPIDQ
3.3. QEDIT
- Déclaration : DIM Edit AS QEDIT
- Hauteur de la zone d’édition : Edit.Height
- Largeur de la zone d’édition : Edit.Width
- Texte : Edit.Text
$INCLUDE "RAPIDQ.INC"
DIM Form AS QFORM
DIM Edit AS QEDIT
Form.Caption = "Utilisation QEDIT"
Form.Height = 200
Form.Width = 300
Form.Left = 100
Form.Top = 140
Edit.Parent = Form
Edit.Height = 50
Edit.Width = 250
Edit.Top = 30
Edit.Left = 30
Edit.Text = "Texte initial modifiable"
Form.ShowModal
- 13 -
RAPIDQ
3.4. QBUTTON
- Déclaration : DIM Bouton AS QBUTTON
- Texte : Bouton.Caption
- Fichier de l’image : Bouton.BMP (fichier .bmp uniquement)
- Hauteur du bouton : Bouton.Height
- Largeur du bouton : Bouton.Width
- Fonction appelée si on clique sur le bouton : Bouton.OnClick
$INCLUDE "RAPIDQ.INC"
DIM Form AS QFORM
DIM Bouton AS QBUTTON
SUB Quitter
MESSAGEBOX("Vous avez cliqué sur Quitter", "Bonjour", 0)
END SUB
Form.Caption = "Utilisation QBUTTON"
Form.Height = 200
Form.Width = 300
Form.Left = 100
Form.Top = 140
Bouton.Parent = Form
Bouton.Height = 40
Bouton.Width = 140
Bouton.Caption = "Quitter"
Bouton.OnClick = Quitter
Form.ShowModal
- 14 -
RAPIDQ
3.5. QMAINMENU
- Déclaration : DIM Menu AS QMAINMENU
- Ajout d’un item : Menu.AddItems (objet de type QMENUITEM)
3.6. QMENUITEM
- Déclaration : DIM MenuItem AS QMENUITEM
- Texte de l’item du menu : MenuItem.Caption
- Indique s’il y a une coche à côté de l’item : MenuItem.Checked
- Item de menu activé : MenuItem.Enabled (valeur « True » si activé, « False » si inhibé)
- Ajout d’un item : MenuItem.AddItems (objet de type QMENUITEM)
$INCLUDE "RAPIDQ.INC"
DECLARE
DECLARE
DECLARE
DECLARE
SUB
SUB
SUB
SUB
Quitter
Copier
Coller
ActiverFonction
CREATE Form AS QFORM
Caption = "Utilisation QMAINMENU, QMENUITEM"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE Menu AS QMAINMENU
CREATE MFile AS QMENUITEM
Caption = "&File"
CREATE MFileOpen AS QMENUITEM
Caption = "&Open"
END CREATE
CREATE MFileClose AS QMENUITEM
Caption = "&Close"
END CREATE
CREATE MFileSave AS QMENUITEM
Caption = "&Save"
END CREATE
CREATE MFileQuitter AS QMENUITEM
Caption = "&Quitter"
OnClick = Quitter
END CREATE
END CREATE
CREATE MEdit AS QMENUITEM
- 15 -
RAPIDQ
Caption = "&Edit"
CREATE MEditCopier AS QMENUITEM
Caption = "&Copier"
OnClick = Copier
END CREATE
CREATE MEditColler AS QMENUITEM
Caption = "Co&ller"
Enabled = False
OnClick = Coller
END CREATE
CREATE MEditActiverFonction AS QMENUITEM
Caption = "Activer &fonction"
Checked = True
OnClick = ActiverFonction
END CREATE
END CREATE
CREATE MAide AS QMENUITEM
Caption = "&Aide"
END CREATE
END CREATE
END CREATE
SUB Quitter
MESSAGEBOX("Vous avez cliqué sur Quitter", "Bonjour", 0)
END SUB
SUB Copier
MEditColler.Enabled = True
MEditCopier.Enabled = False
END SUB
SUB Coller
MEditCopier.Enabled = True
MEditColler.Enabled = False
END SUB
SUB ActiverFonction
IF (MEditActiverFonction.Checked = False) THEN
MEditActiverFonction.Checked = True
ELSE
MEditActiverFonction.Checked = False
END IF
END SUB
Form.ShowModal
- 16 -
RAPIDQ
3.7. QLISTBOX
- Déclaration : DIM ListBox AS QLISTBOX
- Nombre de colonnes dans la boîte : ListBox.Columns
- Ajout d’items dans la liste : ListBox.AddItems
- Fonction appelée sur click souris : ListBox.OnClick
- Fonction appelée sur double click souris : ListBox.OnDblClick
- Libellé de l’item n° N : ListBox.Item(N)
- Etat de sélection de l’item n° N : ListBox.Selected(N) (True si sélectionné, False
sinon)
$INCLUDE "RAPIDQ.INC"
CREATE Form AS QFORM
Caption = "Utilisation QLISTBOX"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE ListBox AS QLISTBOX
END CREATE
END CREATE
SUB Selectionner
For i = 0 TO 3
IF (ListBox.Selected(i) = True) THEN
MESSAGEBOX(ListBox.Item(i), "Vous avez sélectionné", 0)
END IF
NEXT i
END SUB
ListBox.AddItems "1. Oranges", "2. Bananes", "3. Poires", "4. Pommes"
ListBox.OnClick = Selectionner
Form.ShowModal
- 17 -
RAPIDQ
3.8. QCANVAS
- Déclaration : DIM Canvas AS QCANVAS
- Hauteur : Canvas.Height
- Largeur : Canvas.Width
- Couleur : Canvas.Color
- Rafraîchissement : Canvas.OnPaint
- Ecriture d’un texte : Canvas.TextOut(X, Y, Texte, Couleur, 0)
- Dessin d’un cercle : Canvas.Circle(X1, Y1, RX, RY, Couleur, Remplissage)
- Dessin d’un rectangle : Canvas.Rect(X1, Y1, X2, Y2, Couleur)
- Dessin d’une image : Canvas.Draw(X, Y, FichierBMP)
- Dessin d’une ligne : Canvas.Line(X1, Y1, X2, Y2, Couleur)
- Dessin d’un rectangle arrondi : Canvas.RoundRect(X1, Y1, X2, Y2, RX, RY,
Couleur)
$INCLUDE "RAPIDQ.INC"
DECLARE SUB Paint
DECLARE SUB Redimensionner
DECLARE SUB HorlogeEchue
DIM Y AS INTEGER
DIM Horloge AS QTIMER
CREATE Form AS QFORM
Caption = "Utilisation QCANVAS"
Height = 200
Width = 300
Left = 100
Top = 140
Color = 0
OnResize = Redimensionner
CREATE Canvas AS QCANVAS
Color = 0
OnPaint = Paint
END CREATE
END CREATE
SUB Paint
Canvas.TextOut(65, Y - 30, "Bienvenue dans le tutoriel RAPIDQ !",
&H00FF00, 0)
Canvas.TextOut(30, Y, "Exemple d'utilisation d'un Canvas...", &HFFFFFF,
0)
END SUB
SUB Redimensionner
- 18 -
RAPIDQ
Canvas.Height = Form.ClientHeight
Canvas.Width = Form.ClientWidth
END SUB
SUB HorlogeEchue
Horloge.Interval = 1
Y = Y + 1
IF (Y = 230) THEN
Y = -20
END IF
Paint
END SUB
Y = -20
Canvas.Height = Form.ClientHeight
Canvas.Width = Form.ClientWidth
Horloge.OnTimer = HorlogeEchue
Horloge.Interval = 1
Form.ShowModal
- 19 -
RAPIDQ
3.9. QCHECKBOX
- Déclaration : DIM CheckBox AS QCHECKBOX
- Texte : CheckBox.Caption
- Etat coché ou non : CheckBox.Checked (True ou False)
- Hauteur : CheckBox.Height
- Largeur : CheckBox.Width
$INCLUDE "RAPIDQ.INC"
DECLARE SUB Check
CREATE Form AS QFORM
Caption = "Utilisation QCHECKBOX"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE CheckBox AS QCHECKBOX
Caption = "J'achète la revue"
Width = 150
Left = 30
Top = 30
OnClick = Check
END CREATE
END CREATE
SUB Check
MESSAGEBOX("Vous avez choisi d'acheter la revue !", "Bravo...", 0)
END SUB
Form.ShowModal
- 20 -
RAPIDQ
3.10. QCOMBOBOX
- Déclaration : DIM ComboBox AS QCOMBOBOX
- Hauteur : ComboBox.Height
- Largeur : ComboBox.Width
- Fonction à appeler si la sélection est faite : ComboBox.OnClick
- Numéro de l’item sélectionné : ComboBox.ItemIndex
- Valeur de l’item numéro N : ComboBox.Item(N)
- Ajouter un ou plusieurs items : ComboBox.AddItems
$INCLUDE "RAPIDQ.INC"
DECLARE SUB Changement
CREATE Form AS QFORM
Caption = "Utilisation QCOMBOBOX"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE ComboBox AS QCOMBOBOX
Width = 150
Left = 30
Top = 30
OnChange = Changement
END CREATE
END CREATE
SUB Changement
MESSAGEBOX(ComboBox.Item(ComboBox.ItemIndex), "Votre choix", 0)
END SUB
ComboBox.AddItems "1. Pommes", "2. Poires", "3. Bananes", "4. Orange"
Form.ShowModal
- 21 -
RAPIDQ
3.11. QCOOLBTN
- Déclaration : DIM CoolBouton AS QCOOLBTN
- Nom du fichier image (.bmp) du bouton : CoolBouton.BMP
- Etat enfoncé du bouton : CoolBouton.Down (True ou False)
- On peut réunir des boutons pour que si l’on enfonce un bouton, les autres se lèvent.
Ceci se fait en donnant une valeur commune à tous les boutons concernés pour le
champ CoolBouton.GroupIndex
- Fonction à appeler lorsque le bouton est enfoncé : CoolBouton.OnClick
$INCLUDE "RAPIDQ.INC"
DECLARE SUB Changement
CREATE Form AS QFORM
Caption = "Utilisation QCOOLBTN"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE Bouton1 AS QCOOLBTN
Width = 150
Left = 30
Top = 30
Caption = "Choix 1"
GroupIndex = 1
Down = True
END CREATE
CREATE Bouton2 AS QCOOLBTN
Width = 150
Left = 30
Top = 110
Caption = "Choix 2"
GroupIndex = 1
END CREATE
END CREATE
Form.ShowModal
- 22 -
RAPIDQ
3.12. QDIRTREE
- Déclaration : DIM DirTree AS QDIRTREE
- Répertoire initial de la fenêtre : DirTree.InitialDir
- Hauteur : DirTree.Height
- Largeur : DirTree.Width
- Fonction à appeler si le répertoire courant est modifié : DirTree.OnChange
$INCLUDE "RAPIDQ.INC"
DECLARE SUB ChangerRepertoire
CREATE Form AS QFORM
Caption = "Utilisation QDIRTREE"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE DirTree AS QDIRTREE
InitialDir = CURDIR$
Width = Form.ClientWidth
Height = Form.ClientHeight
OnChange = ChangerRepertoire
END CREATE
END CREATE
SUB ChangerRepertoire
ShowMessage DirTree.Directory
END SUB
Form.ShowModal
- 23 -
RAPIDQ
3.13. QFILELISTBOX
- Déclaration : DIM FileListBox AS QFILELISTBOX
- Répertoire où se trouve les fichiers ou répertoires affichés : FileListBox.Directory
- Nom du fichier sélectionné : FileListBox.Filename
- Numéro du fichier sélectionné : FileListBox.ItemIndex
- Indique si les icônes des fichiers sont affichés : FileListBox.ShowIcons (True ou
False)
- Masque des fichiers à afficher : FileListBox.Mask (par exemple, *.*)
- Indique quels types de fichiers sont affichés : FileListBox.AddFileTypes. Les valeurs
possibles sont :
- ftReadOnly : uniquement les fichiers en lecture seulement
- ftHidden : uniquement les fichiers cachés
- ftSystem : uniquement les fichiers systèmes
- ftVolumeID : uniquement les disques
- ftDirectory : uniquement les répertoires
- ftArchive : uniquement les archives
- ftNormal : les fichiers sans attributs particuliers
- Indique quels types de fichiers ne sont pas affichés : FileListBox.DelFileTypes.
Mêmes valeurs que ci-dessus
- Fonction à appeler lorsqu’on double-clique sur un fichier : FileListBox.OnDblClick
$INCLUDE "RAPIDQ.INC"
DECLARE SUB ChangerRepertoire
DECLARE SUB SelectFichier
DECLARE SUB Redimensionner
CREATE Form AS QFORM
Height = 200
Width = 300
Left = 100
Top = 140
CREATE DirList AS QFILELISTBOX
ShowIcons = True
Mask = "*.*"
AddFileTypes(ftDirectory)
DelFileTypes(ftNormal)
OnDblClick = ChangerRepertoire
Height = Form.ClientHeight
Width = Form.ClientWidth \ 2
END CREATE
CREATE FileList AS QFILELISTBOX
- 24 -
RAPIDQ
ShowIcons = True
Mask = "*.EXE"
OnDblClick = SelectFichier
Left = Form.ClientWidth \ 2
Height = Form.ClientHeight
Width = Form.ClientWidth \ 2
END CREATE
END CREATE
SUB Redimensionner
DirList.Height = Form.ClientHeight
DirList.Width = Form.ClientWidth \ 2
FileList.Height = Form.ClientHeight
FileList.Width = Form.ClientWidth \ 2
Form.Repaint
END SUB
SUB ChangerRepertoire
ChDir(DirList.Item(DirList.ItemIndex) - "[" - "]")
DirList.Directory = CurDir$
FileList.Directory = CurDir$
Form.Caption = CurDir$
END SUB
SUB SelectFichier
RUN FileList.FileName
END SUB
Form.OnResize = Redimensionner
Form.ShowModal
- 25 -
RAPIDQ
3.14. QFONTDIALOG
- Déclaration : DIM FontDialog AS QFONTDIALOG
- Demander la police voulue : FontDialog.GetFont
- Modifier la police : FontDialog.SetFont
- Police sélectionnée : FontDialog.Name
- Indique qu’un choix de police a été fait : FontDialog.Execute
$INCLUDE "RAPIDQ.INC"
DIM Font AS QFONT
DIM FontDialog AS QFONTDIALOG
CREATE Form AS QFORM
Height = 200
Width = 300
Left = 100
Top = 140
Caption = "Utilisation de QFONTDIALOG"
END CREATE
FontDialog.GetFont(Font)
If (FontDialog.Execute) THEN
ShowMessage "Police choisie : " + FontDialog.Name
FontDialog.SetFont(Font)
END IF
Form.ShowModal
- 26 -
RAPIDQ
3.15. QGAUGE
- Déclaration : DIM Gauge AS QGAUGE
- Couleur de fond : Gauge.BackColor
- Couleur de la barre de progression : Gauge.ForeColor
- Texte : Gauge.ShowText
- Position de la barre de progression : Gauge.ShowText (entre 0 et 100)
$INCLUDE "RAPIDQ.INC"
DECLARE SUB HorlogeEchue
DIM Horloge AS QTIMER
DIM Y AS INTEGER
CREATE Form AS QFORM
Height = 200
Width = 300
Left = 100
Top = 140
Caption = "Utilisation de QGAUGE"
CREATE Gauge AS QGAUGE
Top = 30
Left = 30
Height = 20
Width = 150
END CREATE
END CREATE
SUB HorlogeEchue
IF (Y <> 100) THEN
Y = Y + 1
Horloge.Interval = 100 + Y
Gauge.Position = Y
END IF
END SUB
Y = 0
Gauge.Position = 0
Horloge.OnTimer = HorlogeEchue
Horloge.Interval = 100
Form.ShowModal
- 27 -
RAPIDQ
3.16. QGROUPBOX
- Déclaration : DIM GroupBox AS QGROUPBOX
- Titre de la boîte de regroupement : GroupBox.Caption
$INCLUDE "RAPIDQ.INC"
CREATE Form AS QFORM
Height = 200
Width = 300
Left = 100
Top = 140
Caption = "Utilisation de QGROUPBOX"
CREATE GroupBox AS QGROUPBOX
Top = 30
Left = 30
Height = 110
Width = 150
CREATE Bouton1 AS QBUTTON
Top = 30
Left = 30
Height = 20
Width = 50
Caption = "OK"
END CREATE
CREATE Bouton2 AS QBUTTON
Top = 70
Left = 30
Height = 20
Width = 50
Caption = "NOK"
END CREATE
END CREATE
END CREATE
Form.ShowModal
- 28 -
RAPIDQ
3.17. QIMAGE
- Déclaration : DIM Image AS QIMAGE
- Fichier contenant l’image à afficher : Image.BMP
- Dimensionnement de l’image en fonction de sa taille : Image.Autosize
$INCLUDE "RAPIDQ.INC"
CREATE Form AS QFORM
Top = 30
Left = 30
Height = 200
Width = 300
Caption = "Utilisation de QIMAGE"
CREATE Image AS QIMAGE
Top = 30
Left = 30
Height = 80
Width = 80
BMP = "D:\Documents and Settings\picard10\My
Documents\Perso\RapidQ\Help.bmp"
END CREATE
END CREATE
Form.ShowModal
- 29 -
RAPIDQ
3.18. QOPENDIALOG
- Déclaration : DIM OpenDialog AS QOPENDIALOG
- Titre de la fenêtre : OpenDialog.Caption
- Nom du fichier sélectionné : OpenDialog.FileName
- Filtre de sélection des fichiers : OpenDialog.Filter. Les différents filtres sont séparés
par des caractères « | »
- Numéro du filtre adopté pour la sélection des fichiers : OpenDialog.FilterIndex
- Pour effectuer une sélection de fichier : OpenDialog.Execute (True ou False)
$INCLUDE "RAPIDQ.INC"
DIM OpenDialog AS QOPENDIALOG
CREATE Form AS QFORM
Top = 30
Left = 30
Height = 200
Width = 300
Caption = "Utilisation de QOPENDIALOG"
END CREATE
OpenDialog.Caption = "Sélection fichier"
OpenDialog.Filter = "*.*|*.jpg|*.bmp"
OpenDialog.FilterIndex = 0
IF (OpenDialog.Execute) THEN
ShowMessage "Fichier : " + OpenDialog.FileName
END IF
Form.ShowModal
- 30 -
RAPIDQ
3.19. QOVALBTN
- Déclaration : DIM BoutonOvale AS QOVALBTN
- Mêmes attributs et possibilités que le bouton QCOOLBTN. S’y référer.
$INCLUDE "RAPIDQ.INC"
CREATE Form AS QFORM
Caption = "Utilisation QOVALBTN"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE Bouton1 AS QOVALBTN
Width = 150
Left = 30
Top = 30
Caption = "Choix 1"
END CREATE
CREATE Bouton2 AS QOVALBTN
Width = 150
Left = 30
Top = 110
Caption = "Choix 2"
END CREATE
END CREATE
Form.ShowModal
- 31 -
RAPIDQ
3.20. QPOPUPMENU
- Déclaration : DIM Popup AS QPOPUPMENU
- Indication que le menu « popup » s’affiche dès le clic souris droit : Popup.AutoPopup
$INCLUDE "RAPIDQ.INC"
DIM Menu1 AS QMENUITEM
DIM Menu2 AS QMENUITEM
CREATE Form AS QFORM
Caption = "Utilisation QPOPUPMENU"
Height = 200
Width = 300
Left = 100
Top = 140
CREATE Popup AS QPOPUPMENU
AutoPopup = True
END CREATE
END CREATE
Menu1.Caption = "Choix &1"
Menu2.Caption = "Choix &2"
Popup.AddItems(Menu1, Menu2)
Form.ShowModal
- 32 -
RAPIDQ
3.21. QRADIOBUTTON
- Déclaration : DIM Bouton AS QRADIOBUTTON
- Indique si le bouton radio est coché : Bouton.Checked (True ou False)
$INCLUDE "RAPIDQ.INC"
CREATE Form AS QFORM
Top = 30
Left = 30
Height = 200
Width = 300
Caption = "Utilisation de QRADIOBUTTON"
CREATE Bouton1 AS QRADIOBUTTON
Top = 30
Left = 30
Caption = "Pommes"
END CREATE
CREATE Bouton2 AS QRADIOBUTTON
Top = 70
Left = 30
Caption = "Oranges"
END CREATE
CREATE Bouton3 AS QRADIOBUTTON
Top = 110
Left = 30
Caption = "Bananes"
END CREATE
END CREATE
Form.ShowModal
- 33 -
RAPIDQ
3.22. QSAVEDIALOG
- Déclaration : DIM SaveDialog AS QSAVEDIALOG
- Titre de la fenêtre : SaveDialog.Caption
- Nom du fichier sélectionné : SaveDialog.FileName
- Filtre de sélection des fichiers : SaveDialog.Filter. Les différents filtres sont séparés
par des caractères « | »
- Numéro du filtre adopté pour la sélection des fichiers : SaveDialog.FilterIndex
- Pour effectuer une sélection de fichier : SaveDialog.Execute (True ou False)
$INCLUDE "RAPIDQ.INC"
DIM SaveDialog AS QSAVEDIALOG
SaveDialog.Caption = "Sélection fichier"
SaveDialog.Filter = "*.*|*.jpg|*.bmp"
SaveDialog.FilterIndex = 0
IF (SaveDialog.Execute) THEN
ShowMessage "Fichier : " + SaveDialog.FileName
END IF
- 34 -
RAPIDQ
3.23. QSCROLLBAR
- Déclaration : DIM Barre AS QSCROLLBAR
- Hauteur = Barre.Height
- Largeur = Barre.Width
- Valeur minimum = Barre.Min
- Valeur maximum = Barre.Max
- Activer l’aide sur la barre = Barre.ShowHint
- Texte de l’aide sur la barre = Barre.Hint
- Position de la barre = Barre.Position
- Fonction à appeler si la barre change de position = Barre.OnChange
$INCLUDE "RAPIDQ.INC"
DECLARE SUB ChangementCouleur
DECLARE SUB Peindre
FUNCTION ConvertitRGB(R AS INTEGER, G AS INTEGER, B AS INTEGER) AS INTEGER
ConvertitRGB = (B SHL 16) OR (G SHL 8) OR R
END FUNCTION
CREATE Form AS QFORM
Caption = "Utilisation de QSCROLLBAR"
CREATE LabelRouge AS QLABEL
Left = 10
Top = 22
Caption = "Rouge:"
END CREATE
CREATE LabelVert AS QLABEL
Left = 5
Top = 52
Caption = "Vert:"
END CREATE
CREATE LabelBleu AS QLABEL
Left = 10
Top = 82
Caption = "Bleu:"
END CREATE
CREATE LabelNumRouge AS QLABEL
Left = 270
Top = 22
Caption = "0"
END CREATE
- 35 -
RAPIDQ
CREATE LabelNumVert AS QLABEL
Left = 270
Top = 52
Caption = "0"
END CREATE
CREATE LabelNumBleu AS QLABEL
Left = 270
Top = 82
Caption = "0"
END CREATE
CREATE ScrollRouge AS QSCROLLBAR
Left = 50
Top = 20
Width = 200
Height = 20
Min = 0
Max = 255
ShowHint = True
Hint = "Composante rouge"
OnChange = ChangementCouleur
END CREATE
CREATE ScrollVert AS QSCROLLBAR
Left = 50
Top = 50
Width = 200
Height = 20
Min = 0
Max = 255
ShowHint = True
Hint = "Composante verte"
OnChange = ChangementCouleur
END CREATE
CREATE ScrollBleu AS QSCROLLBAR
Left = 50
Top = 80
Width = 200
Height = 20
Min = 0
Max = 255
ShowHint = True
Hint = "Composante bleue"
OnChange = ChangementCouleur
END CREATE
CREATE BoitePeinte AS QCANVAS
Left = 50
Top = 110
Height = 90
Width = 200
OnPaint = Peindre
END CREATE
END CREATE
SUB ChangementCouleur
LabelNumRouge.Caption = STR$(ScrollRouge.Position)
LabelNumVert.Caption = STR$(ScrollVert.Position)
LabelNumBleu.Caption = STR$(ScrollBleu.Position)
Peindre
END SUB
SUB Peindre
BoitePeinte.Paint(0, 0, ConvertitRGB(ScrollRouge.Position,
ScrollVert.Position, ScrollBleu.Position), &HFFFFFF)
END SUB
Form.ShowModal
- 36 -
RAPIDQ
3.24. QSCROLLBOX
- Déclaration : DIM ScrollBox AS QSCROLLBOX
- Position sur le scroll horizontal : ScrollBox.HorzPosition
- Position sur le scroll vertical : ScrollBox.VertPosition
- Détermine si les barres de défilement s’affichent automatiquement en cas
d’affichage plus grand que la fenêtre : ScrollBox.AutoScroll (True ou False)
$INCLUDE "RAPIDQ.INC"
CREATE Form AS QFORM
Top = 30
Left = 30
Height = 200
Width = 300
Caption = "Utilisation de QSCROLLBAR"
CREATE ScrollBox AS QSCROLLBOX
Height = Form.ClientHeight
Width = Form.ClientWidth
AutoScroll = False
CREATE Bouton AS QBUTTON
Top = 50
Left = 50
Width = 300
Height = 50
Caption = "Cliquez"
END CREATE
END CREATE
END CREATE
Form.ShowModal
- 37 -
RAPIDQ
3.25. QSTATUSBAR
- Déclaration : DIM StatusBar AS QSTATUSBAR
- Ajouter des panneaux dans la barre de status : StatusBar.AddPanels : on passe en
paramètres à AddPanels les différentes chaînes de caractère situées dans les panneaux
de la barre de status
- Modifier le texte d’un panneau numéro N : StatusBar.Panel(N).Caption
- Modifier la taille d’un panneau numéro N : StatusBar.Panel(N).Width
$INCLUDE "RAPIDQ.INC"
CREATE Form AS QFORM
Top = 30
Left = 30
Height = 200
Width = 300
Caption = "Utilisation de QSTATUSBAR"
CREATE StatusBar AS QSTATUSBAR
END CREATE
END CREATE
StatusBar.AddPanels "20:22", "Modified", "INS", "qstatusbar.bas"
StatusBar.Panel(3).Width = 100
Form.ShowModal
- 38 -
RAPIDQ
3.26. QTABCONTROL
- Déclaration : DIM TabControl AS QTABCONTROL
- Ajouter des onglets : TabControl.AddTabs. On passe en paramètre les chaînes de
caractères désignant chaque onglet
- Fonction à appeler lorsqu’on change d’onglet : TabControl.OnChange
- Supprimer des onglets : TabControl.DelTabs. On passe en paramètre les numéros
d’onglets à supprimer
$INCLUDE "RAPIDQ.INC"
DECLARE SUB Changement
CREATE Form AS QFORM
Top = 30
Left = 30
Height = 200
Width = 300
Caption = "Utilisation de QTABCONTROL"
CREATE TabControl AS QTABCONTROL
AddTabs "Tab 1", "Tab 2", "Tab 3", "Tab 4"
Width = Form.ClientWidth
Height = Form.ClientHeight
OnChange = Changement
HotTrack = True
CREATE Panel1 AS QPANEL
Top = 40
Left = 5
Width = TabControl.ClientWidth - 10
Height = TabControl.ClientHeight - 50
Caption = "Panel 1"
BevelInner = bvLowered
CREATE Bouton1 As QBUTTON
Caption = "Bouton 1"
END CREATE
Visible = True
END CREATE
CREATE Panel2 AS QPANEL
Top = 40
Left = 5
Width = TabControl.ClientWidth - 10
Height = TabControl.ClientHeight - 50
Caption = "Panel 2"
BevelInner = bvLowered
CREATE Bouton2 As QBUTTON
Caption = "Bouton 2"
END CREATE
- 39 -
RAPIDQ
Visible = False
END CREATE
CREATE Panel3 AS QPANEL
Top = 40
Left = 5
Width = TabControl.ClientWidth Height = TabControl.ClientHeight
Caption = "Panel 3"
BevelInner = bvLowered
CREATE Bouton3 As QBUTTON
Caption = "Bouton 3"
END CREATE
Visible = False
END CREATE
CREATE Panel4 AS QPANEL
Top = 40
Left = 5
Width = TabControl.ClientWidth Height = TabControl.ClientHeight
Caption = "Panel 4"
BevelInner = bvLowered
CREATE Bouton4 As QBUTTON
Caption = "Bouton 4"
END CREATE
Visible = False
END CREATE
END CREATE
END CREATE
SUB Changement
SELECT CASE TabControl.TabIndex
CASE 0
Panel1.Visible = True
Panel2.Visible = False
Panel3.Visible = False
Panel4.Visible = False
CASE 1
Panel1.Visible = False
Panel2.Visible = True
Panel3.Visible = False
Panel4.Visible = False
CASE 2
Panel1.Visible = False
Panel2.Visible = False
Panel3.Visible = True
Panel4.Visible = False
CASE 3
Panel1.Visible = False
Panel2.Visible = False
Panel3.Visible = False
Panel4.Visible = True
END SELECT
END SUB
Form.ShowModal
- 40 -
10
- 50
10
- 50
RAPIDQ
3.27. QFILESTREAM
Les Filestreams permettent de lire et d’écrire dans des fichiers. Cela est indispensable
pour les applications qui doivent sauvegarder des données dans un fichier, pour
pouvoir les réutiliser lors d’une prochaine session de l’utilisation du programme.
Voici un exemple d’utilisation de QFILESTREAM pour la lecture de données dans un
fichier et l’écriture de ces données dans un autre fichier.
$INCLUDE "RAPIDQ.INC"
DIM
DIM
DIM
DIM
DIM
DIM
File1 AS QFILESTREAM
File2 AS QFILESTREAM
Entier AS INTEGER
Chaine AS STRING
Longueur AS INTEGER
Buffer(100) AS INTEGER
Entier = 10
Chaine = "Voici une chaîne"
Longueur = LEN(Chaine)
FOR i = 0 TO 99
Buffer(i) = i
NEXT i
File2.Open("Test.txt", fmCreate)
File2.Write(Entier)
File2.WriteStr(Chaine, LEN(Chaine))
File2.SaveArray(Buffer(0), 100)
File2.Close
Entier = 0
Chaine = ""
FOR i = 0 TO 99
Buffer(i) = 0
NEXT i
File2.Open("Test.txt", fmRead)
File2.Read(Entier)
Chaine = File2.ReadStr(Longueur)
File2.LoadArray(Buffer(0), 100)
File2.Close
File1.Open("Copie.txt", fmCreate)
File1.Write(Entier)
File1.WriteStr(Chaine, LEN(Chaine))
File1.SaveArray(Buffer(0), 100)
File1.Close
- 41 -

Documents pareils