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

Gestione finestre

Ritorna alla pagina principale


Nota: Tutte le funzioni Win hanno gli stessi codici di ritorno. Questa tabella di codici appare nella funzione WinAboutBox e appare un collegamento a questa tabella con ogni funzione Win.


Ritorna alla pagina principale


Nota: Questa è la prima sezione delle funzioni Gestione finestre. Questa sezione termina con WinSetColor, mentre la seconda sezione inizia
con WinSetFont.


$Desktop

Descrizione

Restituisce un handle alla finestra del desktop. Questo valore è permanente durante la sessione corrente. Tuttavia, questo valore non viene memorizzato in modo permanente. La prossima volta che il programma si avvia, questa costante ha un nuovo valore.

Sintassi

FUNCTION $Desktop: WINDOW;

Attenzione: In OS/2, esistono messaggi validi che l'utente può inviare al desktop per sospendere l'elaborazione. Ad esempio, se si invia $MsgClose al desktop, l'esecuzione del programma viene sospesa. Questa funzione viene controllata dal sistema operativo.

Note

$Desktop è una costante di sistema predefinita che contiene l'handle per il desktop di OS/2 o di Windows. Viene spesso specificata come costante padre nelle istruzioni delle caselle di dialogo e delle finestre.

Esempio

KNOWLEDGEBASE Desktop;
    ROUTINES
 PROCEDURE Example;
PRIVATE
    ROUTINES
  (* Create a scroll window parented by the desktop with
 default event processing *)
 PROCEDURE Example IS
    VARIABLES
 whdl: WINDOW;
    ACTIONS
 WinCreateScrollWindow($Desktop, (*Window is a child of
                       OS/2 desktop *)
                       whdl, (* return handle
                       of new window *)
                       $NullHandler, (* Default event
 processing *)
                       5, 5, 80, 20, (* Window location
                       and size *)
                       'Example', (* Window title *)
                       '', (* Use default font
                       *)
                       0, (* Point size is
                       ignored for
                       default *)
                    BitOr($WinTitle, $WinBorder,
           $WinSysMenu));
 WinWait(whdl);
      END;

Consultare anche


$KeyCode

Descrizione

Indica il tasto premuto dall'utente quando si verifica un evento $MsgChar.

Note

Il TSD Script definisce diverse costanti per i tasti speciali, come ad esempio i tasti di comando del cursore, i tasti modificati (i.e., i tasti premuti insieme ad altri, come ad esempio Control o Alt), etc.

Nota: Per ulteriori informazioni, consultare Costanti TSD Script.

Esempio

EVENT MyEvent IS
    ACTIONS
WHEN $Event IS $MsgChar THEN
 WHEN $KeyCode IS $KeyUpArrow THEN
 MoveUp;
 ELSWHEN $KeyDownArrow THEN
 MoveDown;
 ELSWHEN $KeyLeftArrow THEN
 MoveLeft;
ELSWHEN $KeyRightArrow THEN
 MoveRight;
      END;
      END;

Consultare anche


WinAboutBox

Descrizione

Questa funzione visualizza una casella "Info su" di default per un'applicazione.

Sintassi

FUNCTION WinAboutBox( VAL Icon : STRING,
                     VAL AppName : STRING,
                     VAL Version : STRING ) : INTEGER;

Avvertenze

Le informazioni visualizzate contengono un messaggio di copyright del Tivoli Service Desk e non è concepito per le applicazioni di terzi.

Note argomento

Nome dell'argomento Descrizione
Icon Il nome del file .bmp associato da visualizzare con
l'applicazione. Se il file non viene trovato o il nome file non è valido, la casella viene visualizzata senza grafico. Le variabili di ambiente SAIPATH e PATH vengono inquiryte per i file specificati da questo comando.
AppName Il nome dell'applicazione.
Version Il numero della versione dell'applicazione.

Esempio

KNOWLEDGEBASE aboutbox;
CONSTANTS
AppName IS 'Pink Elephant Word Processor'; AppVersion IS
 'Version 3.1';
    ROUTINES
Procedure DisplayAboutBox;
PRIVATE
    ROUTINES
Procedure DisplayAboutBox IS
    VARIABLES
    ACTIONS
WinAboutBox('pink.bmp', AppName, AppVersion);
      END;

Codici di ritorno

Codice di ritorno Descrizione
1 Completamento riuscito.
0 Annullamento da parte dell'utente. L'utente ha chiuso la finestra o ha annullato l'operazione. Solitamente tale operazione si esegue premendo il tasto Esc o il tasto Canc o chiudendo la finestra dal menu di sistema.
-1 L'handle della finestra non si riferisce a una finestra valida. E' possibile che la finestra non esista più o che la finestra non supporti il comando.
-2 Valore sconosciuto.
-3 Memoria insufficiente.
-4 Nessuna creazione. Il sistema operativo non è stato in grado di creare l'oggetto richiesto. Una possibile causa è che l'handle della finestra padre fa riferimento a una finestra che non esiste più.
-7 Il comando denominato di una casella di dialogo non può essere trovato nella casella di dialogo a cui l'handle della finestra fa riferimento.
-8 Il comando richiesto della casella di dialogo non può essere eseguito sul tipo di comando denominato.
-10 La chiamata ha avuto esito negativo al livello del sistema operativo. Questo può essere causato da una configurazione non corretta o da risorse inadeguate.
-12 L'istruzione SendMessage o PostMessage è stata richiamata con un messaggio non supportato dalle istruzioni NETx. Il messaggio deve essere uno dei messaggi $MsgNetx supportati o un messaggio $MsgUser + n definito dall'utente che viene specificatamente definito per essere utilizzato con le istruzioni NETx.

WinClear

Descrizione

Elimina dall'intera area client di una finestra o di una finestra a scorrimento il colore dello sfondo corrente.

Sintassi

FUNCTION WinClear(VAL whdl: WINDOW): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra da eliminare. Questo handle può fare riferimento ad una finestra standard o a una finestra a scorrimento.

Note

Il colore dello sfondo corrente può essere modificato utilizzando la funzione WinSetColor.

Esempio

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlack);
    WinClear( $Handle );
             WinWrite($Handle,'Black');

Codici di ritorno

Consultare anche


WinClearEOL

Descrizione

Ripulisce una finestra dalla posizione corrente del cursore alla fine della riga, utilizzando il colore di sfondo corrente.

Sintassi

FUNCTION WinClearEOL(VAL whdl: WINDOW): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra da eliminare. L'handle può fare riferimento ad una finestra standard o a una finestra a scorrimento.

Note

WinClearEOL ripulisce dalla posizione corrente del cursore alla fine della riga corrente. Non modifica la posizione del cursore. L'area eliminata viene aggiornata nel colore dello sfondo corrente.

Nota: Il colore dello sfondo corrente può essere modificato utilizzando la funzione WinSetColor.

Esempio

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlue);
             WinGoToXY($Handle,2,2);
 WinClearEOL($Handle);

Codici di ritorno

Consultare anche


WinClearEOW

Descrizione

Ripulisce la finestra dalla posizione del cursore corrente alla fine della finestra, utilizzando il colore di sfondo corrente.

Sintassi

FUNCTION WinClearEOW(VAL whdl: WINDOW): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra da eliminare. Questo handle può fare riferimento ad una finestra standard o a una finestra a scorrimento.

Note

WinClearEOW ripulisce la finestra indicata dalla posizione corrente del cursore alla fine della finestra. L'area eliminata viene aggiornata nel colore di sfondo corrente. La posizione del cursore non viene modificata.

Nota: Il colore corrente dello sfondo può essere modificato utilizzando l'istruzione WinSetColor.

Esempio

WHEN $Event IS $MsgPaint THEN
 WinGoToXY($Handle,5,10);
 WinSetColor($Handle,$WinWhite,$WinLightBlue);
 WinClearEOW($Handle);

Codici di ritorno

Consultare anche


WinClearRectangle

Descrizione

Elimina un'area rettangolare di una finestra, utilizzando il colore corrente dello sfondo.

Sintassi

FUNCTION WinClearRectangle(VAL whdl: WINDOW, VAL xLoc, yLoc,
                           width, height: INTEGER):
 INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra da eliminare. L'handle può fare riferimento ad una finestra standard o a una finestra a scorrimento.
