gambaslinux

Aides aux utilisateurs de gambas linux

Accueil  /  Archives 2008

proprietes du bouton

0

Vous pouvez modifier les propriétés de chaque bouton directement dans la fenetre propriétés mais aussi dans votre programme au moyen de code.
voici donc un résumé des propriétés avec un petit bout de code en exemple :


BackColor
change la couleur d'arrière plan du bouton .Il faut
saisir une valeur RVB correspondant aux couleurs rouge vert bleu en
hexa, binaire ou décimal.
Exemple : changer la couleur
d'arrière plan en noir :



PUBLIC SUB Form_Open()
Button1.BackColor = color.black
END
Background
change la couleur d'arrière plan du bouton. Il faut saisir une
valeur RVB correspondant aux couleurs rouge vert bleu en hexa, binaire
ou décimal.
Exemple : changer la couleur
d'arrière plan en bleu foncé :

PUBLIC SUB Form_Open()
Button1.Background = 100
END
Border
Affiche ou non des bordures sur le bouton. Cette
propriété prend comme état :
true ou false
 
Exemple : supprimer les bordures
d'un bouton :

PUBLIC SUB Form_Open()
Button1.Border = False
END
Cancel
Lors de l'appui sur la touche Escape ou echap de votre clavier, cette
propriété defini le bouton à valider.Cette
propriété prend comme état :
true ou false
Exemple : Lors de l'appui sur
ESC ce bouton doit être appuyé :

PUBLIC SUB Form_Open()
Button1.Cancel = True
END
Caption
Défini un nom ou plutot un  label au bouton.Cette
propriété a besoin d'une chaine de caractère ou
simplement vide par ""
 
Exemple : Donner le label
style="color: rgb(51, 204, 0);">toto au bouton:

PUBLIC SUB Form_Open()
Button1.Caption = "toto"
END
Default
Défini lors de l'appui sur la touche Entrée le bouton a
appuyer par défaut.Cette propriété prend comme
état :

true ou false
Exemple : Lors de l'appui sur
ENTREE ce bouton doit être appuyé :

PUBLIC SUB Form_Open()
Button1.Default = True
END
style="color: rgb(51, 51, 255);"
Drop
Cette propriété doit etre sur TRUE si le bouton
reçoit un évènement DRAG and DROP.Cette
propriété prend comme état :


true ou false
Exemple : Je glisse le
text1.text par DRAG sur l bouton et je lache le bouton de la souris sur
mon button1 et affiche le texte dans le label de mon button1:

PUBLIC SUB text1.Drag()
style="color: rgb(255, 0, 0);"
END
style="color: rgb(51, 51, 255);"

PUBLIC SUB Button1.Drop()
Button1.Caption = text1.text
END
Enabled
cette propriété active ou non le bouton .Le bouton est
quand même visible à l'écran. A ne pas confondre
avec la propriété visible.
Cette propriété prend comme état :
true ou false
Exemple : Désactiver pour
tout clic impossible sur le bouton:

PUBLIC SUB Form_Open()
Button1.Enabled = False
END
Expand
Je ne vois pas à quoi cela sert, mais je vais regarder la doc :)
 
Permet de remplir tout l'espace du container
 
Font
Modifie la police de caratère du texte sur le bouton

 
ForeColor
style="font-weight: bold;">
Foreground

Modifie la couleur avant plan du bouton (soit le texte)
 
Exemple : changer la couleur
d'avant plan en bleu foncé :

PUBLIC SUB Form_Open()
Button1.Foreground = 100
END
Height
Défini la taille horizontale du bouton
 
Exemple : changer la taille du
bouton :

PUBLIC SUB Form_Open()
Button1.Height = 100
END
Left
Defini la position du bouton en X

 
Exemple : Déplacer le
bouton  de 100 par rapport à là ou il est maintenant:

PUBLIC SUB Form_Open()
Button1.left = Button1.left  +
style="color: rgb(255, 0, 0);">100
END
Name
Defini le nom du bouton appelé par la programmation
par défaut il s'agit de Button1, à vous de mettre un nom
parlant
Pas de code. Il vaut mieux
définir le nom dans la boite propriété
Picture
insère une image sur le bouton en plus du texte.
Défini une image  à l'intérieur du bouton

 



la commande EXEC

