Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script

Gestione finestra (Continua)

Ritorna alla pagina principale


WinSetFont

Descrizione

Imposta il font per successive operazioni di scrittura in una finestra standard.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra in cui impostare il font. Deve essere una finestra standard creata da WinCreate.
fontName Il nome di carattere del font da impostare, come visto dal sistema operativo. Per un elenco di font di default del sistema, consultare le Note per questa istruzione.
pointSize La dimensione del font in punti.
Le dimensioni in punti dei caratteri raster disponibili per i font standard sono: 8, 10, 12, 14, 18 e 24.
Non tutti i font sono disponibili in tutte le dimensioni.
I profili possono avere una qualunque dimensione in punti. Sono disponibili dei profili per tutti i font di default, tranne che per quelli proporzionali al sistema e per quelli monospace. Questi font sono disponibili solo in una dimensione di 10 punti.
Tutti i font di default, tranne quelli proporzionali al sistema e quelli monospace. Questi font sono disponibili in una dimensione di soli 10 punti.
faceStyle Una serie di indicatori che può essere combinata per formare uno stile di facciata composito.
Valori validi sono $FontPlain (di default), $FontBold, $FontUnderScore e $FontStrikeOut.
Non tutti i font supportano tutti gli stili di facciata. Questi stili vengono aggiunti a un font esistente. Alcuni font vengono creati con uno stile di facciata, ad esempio bold o italic. In questi casi, lo stile è sempre presente.

Note

Le seguenti costanti predefinite forniscono accesso ai font di default del sistema:

Esempio

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 *);

Codici di ritorno

Consultare anche


WinSetIconBar

Descrizione

Imposta e visualizza icone su una barra degli strumenti.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra con uno stile $WinIconBar. Potrebbe essere una finestra standard o una finestra di scorrimento.
iconList Può trattarsi di un elenco di stringhe o di un elenco di record $ToolbarItem. Per l'elenco di stringhe, ogni stringa è il nome di un file d'immagine da visualizzare su una barra di icone. Utilizzando un metodo alternativo ($ToolbarNodeRecord), è possibile specificare attributi ulteriori, come l'ID di menu associato a un dato pulsante della barra degli strumenti o la "descrizione comandi" per un pulsante della barra degli strumenti.

Note

Una barra degli strumenti è un controllo simile alla barra del menu. La barra degli strumenti viene visualizzata sotto la barra del titolo e la barra di menu su una finestra. E' costituita da una riga di icone che è possibile selezionare facendo clic con il tastino destro del mouse.

Non esiste un'interfaccia di tastiera per la barra degli strumenti o per le icone su essa. Selezionando un'icona viene inviato un messaggio di menu ($MsgMenu) all'handler degli eventi della finestra. Il primo parametro (integer) dell'evento è l'ID icona.

Nota: Le icone vengono etichettate da 1 a 99 con l'icona all'estrema sinistra che ha 1 come ID.

Le icone devono avere un formato standard d'icona. I file devono trovarsi nella directory corrente. Altrimenti, deve essere specificato il PATH completo di ogni file. I file non trovati o quelli con un formato non corretto vengono saltati. Gli ID vengono assegnati in base alla posizione che occupano nell'elenco icone, non in base alla posizione di visualizzazione. Passare un elenco sconosciuto fa sì che la barra degli strumenti venga nascosta.

Nota: Quando si aggiunge una barra degli strumenti a una finestra che non ne possiede una, viene inviato alla finestra un $MsgSize con la nuova dimensione dell'area utente.

Esempio

Utilizzare l'elenco dei formati di stringa nel modo seguente:

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

Utilizzare l'elenco del formato $ToolbarItem nel modo seguente:

      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;

Codici di ritorno

Consultare anche


WinSetMenuBar

Descrizione

Imposta le selezioni sulla barra di menu della finestra.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra su cui eseguire l'operazione.
menuList Un elenco di stringhe che specifica un menu da visualizzare sulla barra di menu della finestra.
Per informazioni su questo formato di elenco, consultare le note per quest'istruzione.

Note

WinSetMenuBar può essere utilizzato per impostare la barra di menu su una finestra creata con lo stile $WinMenu.

L'elenco di stringhe passato a WinSetMenuBar specifica la struttura completa del menu. Vengono specificate sia le voci di menu orizzontali principali, sia le voci secondarie verticali. Le voci di menu vengono codificate in un formato dall'alto in basso e da sinistra a destra. Le stringhe vuote fungono da separatori. Ad esempio, se la voce di menu all'estrema sinistra è File e le Voci file includono Nuovo, Salva, Salva con nome e Esci, l'elenco menu viene visualizzato nel modo seguente:

{'File','New','Save','Save ~As','Exit',''}: LIST OF STRING;

Segue la seconda colonna delle voci.

E' possibile utilizzare una tilde (~) per contrassegnare una lettera che fungerà da selettore di una voce del menu. I parametri nella seguente tabella possono essere ubicati all'inizio di una voce dell'elenco di menu per raggiungere i risultati visualizzati per ogni parametro.

Parametro Risultato
/C La voce di menu viene inizialmente spuntata.
/D La voce di menu viene inizialmente disabilitata.
/S La voce di menu è statica e non può essere selezionata.
/L La voce di menu non viene visualizzata. Al suo posto appare un separatore di riga.
/H Il menu viene tenuto aperto quando la voce è selezionata.
// Viene visualizzata una barra (/). Non vengono elaborati altri parametri.

Quando si aggiunge una barra di menu a una finestra che non ne possiede una, alla finestra viene inviato un messaggio $MsgSize con la nuova dimensione dell'area utente.

Esempio

KNOWLEDGEBASE WinMenu;
  TYPES
 MainWinRec IS RECORD
 width: INTEGER;
 height: INTEGER;
 fontName: STRING;
 mousePointer: STRING;
 statusBar: STRING;
      END;
CONSTANTS
 MENU_LIST IS {'File' ,
 'E~xit', '', (* 101 *)
 'Menu',
 '~Enable', (* 201 *)
 '~Disable', (* 202 *)
 '/L ', (* Put separator line in menu *)
 '/C/D~Check',
 (* 204 start check and disabled *)
 '', (* Mark end of menu sub menu *)
 'Help',
 'About', (* 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 *);

Codici di ritorno

Consultare anche


WinSetPopupMenu

Descrizione

Imposta il menu a comparsa per una finestra, sostituendo tutti i menu a comparsa esistenti. Il menu a comparsa appare automaticamente con la corretta azione del mouse per la piattaforma. Le selezioni dal menu a comparsa vengono riportate da $MsgMenu.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle del modulo della casella di dialogo o della finestra il cui testo del titolo deve essere modificato
menuList Elenco delle voci del menu a comparsa per la finestra

Note

L'elenco di stringhe passato a WinSetPopupMenu specifica la struttura completa del menu. Vengono specificate sia le voci di menu orizzontali principali, sia le voci secondarie verticali. Le voci di menu vengono codificate in un formato dall'alto in basso e da sinistra a destra. Le stringhe vuote fungono da separatori. Ad esempio, se la voce di menu all'estrema sinistra è File e le Voci file includono Nuovo, Salva, Salva con nome e Esci, l'elenco menu appare nel seguente formato:

{'File','New','Save','Save ~As','Exit',''}: LIST OF STRING;

Segue la seconda colonna delle voci.

E' possibile utilizzare una tilde (~) per contrassegnare una lettera che fungerà da selettore di una voce del menu. I parametri nella seguente tabella possono essere ubicati all'inizio di un'opzione dell'elenco di menu per raggiungere i risultati visualizzati per ogni parametro.

Parametro Risultato
/C La voce di menu viene inizialmente spuntata
/D La voce di menu viene inizialmente disabilitata
/S La voce di menu è statica e non può essere selezionata
/L La voce di menu non viene visualizzata. Al suo posto appare un separatore di riga
/H Il menu viene tenuto aperto quando la voce è selezionata
// Viene visualizzata una barra (/). Non vengono elaborati altri parametri

Quando si aggiunge una barra di menu a una finestra che non ne possiede una, alla finestra viene inviato un messaggio $MsgSize con la nuova dimensione dell'area utente.

Quando si utilizza WinLoadPopupMenu, il menu viene automaticamente visualizzato con la corretta azione del mouse per la piattaforma. Quando l'utente seleziona una voce di menu, un messaggio $MsgMenu viene inviato alla finestra. Questo differisce dalla vecchia funzione WinPopup. In WinPopup, l'utente deve prendere l'azione del mouse corretta e richiamare WinPopup per visualizzare il menu a comparsa. WinPopup restituisce l'id della voce di menu selezionata.

Esempio

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;

Codici di ritorno

Consultare anche

WinLoadPopupMenu


WinSetScrollBar

Descrizione

Imposta l'ubicazione e la dimensione del separatore di una barra di scorrimento.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra sulla quale l'operazione deve essere eseguita.
scrollBarID L'etichetta della barra di scorrimento da impostare. Deve essere $WinVScroll (verticale) o $WinHScroll (orizzontale). Se la barra di scorrimento in questione non esiste, non viene effettuata alcuna azione. Non viene riportato alcun errore.
windowSize La dimensione della finestra nelle unità dei dati. Le unità sono arbitrarie e sono relative solo ai parametri dataSize e windowLoc. Questi parametri devono essere espressi nelle stesse unità.
dataSize La dimensione dei dati, espressa nelle stesse unità utilizzate per specificare la dimensione della finestra.
windowLoc La posizione del lato superiore o di quello sinistro della finestra, espresso nelle stesse unità dei parametri precedenti.

Esempio

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 *);