xLoc La posizione della X dell'angolo superiore sinistro dell'area da eliminare. Le coordinate della X sono celle di caratteri specificate.
yLoc La posizione della Y dell'angolo superiore sinistro dell'area da eliminare. Le coordinate della Y vengono specificate in celle di caratteri.
width La larghezza dell'area da eliminare. La larghezza viene misurata in celle di caratteri.
height L'altezza dell'area da eliminare. L'altezza viene misurata in celle di caratteri.

Note

WinClearRectangle elimina un'area rettangolare specifica all'interno di una determinata finestra. L'area eliminata viene aggiornata con il colore dello sfondo corrente. Il cursore non viene spostato.

Nota: Il colore corrente dello sfondo può essere modificato utilizzando l'istruzione WinSetColor.

Esempio

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlack);
 WinClearRectangle($Handle,5,10,40,8);
END:

Codici di ritorno

Consultare anche


WinCloseWindow

Descrizione

Chiude una casella di dialogo o una finestra.

Sintassi

FUNCTION WinCloseWindow(VAL whdl: WINDOW): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra o della casella di dialogo da chiudere

Note

Questa funzione viene inoltre implementata come messaggio che può essere inoltrato ad una finestra o a una casella di dialogo ($MsgClose).

Esempio

KNOWLEDGEBASE close;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
PROCEDURE Main IS
    VARIABLES
 Handle : WINDOW;
    ACTIONS
 WinCreate($Desktop,
           Handle,
           $NullHandler,
           1, 1,
           80, 25,
 'Window will close shortly...',
           $WinDefaultStyle);
 SysDelay(1000);
 WinCloseWindow(Handle);
      END;

Codici di ritorno


WinCreate

Descrizione

Crea una finestra generica o standard.

Sintassi

FUNCTION WinCreate(VAL parent: WINDOW, REF whdl: WINDOW,
                   VAL EventHandler: EVENT,
                   VAL xLoc, yLoc, width, height: INTEGER,
                   VAL title: STRING, style: INTEGER):
 INTEGER;

Avvertenze

Se la funzione di evento non elabora il messaggio di aggiornamento ed elimina la finestra, la finestra trattiene un'immagine di ciò che conteneva al momento della creazione della finestra.

WinCreate non effettua restituzione fino a quando $MsgCreate non viene elaborato. Perciò, il valore dell'handle della finestra restituito non viene impostato fino a quando $MsgCreate non viene elaborato. Tuttavia, $Handle può essere ancora utilizzato durante l'elaborazione di WinCreate.

Note argomento

Nome dell'argomento Descrizione
parent Finestra padre della nuova finestra da creare.
whdl L'handle della finestra appena creata viene restituito in questo parametro. In caso di errore, la variabile viene impostata su $Unknown.
EventHandler Un handler degli eventi che elabora gli eventi creati dalla casella di dialogo o dalla finestra. Se non viene richiesta alcuna elaborazione eventi, è possibile utilizzare la parola chiave $NullHandler.
xLoc La posizione della X dell'angolo superiore sinistro della finestra. Le coordinate della X vengono specificate in celle di caratteri.
yLoc La posizione della Y dell'angolo superiore sinistro della finestra. Le coordinate della Y vengono specificate in celle di caratteri.
width La larghezza (dimensione della X) della finestra, escluso il bordo.
height L'altezza (dimensione della Y) della finestra escluso il bordo, la barra dei titoli, la barra dei menu, la barra degli strumenti e la barra di stato.
title Il titolo visualizzato nella barra del titolo della finestra. La finestra deve avere una barra dei titoli per un titolo che deve essere visualizzato. Utilizzare uno stile contenente $WinTitle.
style Una maschera di bit numero intero che rappresenta una serie di indicatori degli stili utilizzata per controllare l'aspetto della finestra.
Per un elenco di indicatori degli stili disponibili, consultare Stili delle finestre.

Note

Primo messaggio ricevuto

Quando viene creata una finestra, i seguenti messaggi vengono ricevuti nell'ordine riportato:

Personalizzazione di una finestra con gli stili

WinCreate può essere utilizzato per creare finestre standard o generiche. Tali finestre possono contenere le barre dei menu, le barre degli strumenti, le barre di stato e altri elementi delle finestre.

La funzionalità e l'aspetto esatti della finestra creata con WinCreate vengono, per la maggior parte, determinati dall'argomento dello stile. Questo argomento intero è una maschera bit assemblata da diversi indicatori (elencati nella sezione seguente). L'argomento viene solitamente assemblato con l'operatore BITOR (ad esempio, BITOR($WinBorder, $WinTitle)). Il metodo aggiuntivo deve essere utilizzato con cautela; può provocare conseguenze indesiderate se lo stesso indicatore viene aggiunto due volte.

Nota: Per ulteriori informazioni, consultare Stili delle finestre.

Creare un handler degli eventi per una finestra

In generale, si associa un handler degli eventi ad una finestra creata attraverso WinCreate. Un handler degli eventi è una routine che elabora alcuni dei messaggi inviati alla finestra. Ad esempio, se la finestra ha una barra delle icone, l'handler degli eventi riceve i messaggi $MsgMenu (eventi) ogni volta che l'utente fa clic su una delle icone. Il primo parametro degli eventi (intero) contiene un numero compreso tra uno (1) e il numero delle icone, indicante l'icona selezionata. L'handler degli eventi può indicare una routine particolare.

Nota: I diversi messaggi che possono essere ricevuti dalle finestre create con WinCreate sono documentati in Messaggi TSD-Script.

Esempio

EVENT MainEvent IS
    ACTIONS
      WHEN $Event IS $MsgCreate THEN
 WinSetIconBar($Handle,{'FILE.ICO',
               'REPORT.ICO','HELP.ICO'}:
               LIST OF STRING);
 ELSWHEN $MsgMenu THEN
 WHEN $EventParm(1,INTEGER) IS 1 THEN
 HandleFileIcon;
        ELSWHEN 2 THEN
 HandleReportIcon;
        ELSWHEN 3 THEN
 HandleHelpIcon;
      END;
      END;
      END;
PROCEDURE MainProgram IS
    VARIABLES
 mainWindow : WINDOW;
    ACTIONS
WinCreate($Desktop,mainWindow,MainEvent,0,0,80,20,
 'Main Window',
 BitOr($WinBorder,$WinTitle,$WinResize,
 $WinSysMenu, $WinIconBar,
 $WinAutoPos,$WinTaskList));
 WinWait(mainWindow);
      END;

Codici di ritorno

Consultare anche


WinCreateClock

Descrizione

Crea una finestra timer o orologio.

Sintassi

FUNCTION WinCreateClock(VAL whdlParent: WINDOW,
                        REF whdl: WINDOW,
                        VAL xLoc, yLoc, width, height, style,
                        id: INTEGER): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdlParent La finestra padre della nuova finestra da creare.
whdl L'handle della nuova finestra viene restituito in questo parametro. In caso di errore, la variabile viene impostata su $Unknown.
xLoc La posizione della X dell'angolo superiore sinistro della finestra. Le coordinate della X vengono misurate in celle di caratteri.
yLoc La posizione della Y dell'angolo superiore sinistro della finestra. Le coordinate della Y vengono misurate in celle di caratteri.
width La larghezza (dimensione X) della finestra escluso il bordo. La larghezza viene misurata in celle di caratteri.
height L'altezza (dimensione Y) della finestra escluso il bordo, la barra dei titoli, la barra dei menu, la barra degli strumenti e la barra di stato. Altezza misurata in celle di caratteri.
style Lo stile di una finestra orologio. Gli indicatori dello stile vengono combinati con l'operatore BITOR.
Selezionarne uno o nessuno dei seguenti:
  • $ClkBorderIn - Disegna la finestra orologio con un bordo rientrante (il valore di default).
  • $ClkBorderOut - Disegna un bordo aumentato.
  • $ClkBorderNon - Non disegna alcun bordo.
  • $ClkBorder - Disegna un bordo simile a quello della casella di testo.

Selezionarne uno o nessuno dei seguenti:

  • $Clk12Hour: formato di 12 ore con AM e PM (il valore di default).
  • $Clk24Hour: (formato di 24 ore).

Indicatore facoltativo: $ClkHidden - L'orologio non viene visualizzato sullo schermo.

ID Numero dell'identificativo utilizzato nei messaggi di notifica per la finestra padre. E' possibile creare i timer nelle finestre generiche utilizzando il messaggio $MsgStartTimer.