0
espace1.jpg
nous allons utiliser aujourd'hui la fonction EXEC qui consiste à lancer une commande au terminal et à en récuperer la sortie texte du terminal.
Notre application d'aujourd'hui demandera au terminal de lancer la commande df -h qui a pour role de voir l'espace disque des disques de votre ordinateur.
 creez un projet et inserez un bouton, un textarea1 avec comme propriete "enabled = false"

et double cliquez sur le formulaire.
Entrez le code suivant :
PUBLIC SUB _new()
END
PUBLIC SUB form_OPEN()
' get the contents of a directory into a String
DIM sOUTPUT AS String
exec ["df", "-h"] TO textarea1.text
END
PUBLIC SUB button1_click()
me.CLOSE
END


lancez votre application, ca marche ! vous pouvez voir de combien d'espace vous disposez !

espace1.jpg


Aujourd 'hui nous allons comprendre le fonctionnement du drag and drop.Nous allons creer une fenetre Form avec un label1 et une textbox1.
Lorsque l 'utilisateur selectionnera le texte dans la textbox et la fera glisser avec la souris, le label changera et dira que le texte se deplace.Puis lorsqu 'il arrivera sur le label1 on dira que l 'action est finie.

Commencons par la creation de la fenetre : rien de bien compliqué.
N 'oubliez pas que le widget label1 doit avoir sa propriété DROP a la valeur TRUE .*voici la capture d 'écran :

Capture.png


puis passons au code :

creons une fonction drag sur la textbox1 pour autoriser un deplacement :

PUBLIC SUB TextBox1_Drag()
label1.text = Je suis entrain de deplacer le texte...
END

creons une fonction DROP pour la reception de l 'evenement drag :

PUBLIC SUB Label1_Drop()
Label1.text = Ca y est j 'ai fini!
 END

voila c'est fini !
Lancer l 'application, selectionner le texte dans la textbox1 et deplacez le en maintenant le clic gauche enfoncé, le label1 change, etonnant non ? et bien non, C 'est ca gambas, simple et intuitif !
Bonne journée à tous
wink



Utiliser le Timer

0
*

timer.gif
Le Timer

Je vous propose d 'utiliser le Timer pour écrire une petite application , un chronometre.

Alons y vous verrez c 'est très simple :

chrono.gif

Tout d 'abord, creez un projet et nommez le chronometer.
Placez dans le Form principal trois boutons respectivement Button1 pour START, Button2 pour RESET et Button3 pour STOP.
placez aussi un label1 pour le mot seconds et un LCDtimer1. comme ceci :

chrono2.gif

Maintenant que l 'interface simple est créée, interssont nous aux évènements:

lors d 'un clic sur START, les actions à réaliser sont :
demarrer le timer
incrementer le timer

ce qui donne le code suivant:

PUBLIC SUB Button1_Click()
 timer1.enabled = TRUE
 LCDNumber1.value = LCDNumber1.value + 1
-----------------------------------------
lors d 'un clic sur STOP, les actions à réaliser sont :
arreter le timer

d 'ou le code suivant :
PUBLIC SUB Button3_Click()
 timer1.enabled = FALSE
 END
-----------------------------------------
lors d 'un clic sur RESET, les actions à réaliser sont :
arreter le timer
remetre le LCDtimer a 0
voici le code:

PUBLIC SUB Button2_Click()
LCDNumber1.value = 0

   timer1.enabled = FALSE
END
-------------------------------------
Si nous lancons le programme, il ne se passe rien , pourquoi ?
Et bien nous avons oublié une partie importante.
La fonction Timer
Cette dans cette fonction que nous allons dire au programme quoi faire quand le timer est lancé.
Ajouton cette fonction dans le code :

PUBLIC SUB Timer1_Timer()

   LCDNumber1.value = LCDNumber1.value + 1

END
---------------------------------------------
maintenant notre programme marche à merveille, simple non? A vous de jouer..
  
TELECHARGER LES SOURCES




 

);



petite calculatrice

0
PETITE CALCULATRICE

 



01calc.jpg

bonjour, aujourd'hui pour notre exemple, nous allons réaliser une petite calculatrice.
Ouvrez gambas et definissez un nouveau projet.
Nommez le calculatrice.
creer un formulaire vierge (clic droit sur formulaire puis nouveau)
Voila procedons par etapes.

A) creation de l'interface.
creons 6 boutons et une valuebox et utilisant les boutons ci joints :
 