Codici di ritorno

Consultare anche

WinCreate


WinSetTitle

Descrizione

Imposta il testo nella barra del titolo del modulo della casella di dialogo o della finestra.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della casella di dialogo o della finestra per cui è necessario modificare il testo del titolo.
newTitle Il nuovo titolo per il modulo della casella di dialogo o della finestra.

Note

Questa funzione viene inoltre implementata come messaggio che può essere passato a un modulo della casella di dialogo o a una finestra ($MsgSetTitle).

Esempio

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;

Codici di ritorno


WinSetWaitPointer

Descrizione

Attiva o disattiva il puntatore di attesa (clessidra). Il puntatore di attesa ha effetto su tutte le finestre nell'applicazione.

Sintassi

WinSetWaitPointer ( VAL state : BOOLEAN ) : INTEGER;

Note argomenti

Nome dell'argomento Descrizione
state 'True' visualizza il puntatore di attesa, mentre 'False' ripristina il puntatore precedente.

Note

WinSetWaitPointer attiva o disattiva il puntatore di attesa a seconda dello stato fornito. Esso viene utilizzato per fornire un segnale visivo quando l'applicazione è occupata o ancora in fase di elaborazione.

Esempio

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;

Codici di ritorno


WinShowWindow

Descrizione

Mostra o nasconde una casella di dialogo o una finestra.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle del modulo della casella di dialogo o della finestra il cui stato di visibilità deve essere modificato
state Impostare su TRUE se la finestra deve essere "visualizzata", impostare su FALSE se deve essere "nascosta."

Note

Utilizzato anche come messaggio a una casella di dialogo o una finestra ($MsgShow).

Esempio

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;

Codici di ritorno


WinWait

Descrizione

Sospende l'esecuzione mentre è presente una finestra.

Sintassi

FUNCTION WinWait(VAL whdl: WINDOW): INTEGER;

Avvertenze

Non utilizzare WinWait quando viene elaborato un messaggio $MsgDDEInitiate. $MsgDDEInitiate invia un messaggio alle applicazioni e blocca la coda messaggi fino a quando non viene restituita una risposta. Intanto, l'istruzione WinWait avvia un handler degli eventi che attende anche una risposta dalla coda messaggi. WinWait impedisce alla altre applicazioni di inviare i messaggi alla coda messaggi. Questo provoca uno stallo che blocca l'interfaccia utente.

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra sulla quale eseguire l'operazione

Note

WinWait è generalmente utilizzato nella procedura principale dell'applicazione per attendere fino a che la finestra principale non è più attiva.

Esempio

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);

Codici di ritorno


WinWidth

Descrizione

Richiede la larghezza di una finestra.

Sintassi

FUNCTION WinWidth(VAL whdl: WINDOW): INTEGER;

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra sulla quale eseguire l'operazione

Note

WinWidth restituisce la larghezza corrente dell'area client della finestra indicata, espressa in celle di caratteri.

Esempio

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

Codici di ritorno

Consultare anche


WinWrite

Descrizione

Scrive una stringa in una finestra nella posizione corrente.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra su cui scrivere. L'handle può essere riferito a una finestra standard (generica) o a una finestra di scorrimento.
outputText Un elenco di stringhe da visualizzare. E' valida anche una stringa singola. Questo comando viene eseguito su ogni voce nell'elenco.

Note

WinWrite può essere utilizzato per scrivere informazioni in una finestra generica o in una finestra di scorrimento. Non può essere utilizzato per scrivere informazioni su una casella di dialogo.

Ricerca dell'ubicazione corrente della figura

TSD Script conserva l'ubicazione corrente della figura per ogni finestra generica e di scorrimento. Il testo scritto da WinWrite appare in quella posizione e la posizione x dell'ubicazione del disegno viene spostata in avanti dopo l'operazione di scrittura. E' possibile rilevare la posizione attuale richiamando le funzioni WinX e WinY.

Utilizzo di identificativi del formato

Gli identificativi del formato sono delle vere e proprie maschere di bit in cui diversi bit controllano le diverse parti del formato. WinWrite elabora un elenco di stringhe che consente di controllare la formattazione per la visualizzazione in WinWrite e altre istruzioni.

In generale, ogni espressione può essere seguita da due identificativi di formato:

Questi identificativi di formato vengono separati l'un l'altro e dall'espressione dal segno d'interpunzione due punti. Ad esempio:

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';