Note

WinCreateClock può essere utilizzato per creare gli orologi che si aggiornano da soli in tempo reale (ogni secondo). Per default, un orologio inizia a visualizzare l'ora corrente del giorno in base all'orologio di sistema. E' possibile, tuttavia, impostare un orologio per visualizzare un'ora corrente inviandogli il messaggio $MsgClockSet insieme al valore dell'ora.

Ad esempio, è possibile utilizzare la seguente riga per impostare un orologio del tempo trascorso:

SendMessage(clockWindow,$MsgClockSet,{0,0,0}: TIME);

Le finestre orologio rispondono inoltre ai messaggi $MsgShow. Questo consente all'utente di creare una finestra orologio, nasconderla, modificare il valore dell'ora quindi visualizzarla. Considerare il seguente esempio:

      WHEN $Event IS $MsgCreate THEN
 WinCreateClock($Handle,clockWindow,
 1,1,13,2,
 $Clk24Hour,0);
 SendMessage(clockWindow,$MsgShow,FALSE);
ELSWHEN START_TIMER THEN
 SendMessage(clockWindow,$MsgClockSet,
 {0,0,0}: TIME):
 SendMessage(clockWindow,$MsgShow,TRUE);
      END;

In questo esempio, l'utente si trova nell'elaborazione dell'evento per un un'altra finestra. Quando si crea la finestra, l'orologio viene creato ma rimane nascosto. Quando la finestra riceve un messaggio START_TIMER, l'ora degli orologi viene impostata su 00:00:00 e l'orologio viene quindi visualizzato. L'utente visualizza un orologio per il tempo trascorso.

Esempio

    VARIABLES
clock: WINDOW;
    ROUTINES
EVENT WindowEvent IS
    ACTIONS
      WHEN $Event IS $MsgCreate THEN
 WinCreateClock($Handle,clock,1,1,13,2,$ClkBorderIn,1);
      END;
      END;

Codici di ritorno

Consultare anche


WinCreateHyperViewer

Descrizione

Crea una finestra per il programma di visualizzazione MDI (Multiple Document Interface) con capacità ipertesto di base. Le barre dei menu disponibili con i menu Finestra, Modifica e File consentono di:

E' possibile accedere alle selezioni del menu concatenato premendo il tastino destro del mouse in un programma di visualizzazione hypermedia. Queste voci di menu consentono di selezionare:

Sintassi

FUNCTION WinCreateHyperViewer(VAL whdlParent: WINDOW,
                        REF whdl: WINDOW,
                              VAL fileName: STRING,
                              VAL EventFunc: EVENT,
                              VAL xLoc, yLoc, width, height:
                              INTEGER,
                              VAL title: STRING,
                              VAL style: INTEGER): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdlParent La finestra padre della nuova finestra da creare.
whdl L'handle della finestra appena creata viene restituito in questo parametro. In caso di errore, l'argomento whdl viene impostato su $Unknown.
fileName Il nome del file da visualizzare. Se il file non si trova nella directory corrente, SAIPATH viene inquiryto. Il file può essere un file ASCII semplice o può avere collegamento di ipertesto incorporati.
Consultare la sezione Note per ulteriori informazioni.
EventFunc Un handler degli eventi per elaborare gli eventi creati dalla finestra o dalla casella di dialogo. Se non viene richiesta alcuna elaborazione eventi, la parola chiave $NullHandler può essere utilizzata.
xLoc La posizione della X dell'angolo superiore sinistro della finestra. Le coordinate della X vengono misurate in celle di caratteri.
yLoc La posizione della Y dell'angolo superiore sinistro della finestra. Le coordinate della Y vengono misurate in celle di caratteri.
width La larghezza (dimensione della X) della finestra escluso il bordo. La larghezza viene misurata in celle di caratteri.
height L'altezza (dimensione Y) della finestra escluso il bordo, la barra dei titoli, la barra dei menu, la barra degli strumenti e la barra di stato. L'altezza viene misurata in celle di caratteri.
title Il titolo visualizzato nella barra del titolo della finestra. La finestra deve avere una barra dei titoli per un titolo che deve essere visualizzato.
style Una maschera bit intera che rappresenta un elenco di indicatori di stile utilizzati per controllare l'aspetto della finestra.
Per ulteriori informazioni, consultare le Note per questa istruzione

Note

WinCreateHyperViewer può essere utilizzato per creare un programma di visualizzazione ipertesto. Oltre a creare una finestra con la posizione, le dimensioni e gli stili indicati, WinCreateHyperViewer visualizza il contenuto del file indicato. Si suppone che questo file contenga il testo ASCII con i pulsanti incorporati. Un pulsante, che appare all'utente come parola evidenziata, è un collegamento ad un altro oggetto come ad esempio un file di testo, un file sonoro, un'immagine o un programma.

Un pulsante viene definito nel seguente formato:

[[<Button text> | <command>]]

<Button text> è il testo da visualizzare come testo evidenziato all'utente mentre <command> indica l'azione che viene avviata dal clic.

Parola a capo

Il comando ipertesto prevede che il file fornito venga formattato come file hypermedia del Tivoli Systems. Questo indica che avvolge le parole di tutte le righe del testo (ignorando il ritorno a capo) fino a quando non trova due ritorni a capo in una riga.

Disattivare la funzione Parola a capo e Formattare i valore di default

Per disattivare la parola a capo e formattare i valori di default per una finestra ipertesto, è possibile utilizzare il file aseview.exe per inoltrare gli indicatori /NOWORDWRAP /NOFORMAT come argomenti della riga comandi. Questo è il solo modo per disattivare in modo programmatico la funzione di parola a capo e formattare i valori di default per una finestra ipertesto.

Opzioni comando WinCreateHyperviewer

La seguente tabella mostra le opzioni comando per l'istruzione WinCreateHyperViewer e le descrizioni:

Opzioni comando Descrizione
ID Se il comando è un valore intero, si suppone che questo sia un ID dei pulsanti. Quando l'utente fa clic sul pulsante, un messaggio $MsgButton viene inviato all'handler degli eventi delle finestre del programma di visualizzazione ipertesto. Il testo del pulsante si trova nel parametro evento uno (stringa) e l'ID del pulsante si trova nel parametro evento due (intero).
Se nessun comando viene fornito (se il pulsante è del modello [[Button-text]]), l'handler degli eventi riceve ancora un messaggio $MsgButton quando si seleziona il pulsante. Tuttavia, l'ID del pulsante (parametro evento due, intero) è 0. In questo caso, se l'handle degli eventi restituisce zero, il programma di visualizzazione modifica il testo del pulsante per far sì che formButtonTextand esegua un'operazione di inquiry (vedere di seguito).
JUMP JUMP <marker name> inquiry nell'elenco di tag un segnalatore che corrisponda al testo che segue il Jump (consultare Tag del segnalatore per ulteriori informazioni). In caso si rilevasse una corrispondenza, la riga contenente il segnalatore viene posizionata nella parte superiore del programma di visualizzazione e viene creato un EventJump. La vista ipertesto elabora l'EventJump per mantenere un elenco di segnalatori "visitati" in un file.
LABEL LABEL <label-text> può essere una qualsiasi stringa di caratteri. Viene inviato un messaggio $MsgLabel all'handler degli eventi delle finestre con il testo del pulsante nel parametro evento uno (stringa) e il testo dell'etichetta nel parametro evento due (stringa).
MARKER MARKER <marker name> colloca un segnalatore invisibile nel testo.
SEARCH SEARCH <search-text> inquiry il file corrente iniziando dalla parte superiore per <search-text>. Il testo non può scorrere le righe a meno che il testo della inquiry non abbia nuove righe incorporate. La inquiry è sensibile al maiuscolo e minuscolo tranne che in Windows.
Se il testo viene trovato, il programma di visualizzazione è posizionato in modo che la riga contenente il testo appaia nella riga superiore della finestra del programma di visualizzazione.
FILE FILE <file-name> [NEW|REPLACE] [NOWORDWRAP|NOFORMAT] apre un nuovo file di testo. Per default, il nuovo file sostituisce quello che si trova al momento nel programma di visualizzazione. Inoltre ciò avviene se la parola chiave REPLACE segue il <file-name>.
Se la parola chiave NEW segue <file-name>, si apre una nuova finestra del programma di visualizzazione per visualizzare il nuovo file.
La dimensione del programma di visualizzazione viene stabilita dal sistema.
Per default, la funzione di A capo viene utilizzata in modo che tutte le righe non separate da almeno una riga vuota vengono trattate come paragrafo scorrevole.
La prima riga vuota dopo ogni riga non vuota viene eliminata. La parola chiave NOWORDWRAP può essere utilizzata per eliminare questa funzionalità. NOFORMAT, utilizzata insieme alla funzione di a capo di default, impedisce alle righe vicine di essere unite ma esegue la funzione di a capo per le righe lunghe.
IMAGE IMAGE <image-file>.BMP [SCROLL | SCALE] apre un programma di visualizzazione per le immagini e visualizza il file di immagine indicato. Per default, l'immagine viene ritagliata per poterla adattare alle dimensioni del programma di visualizzazione. La parola chiave SCALE fa sì che l'immagine venga adattata alle dimensioni del programma di visualizzazione. La parola chiave SCROLL ritaglia l'immagine ma aggiunge le barre di scorrimento al programma di visualizzazione che può essere utilizzato per scorrere l'intera immagine.
PLAY PLAY <sound-file>.WAV esegue il file audio indicato. Viene visualizzata una finestra del programma di visualizzazione hypertext, che l'utente può manipolare per controllare il playback dell'audio.
RUN RUN <app-name> esegue l'applicazione indicata. <app-name> può essere una stringa contenente non solo il nome di un file comandi o eseguibile ma anche argomenti della riga comandi ([[Windows NT|RUN F:\DOC\DOCMAN.EXE WINDOWS_NT]]).