00calc.jpg

Modifions la proprieté TEXT de notre fenetre en lui donnat le titre "calculatrice" :

02calc.jpg
 
modifions les proprietes TEXT de chaque bouton pour leur affecter respectivements les valeurs   "  1","2  ","3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "," 0 "," , ","  X"," -","+  ","/  "," =".


Voila notre interface est realisée.

B) Redaction du code.

inseronr le code par un double clic sur le bouton 1 :
 
03calc.jpg
de meme pour le bouton 2 :

04calc.jpg
faisons de meme pour tous les boutons , sauf pour le bouton "EGAL".


Creer un slider

0
01slider.jpg

LE SLIDER

Le slider est bien pratique pour ajuster une valeur rapidement.

Creons une application qui fera varier un nombre dans une textbox :
Creons une fenetre Form1, un slider Slider1 et une textbox Textbox1 :

02slider.jpg

Ajoutons maintenant la ligne de code en double cliquant sur le slider dans l 'evenement change.
Le texte de la textbox changera a chaque deplacement unitaire de la slider en prenant comme valeur la valeur du slider :
 
03slider.jpg

Executons notre application, et deplacons le slider vous verrez changer le texte en temps reel, chouette non ?

04slider.jpg

 



Creer une combobox

0
01combo.jpg

LA COMBO BOX

La combobox permet d 'ajouter une selection  de plusieurs parametres a passer a votre application. Voyont comment l 'utiliser :

creon une fenetre form1 avec un bouton Button1 et une combo1
02combo.jpg

Le but de ce petit exemple est que lorsque nous cliquerons sur le bouton nous alons ajouter un texte dans la combobox. Autant de fois nous appuierons, autant de fois le texte sera ajouté :

03combo.jpg

La fonction Add ajoute du texte dans la combo.
La fonction Text modifie le texte courant de la combo
La fonction insert insere du texte a la fin du texte courant

Executons notre application et voial ce que cela donne :

04combo.jpg

CQFD !


Utiliser la checkbox

0

UTILISER LA CHECKBOX



01checkbox.jpg

La checkbox vous permet de donner un état d 'une variable sous forme de case à cocher.
La plupart du temps vous n 'aurez qu 'à modifier ou lire la valeur checkox.value .

Creons maintenant une fenetre form1.
Mettons y un bouton Button1 et une checkbox1 comme ceci :

02checkbox.jpg

Maintenant double cliquez sur le bouton et dans la partie code ajouter ce code :

03checkbox.jpg

Lors d 'un appui sur notre bouton la checkbox changera d 'etat et passera a l 'etat coché.
Executons notre application  :
04checkbox.jpg

CA MARCHE !


Have you ever wanted to use Visual Basic on Linux? Why? Well, you could be like me and have spent many years programming in VB, but want to move to Linux without having to learn a new language. It could be that you 're brand new to programming and need something you can learn quickly and easily—and still be able to produce a good quality application.

Well, now you can—almost.

Gambas is short for Gambas is—almost—Basic, and it has been designed to look at the good things VB can do for Windows and then does them for Linux. Above all, Gambas is easy to use—as this article shows. I explain how to build a useful application in Gambas—a bug-tracking system that stores its information in a MySQL database.

Installation is as simple. First go to the Gambas Web site, and check the Distributions &amp OS page—this is just to make sure there are no known peculiarities with your flavour of Linux. Then, go to the Download page and get the most current, stable version (1.09 at the time of this writing). If you 've done this type of thing before, simply carry on and get yourself ready to use Gambas if not, don 't worry—we 're nearly there.

Open a terminal and move to the directory where you 've saved the bz2 file. If you 're going to use 1.09, it will be called gambas-1.0.9.tar.bz2. Now bunzip2 the file, and follow the installation instructions (unless the distribution page has given you some additional parameters for your distribution).

With that, you 're ready to use Gambas. Type gambas on the command line, and the welcome screen appears (Figure 1).
ex2-1.png
Figure 1. The Gambas Welcome Screen

The Gambas screen gives you access to example applications—you 'll find these very useful if you are new to programming. In this case, click on New Project. Gambas now displays its project creation wizard, so follow the instructions to create your first project. When asked create a graphical project, set the name to bugTracker (note that underscores are not allowed), and then set the title to Bug Tracker. You also will be asked where to store your project. I suggest you create a new directory called Gambas in your home directory and then use it for all future projects as well.