Nota: I vari indicatori di formato vengono descritti in Indicatori del formato del tipo di dati.

identificatori del formato per Numeri reali

L'identificativo del formato per i numeri reali può codificare anche il numero di cifre a destra della virgola decimale da visualizzare. Ad esempio,

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

giustifica l'emissione a sinistra e visualizza due cifre a destra della virgola decimale. Per default, i numeri reali visualizzano sei cifre a destra della virgola decimale.

Formati di default per i tipi di dati

Esistono dei formati di default per i vari tipi di dati. Questi valori di default possono variare in relazione alla nazione, perché i valori di default per il tipo di dati (compresi quelli degli Stati Uniti) si basano sulle impostazioni internazionali del pannello di controllo.

La tabella seguente mostra i formati di default degli Stati Uniti per i tipi di dati.

Tipo di dati Formato di default degli Stati Uniti
string $FmtRightJustify
integer $FmtRightJustify+$FmtIntUngrouped+$FmtBlankPad+$FmtIntSignNegOnly+$FmtIntDecimal
real $FmtRightJustify+$FmtRealUngrouped+$FmtBlankPad+$FmtRealSignNegOnly+
$FmtRealDecimalDot
Boolean $FmtRightJustify+$FmtBoolTrueFalse
date $FmtRightJustify+$FmtDateMonthDayYear+$FmtBlankPad+$FmtDateSlashSeparators+
$FmtDateNumericMonth+$FmtDateFullYear
time $FmtRightJustify+$FmtTimeWithSeconds+$FmtBlankPad+$FmtTimeMilitary

I formati di default possono essere modificati utilizzando le funzioni StringFormat, IntegerFormat, RealFormat, BooleanFormat, DateFormat e TimeFormat.

Esempio

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 *);

Codici di ritorno

Consultare anche

Per ulteriori informazioni, consultare Indicatori del formato del tipo di dati.


WinWriteAt

Descrizione

Scrive una stringa in una finestra nella posizione specificata.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra in cui scrivere. L'handle può essere riferito a una finestra standard (generica) o a una finestra di scorrimento.
xLoc La posizione della X dell'inizio della stringa.
yLoc La posizione della Y dell'inizio della stringa.
outputText Un elenco di stringhe da visualizzare. E' valida anche una stringa singola. Questo comando elabora ogni voce nell'elenco.

Note

WinWriteAt può essere utilizzata per scrivere informazioni a partire da una posizione specifica in una finestra di scorrimento o generica. Alla fine della sua elaborazione, WinWriteAt lascia la posizione attuale del disegno (la posizione del cursore) nella posizione di un carattere a destra dell''ultimo carattere scritto.

Esempio

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

Codici di ritorno

Consultare anche


WinWriteLN

Descrizione

Scrive una stringa in una finestra e sposta in avanti il puntatore della posizione all'inizio della riga successiva.

Sintassi

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

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra su cui scrivere. L'handle può essere riferito a una finestra standard (generica) o a una finestra di scorrimento.
outputText Un elenco di stringhe da visualizzare. E' valida anche una stringa singola. Questo comando elabora ogni voce nell'elenco.

Note

WinWriteLN utilizza un loop FOR implicito: Scrive l'elenco completo delle stringhe in modo sequenziale.

WinWriteLN è identico a WinWrite, ma sposta il cursore della finestra all'inizio della riga successiva.

Esempio

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 *);

Codici di ritorno

Consultare anche


WinX

Descrizione

Restituisce la coordinata x dell'ubicazione attuale della figura.

Sintassi

FUNCTION WinX(VAL whdl: WINDOW): INTEGER;

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra sulla quale eseguire l'operazione

Note

WinX differisce da WinGetXPos perché riporta la posizione di un carattere in una finestra mentre WinGetXPos interroga l'angolo in alto a sinistra di una finestra o di una casella di dialogo.

Esempio

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;

Codici di ritorno

Consultare anche

WinY


WinY

Descrizione

Restituisce la coordinata y dell'ubicazione attuale della figura.

Sintassi

FUNCTION WinY(VAL whdl: WINDOW): INTEGER;

Note argomenti

Nome dell'argomento Descrizione
whdl L'handle della finestra sulla quale eseguire l'operazione

Note

WinY differisce da WinGetYPos perché riporta la posizione di un carattere in una finestra mentre WinGetYPos interroga l'angolo in alto a sinistra di una finestra o di una casella di dialogo.

Esempio

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;

Codici di ritorno

Consultare anche

WinX


Riferimento Lingua del Tivoli Service Desk 6.0 Developer's Toolkit Script

Ritorna alla pagina principale

Copyright