Per un elenco completo dei vari tipi di messaggi che possono essere ricevuti dalle finestre generiche, consultare Messaggi TSD Script.

Per una discussione sugli indicatori dello stile della finestra, consultare l'istruzione WinCreate.

Esempio

KNOWLEDGEBASE WinHyper;
    ROUTINES
 PROCEDURE HyperTextExample;
PRIVATE
CONSTANTS
 MENU_LIST {'File' ,'Open','/L ','Exit',''}: LIST OF STRING;
    ROUTINES
 EVENT HyperTextEvent IS
    VARIABLES
 fileName: STRING;
    ACTIONS
      WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,MENU_LIST);
 WinSetIconBar($Handle,{'hyp_text.ico',
 'hypimage.ico',
 'hypsound.ico','search.ico'}:
               LIST OF STRING);
 ELSWHEN $MsgMenu THEN
 WHEN $MenuSelection IS 1, 101 THEN
 IF WinFileDialog($Desktop,fileName,'*.*',
                  10,10, 'Select file to view',0)
                  < 0 THEN
 WinMessageBox($Handle,'Error',
             $MBOk+$MBIconError,fileName);
      ELSE
 SendMessage($Handle,$MsgOpenFile,fileName,
             fileName,0);
      END;
        ELSWHEN 2 THEN
 IF WinFileDialog($Desktop,fileName,'*.bmp',
                  10,10, 'Select bitmap to view',0)
                  < 0 THEN
 WinMessageBox( $Handle, 'Error', $MBOk+
               $MBIconError,fileName );
      ELSE
 SendMessage($Handle,$MsgDisplayImage,fileName,
             fileName,0);
      END;
        ELSWHEN 3 THEN
 IF WinFileDialog($Desktop,fileName,'*.wav',10,10,
                  'Select sound to play',0)
                  < 0 THEN
                  WinMessageBox($Handle,'Error',
                  $MBOk+$MBIconError,fileName);
      ELSE
 SendMessage($Handle,$MsgPlaySound,fileName,
             fileName,0);
      END;
 ELSWHEN 4 THEN
             IF WinEditField($Desktop,fileName,0,0,30,
             'Search for?',
             BitOr($WinAutoPos,
             $WinBorder,
             $WinTitle)) < 1 THEN
 WinMessageBox($Handle,'Error',
             $MBOk+$MBIconError,fileName);
      ELSE
 SendMessage($Handle,$MsgSearch,fileName);
      END;
 ELSWHEN 103 THEN
 SendMessage($Handle,$MsgClose);
      END;
  ELSWHEN $MsgChar THEN
 WHEN $KeyCode IS $KeyAltT THEN
 SendMessage($Handle,$MsgMenu,1);
 ELSWHEN $KeyAltI THEN
 SendMessage($Handle,$MsgMenu,2);
 ELSWHEN $KeyAltA THEN
 SendMessage($Handle,$MsgMenu,3);
 ELSWHEN $KeyAltS THEN
 SendMessage($Handle,$MsgMenu,4);
      ELSE
 WinMessageBox($Handle,'Hypertext Key',$MBOK,
               $KeyCode );
      END;
 ELSWHEN $MsgButton THEN
 WinMessageBox($Handle,'Hypertext Button',$MBOK,
               'Button text' &
               $EventParm(1,STRING) &
               'Button ID ' &
               $EventParm(2,INTEGER));
 ELSWHEN $MsgLabel THEN
 WinMessageBox($Handle,'Hypertext Button',$MBOK,
               'Button text ' &
               $EventParm(1,STRING) &
               'Button Label ' &
               $EventParm(2,STRING));
      END;
 END (* Hypertext Event *);
 PROCEDURE HyperTextExample IS
    VARIABLES
 whdl: WINDOW;
    ACTIONS
 WinCreateHyperViewer($Desktop,whdl,'formman.hlp',
                      HyperTextEvent,1,1,80,25,
                      'Hyertext Test',
           BitOr($WinBorder,$WinTitle,
           $WinResize,$WinMenu,
                      $WinIconBar,$WinSysMenu,
                      $WinMinMax,
                      $WinAutoPos,$WinAutoSize));
 WinWait(whdl);
 END (* Hypertext Example *);

Codici di ritorno

Consultare anche

Per ulteriori informazioni sulla formattazione dei file hypermedia, consultare il Manuale per i programmi di utilità e per i tool Tivoli Service Desk Developer's Toolkit.

Per ulteriori informazioni su SAIPATH, consultare Ricercare i file utilizzando SAIPATH.


WinCreateImage

Descrizione

Crea una finestra che visualizza un'immagine.

Sintassi

FUNCTION WinCreateImage(VAL whdlParent: WINDOW,
                        REF whdl: WINDOW,
                              VAL fileName: STRING,
 VAL xLoc, yLoc, width, height:
 INTEGER,
                              VAL title: STRING,
 VAL style, id: INTEGER): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdlParent Finestra padre della nuova finestra da creare.
whdl L'handle della finestra appena creata viene restituito in questo parametro. In caso di errore, la variabile viene impostata su $Unknown.
fileName Il nome del file dell'immagine visualizzata. L'immagine può essere un file bitmap OS/2, una bitmap di Windows o un file immagine .PCX.
xLoc La posizione della X dell'angolo superiore sinistro della finestra. Le coordinate della X vengono misurate in celle di caratteri.
yLoc La posizione della Y dell'angolo superiore sinistro della finestra. Le coordinate della Y vengono misurate in celle di caratteri.
width La larghezza (dimensione della X) della finestra, escluso il bordo. La larghezza viene misurata in celle di caratteri.
height L'altezza (dimensione della Y) della finestra escluso il bordo, la barra dei titoli, la barra dei menu e la barra di stato. L'altezza viene misurata in celle di caratteri.
title Il titolo visualizzato nella barra del titolo della finestra. La finestra deve avere una barra dei titoli per un titolo che deve essere visualizzato. Utilizzare lo stile $ImgTitle.
style Una bitmap intera che controlla la funzionalità della finestra di immagine.
Consultare la sezione Note per le informazioni sulle opzioni dell'indicatore dello stile.
id L'ID (intero) utilizzato dal messaggio $MsgImage per identificare l'immagine quando si riporta un evento.

Note

Lo stile della finestra delle immagini può essere assemblato dai seguenti stili con l'operatore BITOR:

Stile Descrizione
$ImgScroll L'immagine viene visualizzata con le stesse dimensioni con cui appare nel file. La finestra ha delle barre di scorrimento. Se l'immagine è più grande della finestra, può essere scorsa.
$ImgClip L'immagine viene visualizzata con le stesse dimensioni con cui appare nel file. Se necessario, gli angoli destro e superiore dell'immagine vengono ritagliati per poterli adattare alla finestra.
$ImgScale L'immagine viene adattata sia in altezza che in larghezza per corrispondere alle dimensioni della finestra. Il processo di adattamento può distorcere l'immagine.
$ImgBorder La finestra immagine ha un bordo.
$ImgTitle La finestra immagine ha un titolo. E' necessario specificare anche $ImgBorder.
Le finestre immagine possono rispondere al messaggio $MsgSetImage. Questo messaggio, quando accompagnato dal nome di un file immagine, provoca il caricamento della finestra immagine e la visualizzazione del file indicato.

Esempio

KNOWLEDGEBASE WinImage;
  TYPES
 ImageRec IS RECORD
 fileName: STRING;
 whdlImage: WINDOW;
      END;
    ROUTINES
 PROCEDURE ImageExample;
PRIVATE
    ROUTINES
 EVENT ImageEvent(REF imageData: ImageRec) IS
    ACTIONS
      WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,{'File','Open','/L','Exit',''}:
               LIST OF STRING);
 WinCreateImage($Handle,imageData.whdlImage,
                'os2logo.bmp',1,1,WinWidth($Handle),
                WinHeight($Handle),'',$ImgScroll,1);
 ELSWHEN $MsgMenu THEN
 WHEN $MenuSelection IS 101 THEN
 IF WinFileDialog($Handle,imageData.fileName,'*.bmp',
                  10,10,'Select new image', 0 ) >= 1 THEN
 SendMessage(imageData.whdlImage,
             $MsgSetImage,imageData.fileName);
      END;
 ELSWHEN 103 THEN
 SendMessage($Handle,$MsgClose);
      END;
   ELSWHEN $MsgSize THEN
 SendMessage(imageData.whdlImage,$MsgSetSize,
             $EventParm(1,INTEGER),$EventParm(2,INTEGER));
 ELSWHEN $MsgImage THEN
 WinMessageBox($Handle,'Image',$MBOK,$EventParm(1,
               INTEGER));
      END;
 END (* Image Event *);
 PROCEDURE ImageExample IS
    VARIABLES
 whdl: WINDOW;
 data: ImageRec
    ACTIONS
 WinCreate($Desktop,whdl,ImageEvent{data},0,0,0,0,
           'Image test',
 BitOr($WinBorder,$WinTitle,$WinResize,
           $WinMenu,$WinMinMax,$WinTaskList,
           $WinSysMenu,$WinAutoPos,
           $WinAutoSize));
 WinWait(whdl);
 END (* Image Example *);

Codici di ritorno

Consultare anche


WinCreateMouseRect

Descrizione

Crea un'area rettangolare sensibile ai clic del mouse.

Sintassi

FUNCTION WinCreateMouseRect(VAL whdl: WINDOW,
                            VAL xLoc, yLoc,
                            xLen, yLen, id: INTEGER):
 INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra in cui viene creato il rettangolo. L'argomento whdl può far riferimento ad una finestra standard o a una finestra a scorrimento.
xLoc La coordinata X dell'angolo superiore sinistro dell'area del mouse.
yLoc La coordinata Y dell'angolo superiore sinistro dell'area del mouse.
xLen Larghezza dell'area del mouse.
yLen Altezza dell'area del mouse.
id Intero utilizzato per identificare una particolare area del mouse.

Note

Per default, il TSD Script non riporta gli eventi del mouse all'interno di una finestra. Tuttavia, è possibile riportare eventi come ad esempio gli spostamenti e i clic del mouse, creando un'area mouse. Un'area del mouse è un'area rettangolare all'interno di una finestra. Quando si crea un'area del mouse, l'utente assegna ad essa un ID intero. L'ID viene riportato alla finestra padre insieme a tutti gli eventi mouse all'interno di quell'area.

Ogni volta che si esegue un'operazione all'interno dell'area mouse, il massaggio $MsgMouse viene inviato all'area padre di quell'area insieme ai quattro parametri evento interi riportati di seguito:

Suggerimento: WinSetMousePointer deve essere richiamato ogni volta che una delle finestre elabora un evento $MsgMouse.

Esempio

KNOWLEDGEBASE WinMouse;
    ROUTINES
 PROCEDURE MouseExample;
PRIVATE
CONSTANTS
 MENU_LIST IS {'File' ,
               'Exit','',
               'Pointer type',
               'MouseDefaultPtr',
               'MouseuLArrowPtr',
               'MouseURArrowPtr',
               'MouseDRArrowPtr',
               'MouseDLArrowPtr',
               'MouseUPResizePtr',
               'MouseURResizePtr',
               'MouseRTResizePtr',
               'MouseDRResizePtr',
               'MouseDNResizePtr',
               'MouseDLResizePtr',
               'MouseLTResizePtr',
               'MouseULResizePtr',
               'MouseCrossPtr',
               'MouseHandPtr',
               'MouseHourGlassPtr',
               'MouseIBeamPtr',''}: LIST OF STRING;
    ROUTINES
 EVENT MouseEvent(REF pointerType: INTEGER) IS
    ROUTINES
 PROCEDURE ProcessMenu(VAL whdl: WINDOW, VAL selection:
 INTEGER) IS
    ACTIONS
 WHEN selection IS 101 THEN
 SendMessage(whdl,$MsgClose);
    ELSWHEN 201 THEN
 pointerType := $MouseDefaultPtr;
 ELSWHEN 202 THEN
 pointerType := $MouseuLArrowPtr;
 ELSWHEN 203 THEN
 pointerType := $MouseURArrowPtr;
 ELSWHEN 204 THEN
 pointerType := $MouseDRArrowPtr;
 ELSWHEN 205 THEN
 pointerType := $MouseDLArrowPtr;
 ELSWHEN 206 THEN
 pointerType := $MouseUPResizePtr;
 ELSWHEN 207 THEN
 pointerType := $MouseURResizePtr;
 ELSWHEN 208 THEN
 pointerType := $MouseRTResizePtr;
 ELSWHEN 209 THEN
 pointerType := $MouseDRResizePtr;
 ELSWHEN 210 THEN
 pointerType := $MouseDNResizePtr;
 ELSWHEN 211 THEN
 pointerType := $MouseDLResizePtr;
 ELSWHEN 212 THEN
 pointerType := $MouseLTResizePtr;
 ELSWHEN 213 THEN
 pointerType := $MouseULResizePtr;
 ELSWHEN 214 THEN
 pointerType := $MouseCrossPtr;
 ELSWHEN 215 THEN
 pointerType := $MouseHandPtr;
 ELSWHEN 216 THEN
 pointerType := $MouseHourGlassPtr;
 ELSWHEN 217 THEN
 pointerType := $MouseIBeamPtr;
      END;
 END (* Process Menu *);
     ACTIONS
      WHEN $Event IS $MsgCreate THEN
 WinSetMenuBar($Handle,MENU_LIST);
  ELSWHEN $MsgPaint THEN
    WinClear( $Handle );
 WinCreateMouseRect($Handle,1,1,
                    WinWidth($Handle),
                    WinHeight($Handle),1);
 ELSWHEN $MsgMenu THEN
 ProcessMenu($Handle,$MenuSelection);
 ELSWHEN $MsgMouse THEN
 WinSetMousePointer($handle,pointerType);
      END;
 END (* Mouse Event *);
 PROCEDURE MouseExample IS
    VARIABLES
 whdlMain: WINDOW;
    ACTIONS
 WinCreate($Desktop,whdlMain,MouseEvent{
           $MouseDefaultPtr},
           0,0,60,20,
           'Mouse example',
           BitOr($WinBorder,$WinTitle,
           $WinResize,$WinMenu,
           $WinVScroll,$WinMinMax,
           $WinTaskList,
           $WinSysMenu,$WinAutoPos));
 WinWait(whdlMain);
 END (* Mouse Example *);

Codici di ritorno

Consultare anche

Per ulteriori informazioni, consultare Puntatori del mouse e Messaggi del mouse.


WinCreateScrollWindow

Descrizione

Crea una finestra a scorrimento non a scelta obbligatoria che, se necessario, si aggiorna automaticamente da sola.

Sintassi

WinCreateScrollWindow(VAL whdlParent: WINDOW,
                      REF whdl: WINDOW,|
                   VAL EventHandler: EVENT,
                   VAL xLoc, yLoc, width, height: INTEGER,
                      VAL title, font: STRING,
                      VAL pointSize, style: INTEGER):
 INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdlParent Finestra padre della finestra a scorrimento.