Next, we jump straight in to the creation of a new form. Right-click in the project window, select New and then Form. Gambas puts you into its form creation wizard. All you need to do now is give the form a name—call it frmBugTracker. (Don 't leave it as Form1. That 's very bad practice).

Now, you can start adding the elements to the form—and, the first one to add is a Close button. Why do this first? Quite simply, you always want to be able to close a form, or an application, for that matter, cleanly and easily, so get into this habit as quickly as possible. To create the button, click on its icon in the toolbox (the icon is a box with OK on it), and then use the left-mouse button to draw it onto the form. By default, the button is called Button1, but exactly like the form, we rename it. Click on the button, and press F4 to display the Properties box. Change its name to btnClose and its text to Close.

The button won 't do anything yet—we have to add some code to it, which is really, really easy. If you double-click on the button, Gambas takes you to the code window, and you 'll find an empty btnClose_Click subroutine. Modify it so that it says:

PUBLIC SUB btnClose_Click()

ME.Close

END
ex2-2.png
Figure 2. Designing a New Gambas Form

You should notice something as you type in the code—as soon as you put in the period, a drop-down menu appears, giving you all of the methods and parameters associated with the ME object—in this case, ME refers to the form, so ME.Close means close this form.

Suppose you want to see the results of your hard work now. Go to the Project window and click on the little green run button. And there you are—your first Gambas application. You even can close the form with your brand-new button.

Before building the application itself, we need to think about what we want the bug tracker to do. Then, we need to have a look at the data—how it is to be arranged, and what is going to be stored.

The bug tracker will have to do the following:

*

Have the details of new bugs entered.
*

Record who raised the bug.
*

Have a bug assigned to a programmer.
*

Update the status of the bug.
*

Record when the bug was raised.
*

Record the release for the bug fix.
*

Provide the ability to view new, working and complete bugs.

The data required is therefore:

*

Who raised the bug.
*

Who is fixing the bug.
*

Bug details.
*

Developer details: ID, first name, surname and user name.
*

Bug Details: ID, description, date created, ID of raiser, ID of developer, status, release number and application details.

From this, we can start building a database schema. Start by creating a file (such as database_schema.sql) that we will use to create the database:

/*
First you must create the database. The listing
table includes only the user ids for raised by
and coder .
*/
create database bugtracker

create table bugtracker.listing (
id int auto_increment primary key,
details longtext,
application_id int,
release float,
raised_by_id int,
coder_id int,
status_id int,
created datetime,
priority int,
status int);



Un exemple d'acces aux fichiers

Afin de faire un tour plus en pratique de Gambas, voyons comment créer une petite application. Faisons simple : le programme ouvrira un fichier, comptera les occurences de chacun des mots trouvés et les affichera dans un tableau, trié par nombre d’occurence décroissante.

Pour cela, je crée un formulaire qui contient un menu et une ListBox (fenêtre pouvait contenir une liste). L’éditeur de menus est très simple d’utilisation.

Dans le même temps, Gambas a créé une classe de même nom que mon formulaire (FMain). Cette classe contient initialement ce qui a été demandé lors de la création du formulaire. Dans mon cas, j’ai un constructeur et un destructeur.

L’éditeur de menu est très simple, il suffit d’ajouter les entrées sous forme hiérarchique.

De même, ajouter la réponse à un évènement se fait aisément : un clic droit sur la widget concernée, selection de l’évènement dans le sous-menu approprié. Une méthode apparait alors dans le source. Ici, j’ai ajouté le traitement de l’évènement Enter sur la liste. La métode créée est PUBLIC SUB ListBox1_Enter(). J’y ajoute pour tester une commande ListBox1.ADD( Un ), qui ajoutera à la liste un élément contenant la chaîne Un .

gambas03th.png

 

Pour tester, le raccourci F5 correspond au menu Projet->Démarrer. C’est bon, à chaque fois que le curseur de la souris entre dans la zone de la liste, une ligne contenant le mot Un est ajoutée.

Revenons au test. Dans le menu, j’ai ajouté une entrée Fichier qui contient Ouvrir... et Quitter. Un clic sur Quitter fait sortir de l’application. Un clic sur Ouvrir va demander un fichier.

gambas04th.png

 

