Tivoli Service Desk 6.0 Developer's Toolkit - Manuel de référence du langage TSD Script

Gestion des fenêtres (suite)

Retour à la page principale


WinSetFont

Description

Définit la police des opérations d'écriture suivantes dans une fenêtre standard.

Syntaxe

FUNCTION WinSetFont(VAL whdl: WINDOW, VAL fontName: STRING,
                    VAL pointSize: INTEGER,
                    VAL faceStyle: INTEGER): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle la police doit être définie. Il doit s'agir d'une fenêtre standard créée par WinCreate.
fontName Nom de la police à définir en fonction du système d'exploitation. Pour obtenir une liste des polices système par défaut, reportez-vous à la section Remarques relative à cette instruction.
pointSize Taille de la police en points.
Les tailles en points des polices tramées disponibles pour les polices standard sont les suivantes : 8, 10, 12, 14, 18 et 24.
Les polices ne sont pas toutes disponibles dans toutes les tailles.
Les polices vectorielles peuvent être disponibles dans toutes les tailles. Il existe des polices vectorielles disponibles pour toutes les polices par défaut sauf pour les polices à espacement proportionnel ou à espacement fixe. Ces polices sont uniquement disponibles en taille 10.
faceStyle Ensemble d'indicateurs pouvant être combinés pour former un style de police composé.
Les valeurs admises sont $FontPlain (valeur par défaut), $FontBold, $FontUnderScore et $FontStrikeOut.
Les polices ne prennent pas toutes en charge tous les styles. Ces styles sont ajoutés à une police existante. Certaines polices sont créées avec un style tel que gras ou itlaique. Dans ce cas, le style est toujours présent.

Remarques

Les constantes prédéfinies ci-après permettent d'accéder aux polices système par défaut :

Exemple

KNOWLEDGEBASE WinFont;
    ROUTINES
 PROCEDURE FontExample;