whdl L'handle della finestra appena creata viene restituito in questo parametro. In caso di errore, la variabile viene impostata su $Unknown.
EventHandler Un handler degli eventi per elaborare gli eventi creati dalla finestra o dalla casella di dialogo. Se non viene richiesta alcuna elaborazione eventi, è possibile utilizzare la parola chiave $NullHandler.
xLoc La posizione della X dell'angolo superiore sinistro della finestra. Le coordinate della X e della Y vengono misurate in celle di caratteri.
yLoc La posizione della Y dell'angolo superiore sinistro della finestra.
width La larghezza (dimensione della X) della finestra escluso il bordo. La larghezza viene misurata in celle di caratteri.
height L'altezza (dimensione della Y) della finestra escluso il bordo, la barra dei titoli, la barra dei menu, la barra degli strumenti e la barra di stato. L'altezza viene misurata in celle di caratteri.
title Il titolo visualizzato nella barra del titolo della finestra. La finestra deve avere una barra dei titoli per poter permettere la visualizzazione di un titolo. Utilizzare lo stile $WinTitle.
font Il nome di un font del sistema disponibile.
pointSize La dimensione in punti del font da utilizzare all'interno della finestra a scorrimento.
style Una maschera bit intera che rappresenta un elenco di indicatori di stile utilizzati per controllare l'aspetto della finestra.
Per ulteriori informazioni, consultare la sezione Note per l'istruzione WinCreate.

Note

Primo messaggio ricevuto

Quando viene creata una finestra a scorrimento, i seguenti messaggi vengono ricevuti nell'ordine riportato:

Tracciare e riaggiornare le finestre a scorrimento

WinCreateScrollWindow può essere utilizzato per creare una finestra a scorrimento virtuale. Nelle finestre generiche, il programmatore è responsabile del contenuto delle finestre e della rivisualizzazione delle finestre quando si riceve un messaggio $MsgPaint. Le finestre a scorrimento "conoscono" il loro contenuto. I programmatori scrivono le informazioni nelle finestre attraverso WinWrite, WinWriteLN e così via.

Nota: Per un elenco dei messaggi che le finestre a scorrimento possono creare e ricevere, consultare Messaggi TSD Script.

Personalizzare le finestre a scorrimento

Le finestre a scorrimento possono contenere le barra degli strumenti, le barre dei menu, le barre di stato e tutti gli altri elementi delle finestre disponibili per le finestre generiche.

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

Per ulteriori informazioni, consultare Stili delle finestre.


WinEditField

Descrizione

Visualizza un editor di una riga per il tipo di dati del valore di modifica.

Sintassi

FUNCTION WinEditField(VAL parent: WINDOW, REF value: ANY,
 VAL xLoc, yLoc, length: INTEGER, title:
                                         STRING,
 VAL style: INTEGER):
 INTEGER;

Note argomento

Nome dell'argomento Descrizione
parent Finestra padre della nuova finestra da creare. In Windows, se la finestra padre viene disabilitata quando si richiama WinEditField, la finestra WinEditField non si adatta alla finestra padre.
In Windows, se $Desktop viene specificata come finestra padre nella combinazione con $WinModal, la finestra creata con WinEditField non è a scelta obbligatoria.
La seguente sezione descrive gli indicatori dello stile, come ad esempio $WinModal.
xLoc La posizione della X dell'angolo superiore sinistro della finestra.
yLoc La posizione della Y dell'angolo superiore sinistro della finestra.
length La larghezza (dimensione della X) della finestra escluso il bordo.
title Il titolo da visualizzare nella barra dei titoli della finestra. La finestra deve avere una barra dei titoli per un titolo che deve essere visualizzato. Utilizzare lo stile $WinTitle. In Windows, la costante $WinTitle viene aggiunta automaticamente, qualora non venisse specificata.
style Un intero che contiene un elenco di indicatori dello stile che controllano l'aspetto delle finestre. Consultare la seguente sezione sugli indicatori dello stile disponibili per i dettagli.

Note

Gli indicatori dello stile disponibili per WinEditField vengono elencati nella tabella.

Indicatore di stile Descrizione
$WinAutoPos Il sistema determina la posizione migliore per la finestra. I parametri xLoc e yLoc vengono ignorati.
$WinAutoSize Il sistema determina la dimensione migliore per la finestra. I parametri xLen e yLen vengono ignorati.
$WinBorder La finestra ha un bordo simile a una casella di dialogo. Molti stili richiedono un bordo. In Windows, la costante $WinBorder viene aggiunta automaticamente qualora non venisse specificata.
$WinDefaultStyle Uno stile di default definito dal sistema assemblato da $WinBorder, $WinResize, $WinTitle e $WinSysMenu.
$WinField La finestra ha un bordo di un solo pixel (come i comandi nelle caselle di dialogo). Questo stile si esclude reciprocamente con $WinBorder.
$WinInvisible La finestra viene creata nascosta. Deve essere inviato un $MsgShow per divenire visibile.
$WinModal Quando viene creato il campo di modifica, la finestra è a scelta obbligatoria. La finestra padre della finestra del campo di modifica e tutte le altre finestre figlio vengono disabilitate.
$WinNone La finestra è nuda senza bordo, barra dei titoli o altri elementi.
$WinTaskList Il titolo della finestra viene immesso nell'elenco delle attività del sistema. L'utente può attivare la finestra dall'elenco delle attività. Generalmente questo stile viene utilizzato per la finestra principale di un'applicazione.
$WinTitle La finestra ha una barra dei titoli. Se questo stile non è presente, non viene visualizzato nessun titolo, anche se è stato specificato un titolo come uno dei parametri. Una barra dei titoli permette alla finestra di spostarsi.

Esempio

    VARIABLES
 intVal: INTEGER;
    ACTIONS
 WinEditField($Desktop,intVal,0,0,30,'Integer',
              $WinAutoPos+$WinBorder+
              $WinTitle);

Codici di ritorno

Consultare anche

DlgBox


WinEnableWindow

Descrizione

Abilita o disabilita una casella di dialogo o una finestra.

Sintassi

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

Note argomento

Nome dell'argomento Descrizione
whdl Handle della casella di dialogo o della finestra il cui stato abilitato deve essere modificato.
state Impostare su TRUE se la finestra deve essere "abilitata", impostare su FALSE se deve essere "disabilitata."

Note

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

Esempio

KNOWLEDGEBASE enable;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
 PROCEDURE Main IS
    VARIABLES
 Handle : WINDOW;
    ACTIONS
 WinCreate($Desktop,
           Handle,
           $NullHandler,
           1, 1,
           80, 25,
           'Test Window',
           $WinDefaultStyle);
 WinEnableWindow(Handle, FALSE);
 SysDelay(1000);
 WinEnableWindow(HANDLE, TRUE);
 WinWait(Handle);
      END;

Codici di ritorno


WinFileDialog

Descrizione

Visualizza una casella di dialogo di selezione file.

Sintassi

FUNCTION WinFileDialog(VAL whdlParent: WINDOW,
                       REF fileName: STRING,
                       VAL startMask: STRING,
                    VAL xLoc, yLoc: INTEGER,
                       VAL title: STRING, VAL style: INTEGER
                    ): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdlParent Finestra padre della nuova finestra da creare.
fileName Restituisce il nome file selezionato dall'utente. Se l'utente annulla la casella di dialogo, il valore rimane invariato.
startMask E' possibile selezionare la maschera di selezione file iniziale e i caratteri jolly * e ?.
xLoc La posizione della X dell'angolo inferiore sinistro della finestra.
yLoc La posizione della Y dell'angolo inferiore sinistro della finestra.
title Il titolo visualizzato nella barra del titolo della finestra. La finestra deve avere una barra dei titoli per un titolo che deve essere visualizzato. Utilizzare lo stile $WinTitle.
style Lo stile della casella di dialogo del file. I valori possibili sono:
  • $FileDlgCenter - Centra la casella di dialogo del file sullo schermo.
  • $FileDlgOpen - Crea una casella di dialogo Apertura file.
  • $FileDlgSaveAs - Crea una casella di dialogo Salva con nome. I nomi del file esistente vengono visualizzati come inattivi.

Note