Voici ce que cela donne :

PRIVATE SUB Lire(sChemin AS String)
PRINT sChemin
END
PUBLIC SUB Ouvrir_Click()
Dialog.Filter = [ All files (*.*) ]
IF Dialog.OpenFile() THEN RETURN
Lire(Dialog.Path)
END

La méthode Ouvrir_Click() a été générée automatiquement en cliquant sur Ouvrir du menu. Il a resté à la remplir. Dialog est un objet qui permet d’ouvrir des boites de dialogues commune, ouvrir un fichier, sauver un fichier ou encore choisir une couleur. On lui donne avant une liste de filtres, ici tous les fichiers, puis on provoque son ouverture. Si aucun fichier n’a été sélectionné, la fonction renvoie vraie (étrange non ?) et l’on sort de la méthode. Sinon, on appelle une fonction chargée de lire le chemin.

On remarquera que l’éditeur possède une aide à la frappe. À peine appuyé entrée à la fin de la déclaration de la méthode qu’il ajoute automatiquement le END correspondant.

On remarque aussi que Gambas possède un typage des variables, qu’il faut d’ailleurs déclarer. Ainsi, le paramètre sChemin est déclaré comme étant une chaîne de caractères (String).

La méthode Lire() est privée, car interne à FMain. Pour le moment, dedans, on ne fait qu’un PRINT, pour voir. Effectivement, en démarrant le programme, si on choisi un fichier, il sera affiché dans la console de debug. Parfait.

Le reste des commentaires se trouve dans le fichier source, disponible dans l’archive liée à cet article. Voici un appercu du résultat sur un texte assez long. On remarquera au passage les limites de ce petit programme de texte, qui fait la différence entre suis et suis, .

gambas05th.png

 

Résumé

  • Type : langage orienté objet
  • Famille : Basic
  • Environnement : Intégré avec développement graphique d’interfaces
  • Compilation : byte code exécuté par une machine virtuelle fournie

Un langage qui peut s’avérer utile pour le développement des petites applications rapidement. Pour ceux qui utilisent déjà un Basic, cela permettra de ne pas être perdu par une syntaxe étrange, même si chaque Basic a ses particularités.

Il manque encore cependant beaucoup d’exemples de code, ce qui fait que l’on se perd rapidement en cherchant dans la documentation en long et en large.

 

);



debuter en gambas

0

Gambas est un langage de programmation et un environnement de développement graphique sous Linux. Le langage est un dialecte du Basic.

Installation

Gambas est un outil complet. Pour programmer en Gambas, il faut Gambas. Chargez le nécessaire sur la page officielle. Faites attention aux prérequis, Gambas en demande quelques-uns (à la date de rédaction, X11, QT3, KDE3, PostgreSQL et MySQL, les composants bases de données et KDE pouvant être désactivés).

La version utilisée ici est la version 0.80.

Premiers pas

Une fois lancé, Gambas propose d’ouvrir un projet ou d’en créer un. Un certain nombre d’applications exemples est disponible. Il est intéressant d’en ouvrir une pour voir à quoi ressemble la programmation Gambas.

gambas01.png

 

Immédiatement, si votre système est correctement configuré, vous remarquerez que les textes ne concernant pas le langage sont affichés en français.

Différentes fenêtres sont affichées :

  • Projet : la fenêtre principale, qui contient le menu et l’arborescence des composants de l’application.
  • Propriétés : cette fenêtre, classique des environnements de développement d’interfaces, regroupe les propriétés d’un composant graphique sélectionné.
  • Boîte à outils : cette fenêtre contient les différents composants qui peuvent être ajoutés à une interface.

Si vous double-cliquez sur un composant de code source dans la fenêtre projet, celui-ci apparaîtra. De façon similaire, la fenêtre de construction d’interface apparaîtra en double-cliquant sur un composant de type formulaire.

 

gambas02th.png

Langage objet

Gambas est donc un langage orienté objet reprenant la syntaxe du Basic. Un projet est composé de classes, de formulaires, de modules et de données.

Les classes, comme dans les autres langages orientés objets, sont les modèles qui permettent d’instancier des objets. Comme certains autres langages, comme Java ou C#, une classe et une seule de l’application doit posséder une méthode statique comme point d’entrée du programme. Avec Gambas, cela se spécifie dans la boite de dialogue de création de la classe, ce qui aura pour effet de créer dans le code de la casse une méthode STATIC PUBLIC SUB Main() automatiquement.