PRIVATE
CONSTANTS
 MENU_LIST IS {'File' ,'Exit', '',
               'Font','Courier','Helvetica','System Proportional',
               'System Monospaced','Times Roman','Symbol Set',''
   }: LIST OF STRING;
     ROUTINES
 EVENT MainEvent(REF fontName: STRING) IS
    ROUTINES
 PROCEDURE PaintFont(VAL whdl: WINDOW, VAL fontName: STRING)
 IS
 ACTIONS
 WinSetFont(whdl,'System Proportional',10,
            $FontPlain);
 WinClear(whdl);
 WinSetFont(whdl,fontName,8,$FontPlain);
 WinWriteAt(whdl,1,1,fontName & ' 8 ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,10,$FontPlain);
 WinWrite(whdl,fontName & ' 10 ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,12,$FontPlain);
 WinWrite(whdl,fontName & ' 12 ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,14,$FontPlain);
 WinWrite(whdl,fontName & ' 14 ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,18,$FontPlain);
 WinWrite(whdl,fontName & ' 18 ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,24,$FontPlain);
 WinWrite(whdl,fontName & ' 24 ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,24,$FontBold);
 WinWrite(whdl,fontName & ' 24 Bold ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,24,$FontItalic);
 WinWrite(whdl,fontName & ' 24 Italic ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName,24,$FontUnderscore);
 WinWrite(whdl,fontName & ' 24 Underscore ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName, 24, $FontStrikeOut);
 WinWrite(whdl,fontName & ' 24 StrikeOut ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,fontName, 48, $FontPlain);
 WinWrite(whdl,fontName & ' 48 ');
 WinWriteLn(whdl,
            'abcdefghijllmenopqrstuvwxyz
            ABCDEFGHIJKLMNOPQRSTUVWXYZ');
 WinSetFont(whdl,'System Proportional',10,
            $FontPlain);
 END (* Paint Font *);
 PROCEDURE ProcessMenu(VAL whdl: WINDOW,
 VAL selection: INTEGER)
 IS
 ACTIONS
 WHEN selection IS 101 THEN
 SendMessage(whdl,$MsgClose);
    ELSWHEN 201 THEN
 fontName := $Courier;
 PaintFont($Handle,fontName);
 ELSWHEN 202 THEN
 fontName := $Helvetica;
 PaintFont($Handle,fontName);
 ELSWHEN 203 THEN
 fontName := $SystemProportional;
 PaintFont($Handle,fontName);
 ELSWHEN 204 THEN
 fontName := $SystemMonospaced;
 PaintFont($Handle,fontName);
 ELSWHEN 205 THEN
 fontName := $TimesRoman;
 PaintFont($Handle,fontName);
 ELSWHEN 206 THEN
 fontName := $SymbolSet;
 PaintFont($Handle,fontName);
              END;
 END (* Process Menu *);
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,MENU_LIST);
  ELSWHEN $MsgPaint THEN
 PaintFont($Handle,fontName);
  ELSWHEN $MsgMenu THEN
 ProcessMenu($Handle,$MenuSelection);
              END;
    END (* Main Event *);
 PROCEDURE FontExample IS
 VARIABLES
 whdlMain: WINDOW;
 ACTIONS
 WinCreate($Desktop,whdlMain,MainEvent{$TimesRoman},
           0,0,60,20,'Font example',
           BitOr($WinBorder,$WinTitle,
           $WinResize,$WinMenu,
           $WinVScroll,$WinMinMax,
           $WinTaskList,
           $WinSysMenu,$WinAutoPos));
 WinWait(whdlMain);
 END (* Font Example *);

Codes retour

Voir aussi


WinSetIconBar

Description

Définit et affiche les icônes d'une barre d'outils.

Syntaxe

FUNCTION WinSetIconBar(VAL buttonList : LIST
                       of $ToolbarNodeRecord):
                       INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de fenêtre avec un style $WinIconBar. Il peut s'agir d'une fenêtre standard ou d'une fenêtre défilante.
iconList Liste de chaînes ou liste d'enregistrements $ToolbarItem. Dans le cas de la liste de chaînes, chaque chaîne est le nom d'un fichier image s'affichant dans la barre d'icônes. Si vous utilisez l'autre formulaire ($ToolbarNodeRecord), il est possible d'indiquer des attributs supplémentaires tels l'ID menu associé à un bouton de barre d'outils et l'"infobulle" correspondant au bouton de la barre d'outils.

Remarques

Une barre d'outils est un contrôle similaire à une barre de menus. Elle apparaît sous la barre de titre et la barre de menus d'une fenêtre. Elle se compose d'une rangée d'icônes qui peuvent être sélectionnées à l'aide du bouton droit de la souris.

Il n'existe pas d'interface clavier vers la barre d'outils ou les icônes y figurant. Lorsque vous cliquez sur une icône, un message menu ($MsgMenu) est envoyé au gestionnaire d'événements de fenêtre. Le premier paramètre d'événement (entier) est l'ID icône.

Remarque : Les icônes sont numérotées de 1 à 99, l'icône la plus à gauche ayant l'ID 1.

Les icônes doivent avoir le format d'icône standard. Les fichiers doivent se trouver dans le réperotire en cours. Dans le cas contraire, le chemin d'accès complet de chaque fichier doit être indiqué. Tout fichier non trouvé ou dans un format incorrect est ignoré. Les ID sont en fait attribués en fonction de la position des icônes dans la liste d'icônes et non en fonction de leur position à l'affichage. La transmission d'une liste inconnue provoque l'effacement et le masquage de la barre d'outils.

Remarque : L'ajout d'une barre d'outils à une fenêtre qui n'en a pas, entraîne l'envoi d'un message $MsgSize à la fenêtre avec la nouvelle taille de la zone utilisateur.

Exemple

Utilisez le formulaire de liste de chaînes de la manière suivante :

WHEN $Event IS &MsgCreate THEN
 WinSetIconBar($Handle, {SEARCH,CO','PRINT.ICO'}: LIST OF STRING);
              END;

Utilisez le formulaire de liste de $ToolbarItem de la manière suivante :

     WHEN $Event IS $MsgCreate THEN
 theList[1].ImageFile:='SEARCH.BMP';
 theList[1].ItemID:=204;
 theList[1].ToolTip:='Search for Text';
 theList[2].ImageFile:='PRINT.BMP';
 theList[2].ItemID:=106;
 theList[2].ToolTipText:='Print File';
 theList[3].ImageFile:='SAVE.BMP';
 theList[3].ItemID:=103;
 theList[3].ToolTipText:='Save File';
 WinSetIconBar($Handle,theList);
              END;

Codes retour

Voir aussi


WinSetMenuBar

Description

Définit les sélections d'une barre de menus de fenêtre.

Syntaxe

FUNCTION WinSetMenuBar(VAL whdl: WINDOW,
                       VAL menuList: LIST OF STRING):
                       INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle l'opération doit être effectuée.
menuList Liste des chaînes indiquant à un menu de s'afficher sur une barre de menus de fenêtre.
Pour plus d'informations sur le format de la liste, reportez-vous à la section Remarques relative à cette instruction.

Remarques

WinSetMenuBar permet de définir la barre de menus d'une fenêtre créée à l'aide du style $WinMenu.

La liste des chaînes transmises à WinSetMenuBar indique la totalité de la structure du menu. Les options de menu pricipales (horizontales) et les options secondaires (verticales) sont indiquées. Ces options sont encodées au format suivant : haut vers le bas et de gauche à droite. Les chaînes vides font office de séparateurs. Par exemple, si l'option de menu la plus à gauche est Fichier et que les options de ce menu sont Nouveau, Enregistrer, Enregistrer sous et Quitter, la liste de menus se présente de la manière suivante :

{'Fichier','Nouveau','Enregistrer','Enregistrer ~Sous','Quitter',''}: LIST OF STRING;

La seconde colonne d'options de menu vient ensuite.

Vous pouvez attribuer un tilde (~) à une lettre pour qu'elle devienne le sélecteur de l'option de menu. Les commutateurs figurant dans le tableau ci-après peuvent être placés au début d'une option de menu pour obtenir les résultats décrits ci-dessous.

Commutateur Résultat
/C L'option de menu est initialement cochée.
/D L'option de menu est initialement désactivée.
/S L'option de menu est statique et ne peut pas être sélectionnée.
/L L'option de menu n'est pas affichée. Un séparateur de ligne apparaît à sa place.
/H Le menu reste ouvert lorsque l'option est sélectionnée.
// Une barre oblique (/) est affichée. Aucun autre commutateur n'est appliqué.

L'ajout d'une barre de menus à une fenêtre n'en possédant pas entraîne l'envoi d'un message $MsgSize à la fenêtre avec la nouvelle taille de la zone utilisateur.

Exemple

KNOWLEDGEBASE WinMenu;
TYPES
 MainWinRec IS RECORD
 width: INTEGER;
 height: INTEGER;
 fontName: STRING;
 mousePointer: STRING;
 statusBar: STRING;
              END;
CONSTANTS
 MENU_LIST IS {'File' ,
 '~Quitter', '', (* 101 *)
 'Menu',
 '~Activer', (* 201 *)
 '~Désactiver', (* 202 *)
 '/L ', (* Put separator line in menu *)

'/C/D~Vérifier',
 (* 204 start check and disabled *)
 '', (* Mark end of menu sub menu *)

'Aide',
 'A propos de', (* 301 *)
 '' (* Mark end of help submenu *)
   }: LIST OF STRING;
    ROUTINES
 PROCEDURE MenuExample;
PRIVATE
    ROUTINES
 EVENT MainEvent(REF mainWinData: MainWinRec) IS
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,MENU_LIST);
  ELSWHEN $MsgPaint THEN
    WinClear( $Handle );
  ELSWHEN $MsgMenu THEN
    WHEN $MenuSelection IS 101 THEN
 SendMessage($Handle,$MsgClose);
    ELSWHEN 201 THEN
 WinMenuEnableItem($Handle,204,TRUE);
 ELSWHEN 202 THEN
 WinMenuEnableItem($Handle,204,FALSE);
 ELSWHEN 204 THEN
 IF WinMenuItemIsChecked($Handle,204) THEN
 WinMenuCheckItem($Handle,204,FALSE);
ELSE
 WinMenuCheckItem($Handle,204,TRUE);
              END;
 ELSWHEN 301 THEN
 WinMessageBox($Handle,'About',$MBOK,'Menu example');
              END;
              END;
    END (* Main Event *);
 PROCEDURE MenuExample IS
 VARIABLES
 whdlMain: WINDOW;
 ACTIONS
 WinCreate($Desktop,whdlMain,MainEvent,0,0,60,20,
           'Menu example',
           BitOr($WinBorder,$WinTitle,
           $WinMenu,$WinMinMax,
           $WinTaskList,$WinAutoPos,
           $WinSysMenu));
 WinWait(whdlMain);
 END (* Menu Example *);

Codes retour

Voir aussi


WinSetPopupMenu

Description

Définit le menu en incrustation d'une fenêtre remplaçant tout menu en incrustation existant. Le menu en incrustation apparaît automatiquement lorsque la souris est utilisée de manière conforme à la plateforme. Les sélections du menu en incrustation sont indiquées par le message $MsgMenu.

Syntaxe

FUNCTION WinSetPopupMenu ( VAL whdl: WINDOW,
                          VAL menuList: LIST OF STRING,
                    ): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur du formulaire de boîte de dialogue ou de la fenêtre dont le texte du titre doit être modifié.
menuList Liste des options de menu de cette fenêtre.

Remarques

La liste des chaînes transmises à WinSetPopupMenu indique la totalité de la structure du menu. Les options de menu pricipales (horizontales) et les options secondaires (verticales) sont indiquées. Ces options sont encodées au format suivant : haut vers le bas et de gauche à droite. Les chaînes vides font office de séparateurs. Par exemple, si l'option de menu la plus à gauche est Fichier et que les options de ce menu sont Nouveau, Enregistrer, Enregistrer sous et Quitter, la liste de menus se présente de la manière suivante :

{'Fichier','Nouveau','Enregistrer','Enregistrer ~Sous','Quitter',''}: LIST OF STRING;

La seconde colonne d'options de menu vient ensuite.

Vous pouvez attribuer un tilde (~) à une lettre pour qu'elle devienne le sélecteur de l'option de menu. Les commutateurs figurant dans le tableau ci-après peuvent être placés au début d'une option de menu pour obtenir les résultats décrits ci-dessous.

Commutateur Résultat
/C L'option de menu est initialement cochée.
/D L'option de menu est initialement désactivée.
/S L'option de menu est statique et ne peut pas être sélectionnée.
/L L'option de menu n'est pas affichée. Un séparateur de ligne apparaît à sa place.
/H Le menu reste ouvert lorsque l'option est sélectionnée.
// Une barre oblique (/) est affichée. Aucun autre commutateur n'est appliqué.

L'ajout d'une barre de menus à une fenêtre n'en possédant pas entraîne l'envoi d'un message $MsgSize à la fenêtre avec la nouvelle taille de la zone utilisateur.

Si vous utilisez WinLoadPopupMenu, le menu s'affiche automatiquement lorsque la souris est utilisée de manière conforme à la plateforme. Lorsque l'utilisateur sélectionne une option de menu, un message $MsgMenu est envoyé à la fenêtre. Ce comportement diffère de celui entraîné par l'ancienne fonction WinPopup. Dans le cas de WinPopup, l'utilisateur doit se servir correctement de la souris et appeler WinPopup pour afficher le menu en incrustation. WinPopup renvoie ensuite l'ID de l'option de menu sélectionnée.

Exemple

KNOWLEDGEBASE popup;
    ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
 VARIABLES
 (*Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
 VARIABLES
 MAIN_MENU {'File',
 '/CNew',
 '/DExit'
   }: LIST OF STRING;
ACTIONS
 WinCreate($Desktop, mainWindow, $NullHandler, 10, 10, 80, 25, 'WinSetPopupMenu Test', $WinDefaultStyle);
 (* Set the popup menu. The 'New' menu item is initially checked and *)
 (* the 'Exit' menu item is initially diabled *)
           WinSetPopupMenu(mainWindow, MAIN_MENU);
           WinWait(mainWindow);
              END;

Codes retour

Voir aussi

WinLoadPopupMenu


WinSetScrollBar

Description

Définit la position et la taille d'une barre de défilement.

Syntaxe

FUNCTION WinSetScrollBar(VAL whdl: WINDOW,
 VAL scrollBarID, windowSize,
 dataSize,windowLoc: INTEGER):
 INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle l'opération doit être effectuée.
scrollBarID Libellé de la barre de défilement à définir. Il doit s'agir de $WinVScroll (barre verticale) ou de $WinHScroll (barre horizontale). Si la barre de défilement désignée n'existe pas, aucune action n'est effectuée. Aucune erreur n'est indiquée.
windowSize Taille de la fenêtre en unités de données. Ces unités sont arbitraires et dépendent uniquement des paramètres dataSize et windowLoc. Ces paramètres doivent être exprimés dans les mêmes unités.
dataSize Taille des données, exprimée dans les unités utilisées pour indiquer la taille de la fenêtre.
windowLoc Emplacement dans la partie supérieure ou gauche de la fenêtre, exprimé dans les mêmes unités que les paramètres précédents.

Exemple

KNOWLEDGEBASE FileView;
CONSTANTS
 MENU_OPEN IS 101;
 MENU_EXIT IS 102;
 MENU_LIST IS {'~File','~Open','e~xit',''}: LIST OF STRING;
TYPES
 EditorData IS RECORD
 fileName: STRING;
       yLen : INTEGER;
 lineCount: INTEGER;
 pageTop: INTEGER;
 statusLine: STRING;
 lines: LIST OF STRING;
               END;
    ROUTINES
 PROCEDURE FileView;
PRIVATE
    ROUTINES
 EVENT EditorEvent(REF data: EditorData) IS
 VARIABLES
 loc: INTEGER;
    ROUTINES
 PROCEDURE ProcessMainMenu(VALUE selection: INTEGER) IS
 VARIABLES
 fileName: STRING;
 editFile: FILE;
  result: INTEGER;
 ACTIONS
 WHEN selection IS MENU_OPEN THEN
 WinFileDialog($Handle, fileName, '*.KB', 5, 5,
               'Select file to edit', 0);
 result := FOpen(editFile, fileName, $Read);
 IF result <= 0 THEN
        WinMessageBox($Handle, 'Error',
               $MBOK + $MBIconError,
               'Can not open file ' &
               fileName);
         Exit;
              END;
 data.lineCount := FReadText(editFile, data.lines);
 FClose(editFile);
 data.pageTop := 0;
 data.statusLine := ' File: ' & fileName;
 PostMessage($Handle, $MsgPaint);
 PostMessage($Handle, $MsgPaintStatus);
 ELSWHEN MENU_EXIT THEN
      SendMessage( $Handle, $MsgClose );
              END;
 END (* Process Main Menu *);
 PROCEDURE ProcessChar(VALUE character: INTEGER) IS
 ACTIONS
 WHEN character IS $KeyDownArrow THEN
 IF data.pageTop + data.yLen < data.lineCount THEN
 data.pageTop := data.pageTop + 1;
 PostMessage($Handle, $MsgPaint);
              END;
 ELSWHEN $KeyUPArrow THEN
 IF data.pageTop > 0 THEN
 data.pageTop := data.pageTop - 1;
 PostMessage($Handle, $MsgPaint);
              END;
 ELSWHEN $KeyPageDown THEN
 IF data.pageTop + data.yLen < data.lineCount THEN
 data.pageTop := data.pageTop + data.yLen;
 PostMessage($Handle, $MsgPaint);
              END;
 ELSWHEN $KeyPageUp THEN
 IF data.pageTop > 0 THEN
 data.pageTop := data.pageTop - data.yLen;
 IF data.pageTop < 0 THEN
 data.pageTop := 0;
              END;
 PostMessage($Handle, $MsgPaint);
              END;
 ELSWHEN $KeyControlPageDown THEN
 IF data.pageTop + data.yLen < data.lineCount THEN
 data.pageTop := data.lineCount - data.yLen;
 PostMessage($Handle, $MsgPaint);
              END;
 ELSWHEN $KeyControlPageUp THEN
 IF data.pageTop > 0 THEN
 data.pageTop := 0;
 PostMessage($Handle, $MsgPaint);
              END;
              END;
 END (* ProcessChar *);
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle, MENU_LIST);
 data.lineCount := 0;
 data.pageTop := 1;
 data.statusLine := 'File:';
 ELSWHEN $MsgSize THEN (* Size Message *)
 data.yLen := $EventParm(2, INTEGER);
 WinSetScrollBar($Handle,$WinVScroll,data.lineCount,
                 data.yLen,data.pageTop);
  ELSWHEN $MsgPaint THEN
 WinSetScrollBar($Handle,$WinVScroll,data.lineCount,
                 data.yLen,data.pageTop);
 FOR loc := 1 to data.yLen + 1 DO
 IF loc + data.pageTop> data.lineCount THEN
      ExitLoop;
              END;
 WinGoToXY($Handle, 1, loc);
 WinClearEOL($Handle);
 WinWriteAt($Handle,1,loc,data.lines[
 data.pageTop +loc ]);
              END;
 WinGoToXY($Handle, 1, loc);
 WinClearEOW($Handle);
 ELSWHEN $MsgMenu THEN (* Menu Message *)
 ProcessMainMenu($MenuSelection);
  ELSWHEN $MsgChar THEN
 ProcessChar($EventParm(1, INTEGER));
 ELSWHEN $MsgScroll THEN (* Scroll bar *)
 IF $EventParm(1, INTEGER) =$WinVScroll THEN
 data.pageTop := $EventParm(2, INTEGER);
 PostMessage($Handle, $MsgPaint);
              END;
 ELSWHEN $MsgPaintStatus THEN (* Status Bar *)
    WinClear( $Handle );
 WinWrite($Handle,data.statusLine);
              END;
 END (* Editor Event *);
 PROCEDURE FileView IS
 VARIABLES
 whdl: WINDOW;
 ACTIONS
 WinCreate($Desktop,whdl,EditorEvent,0,0,0,0,
           'KML File viewer',
           BitOr($WinBorder,$WinTitle,
           $WinResize,$WinSysMenu,
           $WinMenu,$WinVSCroll,
           $WinStatus,$WinAutoPos,
           $WinAutoSize,$WinTaskList));
 WinWait(whdl);
 END (* File View *);

Codes retour

Voir aussi

WinCreate


WinSetTitle

Description

Définit le texte de la barre de titre d'un formulaire de boîte de dialogue ou d'une fenêtre.

Syntaxe

FUNCTION WinSetTitle(VAL whdl: WINDOW, VAL newTitle: STRING):
 INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la boîte de dialogue ou de la fenêtre dont le texte du titre doit être modifié.
newTitle Nouveau titre du formulaire de la boîte de dialogue ou de la fenêtre.

Remarques

Cette fonction est également mise en oeuvre sous forme de message pouvant être transmis à un formulaire de boîte de dialogue ou à une fenêtre ($MsgSetTitle).

Exemple

KNOWLEDGEBASE title;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
PROCEDURE Main IS
 VARIABLES
 Handle : WINDOW;
ACTIONS
 WinCreate($Desktop,
           Handle,
           $NullHandler,
           1, 1,
           80, 25,
           'If you see this it did not work',
           $WinDefaultStyle);
           WinSetTitle(Handle, 'It works!');
 WinWait(Handle);
              END;

Codes retour


WinSetWaitPointer

Description

Active ou désactive le sablier (pointeur en attente). Cela est effectif dans toutes les fenêtres de l'application.

Syntaxe

WinSetWaitPointer ( VAL state : BOOLEAN ) : INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
state La valeur 'True' affiche le sablier alors que la valeur 'False' restaure le pointeur précédent.

Remarques

WinSetWaitPointer active ou désactive le sablier en fonction de l'état indiqué. Permet d'indiquer si l'application est occupée ou toujours en cours de traitement.

Exemple

KNOWLEDGEBASE wait;
    ROUTINES
PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
 VARIABLES
 (* Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
 VARIABLES
ACTIONS
 WinCreateScrollWindow($Desktop, mainWindow, $NullHandler,
                       10, 10, 80, 25, 'Test Window', $SystemMonoSpaced, 10, $WinDefaultStyle);
 WinSetWaitPointer(TRUE);
 (* Set the pointer to be the wait pointer before doing intensive processing *)
 (* and change it back afterwards *)
 WinSetWaitPointer(FALSE);
 WinWait(mainWindow);
              END;

Codes retour


WinShowWindow

Description

Affiche ou masque une boîte de dialogue ou une fenêtre.

Syntaxe

FUNCTION WinShowWindow(VAL whdl: WINDOW, VAL state: BOOLEAN): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur du formulaire de la boîte de dialogue ou de la fenêtre dont la visibilité doit être modifiée.
state Prend la valeur TRUE si la fenêtre doit être "affichée" ou la valeur FALSE si elle doit être "masquée".

Remarques

Cette fonction est également utilisée sous forme de message envoyé à une boîte de dialogue ou à une fenêtre ($MsgShow).

Exemple

KNOWLEDGEBASE title;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
PROCEDURE Main IS
 VARIABLES
 Handle : WINDOW;
ACTIONS
 WinCreate($Desktop,
           Handle,
           $NullHandler,
           1, 1,
           80, 25,
           'If you see this it did not work',
           $WinDefaultStyle);
 WinShowWindow(Handle, FALSE);
 SysDelay(1000);
 WinShowWindow(HANDLE, TRUE);
 WinWait(Handle);
              END;

Codes retour


WinWait

Description

Passe l'exécution en mode pause lorsqu'une fenêtre existe.

Syntaxe

FUNCTION WinWait(VAL whdl: WINDOW): INTEGER;

Avertissement

N'utilisez pas WinWait lorsque vous traitez un message $MsgDDEInitiate. $MsgDDEInitiate diffuse un message aux applications et verrouille la file d'attente des messages jusqu'à ce qu'une réponse soit renvoyée. Pendant ce temps, l'instruction WinWait lance un gestionnaire d'événements qui attend une réponse de la file d'attente des messages. WinWait empêche les autres applications d'envoyer des messages à la file d'attente. Cela entraîne un blocage et verrouille l'interface utilisateur.

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle l'opération doit être effectuée.

Remarques

WinWait est généralement utilisé dans la procédure principale de l'application dans le but d'attendre que la fenêtre principale ne soit plus active.

Exemple

 VARIABLES
whdl: WINDOW;
ACTIONS
WinCreateScrollWindow($Desktop,whdl,$NullHandler,0,0,0,0,
                      'Window Title','',0,
                      BitOr($WinBorder,$WinTitle,
                      $WinResize,$WinSysMenu,
                      $WinAutoPos,$WinAutoSize,
                            $WinTaskList));
WinWait(whdl);

Codes retour


WinWidth

Description

Demande la largeur d'une fenêtre.

Syntaxe

FUNCTION WinWidth(VAL whdl: WINDOW): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle l'opération doit être effectuée.

Remarques

WinWidth renvoie la largeur en cours de la surface utile de la fenêtre indiquée, exprimée en cellules de caractère.

Exemple

 VARIABLES
width: INTEGER;
ACTIONS
width := WinWidth($Handle);

Codes retour

Voir aussi


WinWrite

Description

Ecrit une chaîne dans une fenêtre à la position en cours.

Syntaxe

FUNCTION WinWrite(VAL whdl: WINDOW,
 VAL outputText: LIST OF STRING): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle écrire. Ce descripteur peut faire référence à une fenêtre standard (générique) ou à une fenêtre défilante.
outputText Liste de chaînes à afficher. Une seule chaîne est également valide. Cette commande est exécutée pour chaque élément de la liste.

Remarques

WinWrite permet d'écrire des informations dans une fenêtre générique ou défilante. Cette fonction ne peut pas être utilisée pour écrire des informations dans une boîte de dialogue.

Recherche de l'emplacement de dessin en cours

TSD Script gère un emplacement de dessin courant pour chaque fenêtre générique et défilante. Le texte écrit par WinWrite apparaît à cet emplacement et l'abscisse de cet emplacement est calculée après l'opération d'écriture. L'emplacement courant peut être déterminé via l'appel des fonctions WinX et WinY.

Utilisation des indicateurs de format

Les indicateurs de format sont en fait des masques de contrôle des données dans lesquels différents bits contrôlent différentes parties du format. WinWrite traite une liste de chaînes vous permettant de contrôler le formatage de l'affichage dans WinWrite et dans d'autres instructions.

En règle générale, toute expression peut être suivie de deux indicateurs de format :

Les indicateurs de format sont séparés de l'expression et les uns des autres par le signe deux-points. Par exemple :

 VARIABLES
  s : STRING;
        i: INTEGER;
r: REAL;
b: BOOLEAN; (* true false *)
d: DATE; (* right, empty pad, usa *)
t: TIME; (* right, empty pad, 24 hour military *)
ACTIONS
s := 'First Bank';
i := 951;
r := 14567.89;
d := {2,15,1956}: DATE;
t := {11,45,0}: TIME;
WinWrite($Handle,s:20); -- outputs 'First Bank'
WinWrite($Handle,i:5); -- outputs '951 '
WinWrite($Handle,r:9:2);-- outputs '14567.89 ';
WinWrite($Handle,d:10:$FmtDateMonthDayYear);
-- outputs '2/11/1956'
WinWrite($Handle,d:10:BitOr($FmtDateMonthDayYear,
 $FmtDateTruncateCentury);
-- outputs '2/11/56 '
WinWrite($Handle,t:7:$FmtTimeAMPM);
-- outputs '11:45 AM';

Remarque : Les divers indicateurs de format sont décrits dans la section Indicateurs de format de types de données.

Indicateurs de format pour les nombres réels

L'indicateur de format pour les nombres réels peut également coder le nombre de chiffres figurant à droite du séparateur décimal. Par exemple,

WinWrite($Handle, r :10 : BitOr(2, $FmtLeftJustify));

justifie la sortie à gauche et affiche deux chiffres à droite du séparateur décimal. Par défaut, les nombres réels affichent six chiffres à droite du séparateur décimal.

Formats par défaut des types de données

Il existe des formats par défaut pour les différents types de données. Ces formats par défaut peuvent varier en fonction des pays car les types de données par défaut (dont les types américains) sont fondés sur les paramètres du panneau de configuration international.

Le tableau ci-après indique les formats par défaut des types de données aux Etats-Unis.

Type de données Format américain par défaut
chaîne $FmtRightJustify
entier $FmtRightJustify+$FmtIntUngrouped+$FmtBlankPad+$FmtIntSignNegOnly+$FmtIntDecimal
réel $FmtRightJustify+$FmtRealUngrouped+$FmtBlankPad+$FmtRealSignNegOnly+
$FmtRealDecimalDot
booléen $FmtRightJustify+$FmtBoolTrueFalse
date $FmtRightJustify+$FmtDateMonthDayYear+$FmtBlankPad+$FmtDateSlashSeparators+
$FmtDateNumericMonth+$FmtDateFullYear
heure $FmtRightJustify+$FmtTimeWithSeconds+$FmtBlankPad+$FmtTimeMilitary

Les formats par défaut peuvent être modifiés à l'aide des fonctions StringFormat, IntegerFormat, RealFormat, BooleanFormat, DateFormat et TimeFormat.

Exemple

KNOWLEDGEBASE Clip;
CONSTANTS
 MENU_REFRESH IS 101;
 MENU_EXIT IS 102;
    ROUTINES
 PROCEDURE ClipView;
PRIVATE
CONSTANTS
 MENU_LIST IS {'~File','~Refresh','E~xit',''}: LIST OF STRING;
    ROUTINES
 EVENT ClipboardEvent(REF clipBoard: STRING) IS
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,MENU_LIST);
 SysGetClipboard(clipBoard);
 WinWrite($Handle,clipBoard);
  ELSWHEN $MsgMenu THEN
 WHEN $MenuSelection IS MENU_REFRESH THEN
 SysGetClipboard(clipBoard);
    WinClear( $Handle );
 WinWrite($Handle,clipBoard);
 ELSWHEN MENU_EXIT THEN
 SendMessage($Handle,$MsgClose);
              END;
              END;
 END (* Clipboard Event *);
PROCEDURE ClipView IS
 VARIABLES
 whdl: WINDOW;
 ACTIONS
 WinCreateScrollWindow($Desktop,whdl,ClipboardEvent{''},
                       0,0,0,0,'KML Clipboard viewer',
                       '',10,
                       BitOr($WinBorder,$WinTitle,
                       $WinResize, $WinSysMenu,
                       $WinMenu,$WinAutoPos,
                       $WinAutoSize,$WinVScroll,
                       $WinHScroll,$WinTaskList));
 WinWait(whdl);
 END (* Clip View *);

Codes retour

Voir aussi

Pour plus d'informations, reportez-vous à la rubrique Data Type Format Flags.


WinWriteAt

Description

Ecrit une chaîne dans une fenêtre à l'emplacement courant.

Syntaxe

FUNCTION WinWriteAt(VAL whdl: WINDOW,
                    VAL xLoc, yLoc: INTEGER,
                    VAL outputText: LIST OF STRING):
                    INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle écrire. Ce descripteur peut faire référence à une fenêtre standard (générique) ou à une fenêtre défilante.
xLoc Abscisse du début de la chaîne.
yLoc Ordonnée du début de la chaîne.
outputText Liste de chaînes à afficher. Une seule chaîne est également valide. Cette commande traite chaque élément de la liste.

Remarques

WinWriteAt permet d'écrire des informations à un emplacement indiqué dans une fenêtre générique ou défilante. A la fin du traitement, WinWriteAt positionne l'emplacement du dessin courant (c'est-à-dire l'emplacement du curseur) à un caractère à droite du dernier caractère écrit.

Exemple

WHEN $Event IS $MsgPaint THEN
 WinWriteAt($Handle,1,1,context.fileName);
              END;

Codes retour

Voir aussi


WinWriteLN

Description

Ecrit une chaîne dans une fenêtre et positionne le curseur au début de la ligne suivante.

Syntaxe

FUNCTION WinWriteLN(VAL whdl: WINDOW,
                    VAL outputText: LIST OF STRING):
                    INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle écrire. Ce descripteur peut faire référence à une fenêtre standard (générique) ou une fenêtre défilante.
outputText Liste de chaînes à afficher. Une seule chaîne est également valide. Cette commande traite chaque élément de la liste.

Remarques

WinWriteLN utilise une boucle FOR implicite : cette fonction écrit la totalité de la liste des chaîne de manière séquentielle.

WinWriteLN est identique à la fonction WinWrite à l'exception près qu'elle positionne le curseur de la fenêtre au début de la ligne suivante.

Exemple

KNOWLEDGEBASE Scroll;
CONSTANTS
 MENU_OPEN IS 101;
 MENU_EXIT IS 102;
 MENU_LIST IS {'~File','~Open','E~xit',''}:
 LIST OF STRING;
TYPES
 EditorData IS RECORD
 statusLine: STRING;
 lines: LIST OF STRING;
              END;
    ROUTINES
 PROCEDURE FileView;
PRIVATE
    ROUTINES
 EVENT EditorEvent(REF editorData: EditorData) IS
    ROUTINES
 PROCEDURE ProcessMainMenu(VALUE selection: INTEGER) IS
 VARIABLES
 fileName: STRING;
 editFile: FILE;
  result: INTEGER;
 ACTIONS
 WHEN selection IS MENU_OPEN THEN
 WinFileDialog($Handle,fileName,'*.KB',5,5,
               'Select file to edit',0);
 IF FOpen(editFile,fileName,$Read) > 0 THEN
 FReadText(editFile,editorData.lines);
 FClose(editFile);
 editorData.statusLine := ' File: ' & fileName;
    WinClear( $Handle );
 WinWriteLn($Handle,editorData.lines);
 PostMessage($Handle,$MsgPaintStatus);
 ELSWHEN MENU_EXIT THEN
 SendMessage($Handle,$MsgClose);
              END;
              END;
 END (* Process Main Menu *);
 ACTIONS
     WHEN $Event IS $MsgCreate THEN
    WinSetMenuBar( $Handle, menuList );
 editorData.statusLine := 'File:';
  ELSWHEN $MsgMenu THEN
 ProcessMainMenu($MenuSelection);
 ELSWHEN $MsgPaintStatus THEN (* Status Bar *)
    WinClear( $Handle );
 WinWrite($Handle,editorData.statusLine);
              END;
 END (* Editor Event *);
 PROCEDURE FileView IS
 VARIABLES
 whdl: WINDOW;
 ACTIONS
 WinCreateScrollWindow($Desktop,whdl,EditorEvent,0,0,0,0,
                       'KML File viewer',$SystemMonospaced,
                       10,
                       BitOr($WinBorder,$WinTitle,
                            $WinResize,
                       $WinSysMenu,$WinMenu,$WinStatus,
                       $WinAutoPos,$WinAutoSize,
                       $WinVScroll,$WinHScroll,
                            $WinTaskList));
 WinWait(whdl);
 END (* File View *);

Codes retour

Voir aussi


WinX

Description

Renvoie l'abscisse de l'emplacement de dessin en cours.

Syntaxe

FUNCTION WinX(VAL whdl: WINDOW): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle l'opération doit être effectuée.

Remarques

WinX diffère de la fonction WinGetXPos car elle renvoie l'emplacement d'un caractère dans une fenêtre alors que WinGetXPos recherche l'angle supérieur gauche d'une fenêtre ou d'une boîte de dialogue.

Exemple

WHEN $Event IS $MsgChar THEN
WHEN $EventParm(1,INTEGER) IS $KeyUpArrow THEN
 WinGoToXY(Handle,$WinX($Handle),$WinY($Handle)-1);
ELSWHEN $KeyRightArrow THEN
 WinGoToXY(Handle,$WinX($Handle)+1,$WinY($Handle));
              END;
              END;

Codes retour

Voir aussi

WinY


WinY

Description

Renvoie l'ordonnée de l'emplacement de dessin en cours.

Syntaxe

FUNCTION WinY(VAL whdl: WINDOW): INTEGER;

Remarques concernant les arguments

Nom de l'argument Description
whdl Descripteur de la fenêtre dans laquelle l'opération doit être effectuée.

Remarques

WinY diffère de la fonction WinGetYPos car elle renvoie l'emplacement d'un caractère dans une fenêtre alors que WinGetYPos recherche l'angle supérieur gauche d'une fenêtre ou d'une boîte de dialogue.

Exemple

WHEN $Event IS $MsgChar THEN
WHEN $EventParm(1,INTEGER) IS $KeyUpArrow THEN
 WinGoToXY(Handle,$WinX($Handle),$WinY($Handle)-1);
ELSWHEN $KeyRightArrow THEN
 WinGoToXY(Handle,$WinX($Handle)+1,$WinY($Handle));
              END;
              END;

Codes retour

Voir aussi

WinX


Tivoli Service Desk 6.0 Developer's Toolkit - Manuel de référence du langage TSD Script

Retour à la page principale

Copyright