E' possibile utilizzare WinFileDialog ogni volta che si desidera richiedere agli utenti il nome file, quando si apre un nuovo file oppure quando si consente agli utenti di salvare il lavoro su un nuovo file. Impostando l'argomento startMask, è possibile utilizzare WinFileDialog per scegliere tipi specifici di file (ad esempio, utilizzare *.kb per i file knowledgebase).

Suggerimento: I parametri xLoc e yLoc non hanno alcun effetto in Windows.

Esempio

    VARIABLES
 fileName: STRING;
    ACTIONS
 IF WinFileDialog($Desktop,fileName,'*.TXT',
 10,10, 'Select file to edit',0) > 0 THEN
 LoadAndEdit(fileName);
      END;

Codici di ritorno

Consultare anche


WinGetXPos

Descrizione

Interroga la posizione della coordinata X di ogni handle della finestra valido (finestra o casella di dialogo). La posizione 00 è l'angolo superiore sinistro.

Sintassi

FUNCTION WinGetXPos (VAL whdl: Window): Integer;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra per interrogare la posizione della X

Note

WinGetXPos differisce da WinX perchè interroga l'angolo superiore sinistro della finestra o della casella di dialogo, mentre WinX restituisce una posizione dei caratteri all'interno di una finestra. La posizione della coordinata X viene restituita con esito positivo.

Esempio

KNOWLEDGEBASE GetPos;
    ROUTINES
 PROCEDURE Main;