Les formulaires sont les différents éléments d’interfaces qui peuvent être affichés et traités par l’application. Créer un formulaire crée automatiquement une classe correspondante, chargée du traitement de ce formulaire.

Les modules sont des fichiers qui contiennent des utilitaires pour l’application. Des fonctions par exemple. D’après la documentation, les modules sont présents pour faciliter la migration de programmes venant d’autres Basic du même style. L’auteur recommande de ne pas utiliser les modules.

Les données sont tous les autres fichiers.

Gambas n’utilise que quelques éléments objets . Il n’y a entre autre pas de concept d’héritage, sauf dans les composants utilisé. Il existe cependant un type Object qui désigne un objet de type quelconque. L’orientation objet de Gambas permet cependant quelques protections : une méthode peut-être publique ou privée. Une méthode peut aussi être une méthode de classe. Même chose pour les variables membres.

Le but du langage est clair : crée rapidement des applications, très probablement en fournissant une interface graphique, avec des concepts simples et un minimum de réutilisabilité.

Instructions

Gambas est un Basic, et les mots clés d’un Basic moderne sont utilisés. Ainsi, en plus du classique FOR existe FOR EACH, à appliquer sur une Collection.

Un sytème de gestion d’erreur est offert avec les instructions CATCH ou bien TRY. La gestion des fichiers n’est pas oubliée, ainsi que les entrées consoles de données.

Dans les fonctions de base, on trouve aussi une gestion des types, des conversions entre les types de base, des opérations bit à bit, la gestion du temps, des fonctions mathématiques, une gestion de chaînes de caractères,…

Composants

À un programme Gambas peuvent être associés des composants. Cette association se fait dans les propriétés du projet (menu Projet -> Propriétés). Ces composants apportent au langage des classes traitant un domaine précis. Par exemple gb.db traite les bases de données et gb.qt gère les interactions de l’interface graphiques.

Toutes les fonctions et objets offertent par ces composants sont documentées dans l’aide que l’on peut ouvrir avecn le menu ?->Navigateur d 'aide


 

);



wpict.gif

ce Widget affiche une image dans votre fenetre.
pour le creer, cliquer sur le symbole picture (image du Gambas) dans la boite Widget.

Dessiner les contours de l 'image dsans la fenetre Form
Maintenant cliquer sur la propriete PICTURE dans la boite proprietes pour aller chercher votre image a afficher.
spict.gif

Un explorateur de fichier s 'ouvre. Parcourez l 'arborescence a la recherche de votre image puis validez par OK.
L 'image du Gambas change par votre image.

);



creation du bouton

0

CREATION  D'UN BOUTON


button.gif


Pour créer un bouton,cliquez sur le symbole bouton dans la boite widget :

selbut.gif
Dessinez la taille du bouton sur votre feuille FORM.
Modifiez la propriete TEXT du bouton avec la boite propriete (F4) pour changer le texte du bouton en NAME OF THE BUTTON :

buttonmodif.gif


EVENEMENT

Notre bouton ne sert a rien si nous ne lui affectons pas un evenement.
Lorsque nous cliquons dessus, nous voulons modifier le label1 en lui affichant HELLO WORLD !
Double cliquez sur le bouton et la fenetre de code s 'affiche dans la fonction button1_clic :
evbut.gif

taper ce code :

<table cellspacing= 2 cellpadding= 2 border= 0 style= text-align: left width: 90%; background-color: rgb(255, 255, 153);


creation d un label

0
label.gif


Le Label permet d 'ajouter des textes a votre fenetre.
Vous pouvez le modifier dynamiquement pendant l 'execution de votre application.

Pour creer un label cliquez sur le bouton LABEL ( symbolise par le A) sur la boite Widget
sellab1.gif
Dans la boite proprietes modifiez le texte ecrit dans le label,c'est aussi simple que cela

);



form.gif

 


La fenetre est a la base de toutes applications graphiques.
pour la creer, voici la procedure :

Dans la fenetre projet (ci dessous) faites un clic droit sur formulaire puis cliquer sur NOUVEAU-&gtFORMULAIRE
wproject.gif

une fenetre apparait donc sur le bureau. Saisir le nom de la classe Fmain par exemple.

);