Version: 1.1
Date: Le 6 août 1997
Rédaction: Jocelyn Houle
Direction: Jean Vaucher
L'exemple ci-dessous montre une ItemWindows avec deux champs: un nom et un mot de passe. Le code correspondant est donné en dessous.
BEGIN EXTERNAL CLASS WindowTools; INSPECT NEW MainWindow ("Login") DO BEGIN REF(Button) OK; REF(TextItemWindow) Login; REF(TextItemWindow) Password; SetSize(300, 120); Login :- MakeTextItem("Login", 10).PlaceAt(100, 10); Password :- MakeTextItem("Password", 15).PlaceBelow(Login); Password.NoEcho; !Le mot de passe sera cache ("bulleted"); OK :- MakeButton("OK").PlaceDownRight; Show; OK.wait; % Affichage des valeurs courantes OutText("Login: " & Login.Get); OutImage; OutText("Password: " & Password.Get); OutImage; END; END;
On a commencé par créer les 2 ItemWindows qui étaient toutes les deux de types TEXT:
Login :- MakeTextItem("Login", 10); Password :- MakeTextItem("Password", 15);
Ensuite, on a attendu que le bouton "Ok" soit appuyé, et on a affiché les valeurs de chaque zône, à l'aide de la procédure Get:
OutText("Login: " & Login.Get); OutImage; OutText("Password: " & Password.Get); OutImage;
![]() |
BoolItemWindow | Pour les booléens |
![]() |
CharItemWindow | Pour les caractères |
![]() |
TextItemWindow | Pour les textes |
![]() |
IntItemWindow | Pour les entiers |
![]() |
RealItemWindow | Pour les nombres à virgule flottante |
et sont créés à l'aide des commandes:
![]() |
ref(BoolItemWindow) | MakeBoolItem(lb); | text lb; |
![]() |
ref(CharItemWindow) | MakeCharItem(lb); | text lb; |
![]() |
ref(TextItemWindow) | MakeTextItem(lb, nc); | text lb; integer nc; |
![]() |
ref(IntItemWindow) | MakeIntItem (lb, nc); | text lb; integer nc; |
![]() |
ref(RealItemWindow) | MakeRealItem(lb, nc); | text lb; integer nc; |
où lb est le label (i.e. le texte/mot clé spécifiant de quoi il s'agit) et où nc est le nombre de caratères que la zône doit avoir.
Il existe quelques procédures intéressantes, accédées par notation pointée, avec lesquelles vous pourrez expérimenter. Notez que certaines de ces fonctions ont été héritées de surclasses. Il ne sera donc pas surprenant d'apprendre qu'il existe d'autres procédures qui peuvent être utilisées, mais qui ne sont pas spécifiquement documentées ici.
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
WindowTools se charge automatiquement d'un certain traitement d'erreurs lors de l'entrée. Ceci se résume à filtrer les caractères qui sont destinés à la fenêtre; les caractères "illégaux" sont tout simplement ignorés.
Exemples: | Salut |
123 | |
1*(1+Y) = 8 donc Y = 7 |
Exemples: | A |
8 | |
? |
Exemples: | 3 |
123 | |
-8 + 4 - 2 (qui retournera -8 seulement) |
Note: Pour des raisons de facilité d'implantation, la zône d'entrée d'un RealItemWindow peut accepter plus d'un point. Ainsi, on pourra écrire le nombre 1.2.3 en entrée, mais il sera traduit en 1.2 lors de la transformation en REAL (à l'aide du Get).
Exemples: | 9 |
-0.978 | |
+12.47 |
Exemples: | Y | ---> TRUE |
N | ---> FALSE | |
4 | ---> inverse la valeur actuelle |
Pour parcourir les ItemWindows, on peut se promener d'une zône à l'autre en utilisant les flèches (haut et bas). La touche ENTER a exactement le même effet que la flèche en-bas.