PRIVATE
    ROUTINES
 PROCEDURE Main IS
    VARIABLES
 Handle : WINDOW;
 x,y : INTEGER;
    ACTIONS
 WinCreateScrollWindow($Desktop,
           Handle,
                       $Nullhandler,
                       10,10,75,25,
                       'Test',
                       $SystemMonospaced,10,
           $WinDefaultStyle);
                       x := WinGetXPos(Handle);
 y := WinGetYPos(Handle);
 WinWriteLN(Handle, 'The upper left corner
            of the window is at
            (' & x & ', ' & y & ')');
 WinWait(Handle);
      END;

Codici di ritorno

Consultare anche

WinGetYPos


WinGetYPos

Descrizione

Interroga la posizione della coordinata Y di ogni handle della finestra valido (una finestra o una casella di dialogo). La posizione 00 è l'angolo superiore sinistro della finestra o della casella di dialogo.

Sintassi

FUNCTION WinGetYPos (VAL whdl: Window): Integer;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra per interrogare la posizione della Y

Note

WinGetYPos differisce da WinY perché interroga l'angolo superiore sinistro di una finestra o casella di dialogo, mentre WinY restituisce una posizione dei caratteri all'interno di una finestra.

Esempio

Consultare l'esempio per l'istruzione WinGetXPos.

Codici di ritorno

Consultare anche

WinGetXPos


WinGoToXY

Descrizione

Sposta il puntatore della posizione su una nuova posizione.

Sintassi

FUNCTION WinGoToXY(VAL whdl: WINDOW, VAL xLoc, yLoc:
  INTEGER):INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra sulla quale eseguire l'operazione
xLoc Nuova posizione della X del puntatore della posizione corrente
yLoc Nuova posizione della Y del puntatore della posizione corrente

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


WinHeight

Descrizione

Interroga l'altezza di una finestra e restituisce l'altezza, espressa in celle di caratteri.

Sintassi

FUNCTION WinHeight(VAL whdl: WINDOW): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra nella quale l'operazione deve essere eseguita.

Note

WinHeight restituisce l'altezza dell'area client corrente di una determinata finestra.

Esempio

WinCreateMouseZone($Handle,1,1,
                   WinWidth($Handle),WinHeight($Handle),1);

Codici di ritorno

Consultare anche


WinLoadMenuBar

Descrizione

Carica un menu da un file di risorsa e lo allega ad una specifica finestra. (Ogni menu precedentemente allegato viene sostituito.)

Sintassi

FUNCTION WinLoadMenuBar(VAL win: WINDOW,
                        VAL resource : STRING
                    ): INTEGER;

Note argomento

Nome dell'argomento Descrizione
win Modulo, generico, di scorrimento o hypertext
resource Stringa di risorsa in formato standard

Note

Un metodo più rapido per allegare un menu ad un modulo consiste nel dare al menu lo stesso nome del modulo all'interno dello stesso file .df. Il menu viene caricato automaticamente se il modulo ha lo stile del menu.

Esempio

KNOWLEDGEBASE loadmenu;
    ROUTINES
 PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
    VARIABLES
 (* Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
    VARIABLES
    ACTIONS
 WinCreate($Desktop, mainWindow, $NullHandler, 10, 10, 80, 25, 'Test Window', $WinDefaultStyle);
 (*load the menu with id MAIN_MENU from the file loadmenu.df *)
 WinLoadMenuBar(mainWindow, 'loadmenu[MAIN_MENU]');
 WinWait(mainWindow);
      END;

Codici di ritorno

Consultare anche


WinLoadPopupMenu

Descrizione

Carica una risorsa di menu da un file .df ed lo associa come menu a comparsa per la finestra, sostituendo ogni menu a comparsa esistente. Il menu a comparsa appare automaticamente e utilizza l'operazione del mouse corretta per la piattaforma. Le selezioni dal menu a comparsa vengono riportate da $MsgMenu.

Sintassi

FUNCTION WinLoadPopupMenu( VAL whdl: WINDOW,
                          VAL menu: STRING,
                    ): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle del modulo della casella di dialogo o della finestra il cui testo del titolo deve essere modificato
menu Il nome qualificato per esteso del file di specifica che descrive il menu sul menu creato

Note

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 loadpop;
    ROUTINES
 PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
    VARIABLES
 (* Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
    VARIABLES
    ACTIONS
 WinCreate($Desktop, mainWindow, $NullHandler, 10, 10, 80, 25, 'Test Window', $WinDefaultStyle);
 (* load the menu with id MAIN_MENU from the file loadmenu.df *)
 WinLoadPopupMenu(mainWindow, 'loadmenu[MAIN_MENU]');
 WinWait(mainWindow);
      END;

Codici di ritorno

Consultare anche

WinSetPopupMenu


WinLoadToolBar

Descrizione

Carica una barra degli strumenti da un file di risorsa e la allega ad una specifica finestra. (Ogni barra degli strumenti precedentemente allegata viene sostituita.)

Sintassi

FUNCTION WinLoadToolBar(VAL win: WINDOW,
 VAL resource : STRING
                    ): INTEGER;

Note argomento

Nome dell'argomento Descrizione
win Modulo, generico, di scorrimento o hypertext
resource Stringa di risorsa in formato standard

Note

Un metodo più rapido per allegare una barra degli strumenti ad un modulo consiste nello specificare una barra degli strumenti con lo stesso nome del modulo all'interno dello stesso file .df. La barra degli strumenti viene caricata automaticamente se il modulo ha lo stile della barra degli strumenti.

Esempio

KNOWLEDGEBASE loadtool;
    ROUTINES
 PROCEDURE Main;
(* ***** PRIVATE ***** *)
PRIVATE
    VARIABLES
 (* Global Variable to hold the Window handle of the window *)
 mainWindow : WINDOW;
    ROUTINES
PROCEDURE Main IS
    VARIABLES
    ACTIONS
 WinCreate($Desktop, mainWindow, $NullHandler, 10, 10, 80, 25, 'Test Window', $WinDefaultStyle);
 (* load the toolbar with id MAIN_TOOLBAR from the file loadtool.df *)
 WinLoadToolBar(mainWindow, 'loadtool[MAIN_TOOLBAR]');
 WinWait(mainWindow);
      END;

Codici di ritorno

Consultare anche


WinMenuCheckItem

Descrizione

Imposta lo stato selezionato di una voce di menu.

Sintassi

FUNCTION WinMenuCheckItem(VAL whdl: WINDOW,
                          VAL id: STRING,
                           VAL newState: BOOLEAN): INTEGER;
FUNCTION WinMenuCheckItem(VAL whdl: WINDOW,
                          VAL id: INTEGER,
                          VAL newState: BOOLEAN): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl Handle di una finestra che ha una barra dei menu
id L'ID della voce di menu da impostare
newState Il nuovo stato della voce di menu

Note

WinMenuCheckItem consente di selezionare e deselezionare una voce di menu. Lo stato selezionato corrente di una determinata opzione può essere controllato quando si richiama WinMenuItemIsChecked.

Note: Le voci di menu possono essere identificate con stringhe o numeri interi.

Esempio

 WinMenuCheckItem($Handle,204,TRUE);

Codici di ritorno

Consultare anche


WinMenuEnableItem

Descrizione

Imposta lo stato abilitato o disabilitato di una voce di menu.

Sintassi

FUNCTION WinMenuEnableItem(VAL whdl: WINDOW,
                           VAL id: STRING,
                           VAL newState: BOOLEAN): INTEGER;
FUNCTION WinMenuEnableItem(VAL whdl: WINDOW,
                           VAL id: INTEGER,
                           VAL newState: BOOLEAN): INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl Handle di una finestra che ha una barra dei menu
id L'ID della voce di menu da impostare
newState Il nuovo stato della voce di menu

Note

WinMenuEnableItem può essere utilizzato per abilitare o disabilitare una voce di menu. Le voci disabilitate non sono disponibili. La costante $SysMenuCloseItem può essere utilizzata per abilitare o disabilitare la voce Chiudi in un menu di sistema della finestra nel seguente modo:

(* This line enables the Close item *)
WinMenuEnableItem (myWindow, $SysMenuCloseItem, TRUE);
(* This line disables the Close item *)
WinMenuEnableItem (myWindow, $SysMenuCloseItem, FALSE);

Note: Le voci di menu possono essere identificate con stringhe o numeri interi.

Esempio

 WinMenuEnableItem($Handle,204,TRUE);

Codici di ritorno

Consultare anche


WinMenuItemIsChecked

Descrizione

Verifica che una voce di menu sia al momento selezionata.

Sintassi

FUNCTION WinMenuItemIsChecked(VAL whdl: WINDOW,
                              VAL id: STRING): BOOLEAN;
FUNCTION WinMenuItemIsChecked(VAL whdl: WINDOW,
                              VAL id: INTEGER): BOOLEAN;

Note argomento

Nome dell'argomento Descrizione
whdl Handle di una finestra che ha una barra dei menu
id L'ID della voce di menu da impostare

Note

Il TSD Script consente di impostare una barra dei menu delle voci di selezione. E' possibile selezionare una determinata voce di menu per verificare se viene selezionata richiamando WinMenuItemIsChecked e inoltrando due voci:

Note: Le voci di menu possono essere identificate con stringhe o numeri interi.

Esempio

 IF WinMenuItemIsChecked($Handle,204) THEN
 CarryOutAction;
      END;

Codici di ritorno

Consultare anche


WinMessageBox

Descrizione

Visualizza la casella dei messaggi e restituisce una selezione utente. (Il testo del messaggio è limitato a 512 caratteri.)

Sintassi

FUNCTION WinMessageBox(VAL whdlParent: WINDOW,
                              VAL title: STRING,
                       VAL style: INTEGER,
                       VAL message: STRING): INTEGER;

Avvertenze

Handler degli eventi e DDE

Non utilizzare WinWait quando viene elaborato un messaggio $MsgDDEInitiate. $MsgDDEInitiate invia un messaggio alle applicazioni e blocca la coda messaggio 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 argomento

Nome dell'argomento Descrizione
whdlParent La casella padre della casella dei messaggi. Se questo è $Desktop, la casella dei messaggi non può essere a scelta obbligatoria.
title Il titolo visualizzato nella barra del titolo della finestra. La finestra deve avere una barra dei titoli per poter permettere la visualizzazione di un titolo. Utilizzare lo stile $WinTitle.
style Lo stile della casella dei messaggi. Questa è una maschera bit che controlla l'aspetto e la funzionalità della casella dei messaggi.
Consultare la sezione Note per una spiegazione delle opzioni di stile.
messageText Testo del messaggio da visualizzare. Sono supportate le funzioni di Nuova riga e A capo. (Limitate a 512 caratteri.)

Note

Descrizione di una Casella di messaggi

Una casella di messaggi è una semplice casella di dialogo che si crea con WinMessageBox. Non è necessario creare un file .df o utilizzare Progettazione d'interfaccia.

Quando si utilizza WinMessageBox, è possibile aggiungere solamente un titolo, una stringa di testo (il messaggio) e fino ad un massimo di tre pulsanti. E' impossibile aggiungere altre caselle di testo e comandi.

Personalizzare le caselle dei messaggi

Lo stile di una casella dei messaggi è una combinazione delle seguenti impostazioni:

Nome stile Descrizione
Stile pulsante Indica le scelte del pulsante che appaiono all'interno della casella dei messaggi.
Stile icone Indica un tipo di icone da visualizzare all'interno della casella dei messaggi.
Pulsante di default Indica quale dei pulsanti deve essere utilizzato come default.
Modalità Indica la modalità della casella dei messaggi. Questo determina se l'utente può eseguire qualsiasi altra operazione prima di rispondere alla casella dei messaggi.
Qualifica In OS/2, se si desidera aggiungere una barra dei titoli alla finestra, è necessario specificare la costante $WinTitle. In Windows, tutte le finestre hanno automaticamente una barra del titolo.

Per creare lo stile di una caselle dei messaggi scegliere uno dei seguenti stili del pulsante:

Scegliere zero o più dei seguenti stili delle icone:

Scegliere zero o uno dei seguenti pulsanti di default:

Scegliere zero o uno delle seguenti modalità:

Se la casella dei messaggi ha un pulsante Annulla, il tasto Esc chiude la casella dei messaggi e WinMessageBox restituisce $MBResultCancel. Se non esiste alcun pulsante Annulla, il tasto Esc non ha alcun effetto. $MBResultError viene restituito solo nel caso in cui si verificasse una condizione di errore interno.

La casella dei messaggi si ridimensiona automaticamente da sola, in base al testo dei messaggi e alla lunghezza del titolo. La dimensione della casella dei messaggi non può superare i due terzi dell'altezza dello schermo.

Esempio

WinMessageBox ($Desktop,'Error',$MBOK+$MBIconError,
               'Unable to open file');

Codici di ritorno

Consultare anche

Per un elenco degli indicatori di stile, consultare Stili della casella dei messaggi.


WinParent

Descrizione

Finestra padre della finestra che è stata inoltrata come argomento.

Sintassi

FUNCTION WinParent(VAL whdl: WINDOW): WINDOW;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra della quale si richiede la finestra padre

Esempio

    VARIABLES
 parent: WINDOW;
    ACTIONS
 parent := WinParent($Handle);

Codici di ritorno

Restituisce la finestra padre della finestra che è stata inoltrata come argomento.

Consultare anche


WinSetColor

Descrizione

Imposta i colori correnti del disegno di una finestra. I colori del disegno determinano il colore del testo e il colore dello sfondo.

Sintassi

FUNCTION WinSetColor(VAL whdl: WINDOW, VAL foreGround:
                     INTEGER; VAL backGround: INTEGER):
 INTEGER;

Note argomento

Nome dell'argomento Descrizione
whdl L'handle della finestra nella quale l'operazione deve essere eseguita.
foreGround Il nuovo colore dei disegni in primo piano. Consultare la sezione Note per un elenco completo delle costanti dei colori.
backGround Il nuovo colore del disegno dello sfondo. Consultare la sezione Note per un elenco completo delle costanti dei colori.

Note

Costanti predefinite dei colori

Le seguenti costanti predefinite dei colori sono disponibili per l'uso:

Nota: $WinDefaultColor seleziona lo sfondo o il primo piano di default del sistema per la finestra.

$WinTransparent fa sì che tutte le operazioni di emissione del testo scrivano un testo trasparente fino a quando non si effettua una chiamata a WinSetColor con $WinOpaque come colore di sfondo. Il testo trasparente è il valore di default.

$WinOpaque fa sì che tutte le operazioni di emissione del testo scrivano testi opachi. Cioè, un rettangolo che circonda il testo viene ripulito dal colore di sfondo corrente. $WinOpaque rimane effettivo fino a quando non si effettua una chiamata a WinSetColor con $WinTransparent come colore di sfondo.

Accedere ai colori definiti dal sistema operativo

Utilizzare le seguenti costanti predefinite per accedere ai colori configurabili dall'utente definiti dal sistema operativo:

Esempio

WHEN $Event IS $MsgPaint THEN
 WinSetColor($Handle,$WinWhite,$WinBlack);
    WinClear( $Handle );
      END;

Codici di ritorno

Consultare anche


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

Ritorna alla pagina principale

Copyright