Tivoli Service Desk 6.0 Developer's Toolkit - Referência da Linguagem de Script

Tratamento da Janela (Continuação)

Voltar para Página Principal


WinSetFont

Descrição

Define a fonte para as próximas operações de gravação em uma janela padrão.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O tratamento da janela onde a fonte deve ser definida. Ela deve ser uma janela padrão criada por WinCreate.
fontName O nome da fonte a ser definida, como visto pelo sistema operacional. Para obter uma lista de fontes padrão do sistema, consulte as Notas desta instrução.
pointSize O tamanho da fonte em pontos.
Os tamanhos do ponto das fontes de rastreio padrão são: 8, 10, 12, 14, 18 e 24.
Nem todas as fontes estão disponíveis em todos os tamanhos.
As fontes dimensionáveis podem ter qualquer tamanho do ponto. Existem fontes dimensionáveis disponíveis para todas as fontes padrão, exceto no caso de system proportional e system monospaced. Essas fontes estão disponíveis apenas no tamanho 10.
Todas as fontes padrão, exceto system proportional, e system monospaced. Essas fontes estão disponíveis apenas no tamanho 10.
faceStyle Um conjunto de sinalizadores que podem ser combinados para formar um estilo composto.
Os valores legais são $FontPlain (padrão), $FontBold, $FontUnderScore e $FontStrikeOut.
Nem todas as fontes suportam todos os estilos. Esses estilos são incluídos a uma fonte existente. Algumas fontes são criadas com um estilo como negrito ou itálico. Nesses casos, o estilo está sempre presente.

Notas

As seguintes constantes pré-definidas fornecem acesso às fontes padrão do sistema:

Exemplo

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

Códigos de Retorno

Consulte também


WinSetIconBar

Descrição

Define e exibe ícones de uma barra de ferramentas.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador da janela com estilo $WinIconBar. Esse identificador pode ser uma janela padrão ou uma janela de rolagem.
iconList Pode ser uma lista de cadeias ou uma lista de registros do $ToolbarItem. No caso da lista de cadeias, cada cadeia é o nome de um arquivo de imagem e ser exibido na barra de ícones. Utilizando a forma alternativa ($ToolbarNodeRecord), é possível especificar atributos adicionais, como o ID do menu associado a um determinado botão da barra de ferramentas, além de um "tool tip" para o botão da barra de ferramentas.

Notas

A barra de ferramentas é um controle semelhante a uma barra de menus. A barra de ferramentas aparece abaixo da barra de título e da barra de menus de uma janela. Ela consiste em uma linha de ícones que podem ser selecionados com um clique do botão um do mouse.

Não há interface do teclado com a barra de ferramentas ou seus ícones. A seleção de um ícone envia uma mensagem de menu ($MsgMenu) para a rotina de tratamento de eventos da janela. O primeiro parâmetro do evento (inteiro) é o ID do ícone.

Nota: Os ícones são rotulados de 1 a 99 sendo que o ícone mais a esquerda tem o ID 1.

Os ícones devem estar no formato padrão de ícones. Os arquivos devem estar no diretório atual. Caso contrário, o CAMINHO completo de cada arquivo deve ser especificado. Qualquer arquivo não encontrado ou que não esteja no formato correto é enviado. Na realidade, os IDs são atribuídos pela posição na lista de ícones e não pela posição de exibição. Passar uma lista desconhecida faz com que a barra de ferramentas seja limpa e oculta.

Nota: Incluir uma barra de ferramentas em uma janela que não possui uma envia um $MsgSize para a janela com o novo tamanho da área do usuário.

Exemplo

Utilize a lista de formulários da cadeia da seguinte forma:

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

Utilize a lista $ToolbarItem da seguinte forma:

     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;

Códigos de Retorno

Consulte também


WinSetMenuBar

Descrição

Define as seleções na barra de menus de uma janela.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser efetuada.
menuList Uma lista de cadeias que especificam um menu a ser exibido na barra de menus da janela.
Consulte as Notas desta instrução para obter informações sobre o formato da lista.

Notas

WinSetMenuBar pode ser usado para definir a barra de menus em uma janela criada com o estilo $WinMenu.

A lista de cadeias passada para WinSetMenuBar especifica a estrutura de menus completa. Tanto os itens de menu horizontais (principal) quanto os verticais (auxiliares) são especificados. Os itens do menu são codificados na lista no formato de cima para baixo, da esquerda para a direita. As cadeias vazias servem como separadores. Por exemplo, se o item do menu na extremidade esquerda for File, e seus itens incluírem New, Save, Save As e Exit, a lista do menu tem a seguinte aparência:

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

A segunda coluna de itens vem em seguida.

Um til (~) pode ser usado para tornar o seletor de um item do menu uma letra. As opções da tabela a seguir podem ser colocadas no início de um item da lista de menus para obter os resultados mostrados para cada opção.

Opção Resultado
/C O item do menu está inicialmente marcado.
/D O item do menu está inicialmente desativado.
/S O item do menu é estático e não pode ser selecionado.
/L O item do menu não é exibido. Aparece um separador de linha em seu lugar.
/H O menu é mantido aberto quando o item é selecionado.
// É exibida uma barra (/). Não são mais processadas opções.

Incluir uma barra de menus a uma janela que não possui uma envia um $MsgSize para a janela com o novo tamanho da área do usuário.

Exemplo

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

Códigos de Retorno

Consulte também


WinSetPopupMenu

Descrição

Define o menu popup para uma janela, substituindo quaisquer menus popup existentes. O menu popup aparece automaticamente com a ação correta do mouse para a plataforma. As opções do menu popup são relatadas por $MsgMenu.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador do formulário da caixa de diálogo ou da janela cujo texto do título deve ser alterado
menuList Lista de itens do menu popup para a janela

Notas

A lista de cadeias passada para WinSetPopupMenu especifica a estrutura de menus inteira. Tanto os itens de menu horizontais (principal) quanto os verticais (subsidiários) são especificados. Os itens do menu são codificados na lista no formato de cima para baixo, da esquerda para a direita. As cadeias vazias servem como separadores. Por exemplo, se o item do menu na extremidade esquerda for File, e seus itens incluírem New, Save, Save As e Exit, a lista do menu tem a seguinte aparência:

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

A segunda coluna de itens vem em seguida.

Um til (~) pode ser usado para tornar o seletor de um item do menu uma letra. As opções na tabela a seguir podem ser colocadas no início de uma opção da lista de menus para obter os resultados mostrados para cada opção.

Opção Resultado
/C O item do menu está inicialmente marcado
/D O item do menu está inicialmente desativado
/S O item do menu é estático e não pode ser selecionado
/L O item do menu não é exibido. Aparece um separador de linha em seu lugar
/H O menu é mantido aberto quando o item é selecionado
// É exibida uma barra (/). Não são mais processadas opções

Incluir uma barra de menus a uma janela que não possui uma envia um $MsgSize para a janela com o novo tamanho da área do usuário.

Quando se usa WinLoadPopupMenu, o menu aparece automaticamente com a ação correta do mouse para a plataforma. Quando o usuário seleciona um item do menu, $MsgMenu é enviado para a janela. Essa ação difere da função antiga WinPopup. Em WinPopup, o usuário precisaria capturar a ação correta do mouse e chamar WinPopup para exibir o menu popup. WinPopup retornaria o id do item de menu selecionado.

Exemplo

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;

Códigos de Retorno

Consulte também

WinLoadPopupMenu


WinSetScrollBar

Descrição

Define a posição e tamanho da guia de uma barra de rolagem.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser executada.
scrollBarID Rótulo da barra de rolagem a ser definida. Deve ser $WinVScroll (vertical) ou $WinHScroll (horizontal). Se a barra de rolagem indicada não existir, nenhuma ação é executada. Não são relatados erros.
windowSize Tamanho da janela em unidades de dados. As unidades são arbitrárias, relacionadas apenas com os parâmetros dataSize e windowLoc. Esses parâmetros devem ser expressos nas mesmas unidades.
dataSize Tamanho dos dados, nas mesmas unidades usadas para especificar o tamanho da janela.
windowLoc Localização do lado superior ou esquerdo da janela, expressa nas mesmas unidades que os parâmetros anteriores.

Exemplo

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

Códigos de Retorno

Consulte também

WinCreate


WinSetTitle

Descrição

Define o texto na barra de título de um formulário da caixa de diálogo ou de uma janela.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da caixa de diálogo ou da janela cujo texto do título deve ser alterado.
newTitle O novo título do formulário da caixa de diálogo ou da janela.

Notas

Essa função também é implementada como uma mensagem que pode ser passada para um formulário de caixa de diálogo ou uma janela ($MsgSetTitle).

Exemplo

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;

Códigos de Retorno


WinSetWaitPointer

Descrição

Ativa ou desativa o ponteiro de espera (ampulheta). O ponteiro de espera afeta todas as janelas do aplicativo.

Sintaxe

WinSetWaitPointer ( VAL state : BOOLEAN ) : INTEGER;

Notas do Argumento

Nome do Argumento Descrição
state 'True' exibe o ponteiro de espera, enquanto 'False' restaura o ponteiro anterior.

Notas

WinSetWaitPointer ativa ou desativa o ponteiro de espera, dependendo do estado fornecido. É usado para fornecer a pista visual de que o aplicativo está ocupada ou em processamento.

Exemplo

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;

Códigos de Retorno


WinShowWindow

Descrição

Mostra ou oculta uma caixa de diálogo ou uma janela.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador do formulário da caixa de diálogo ou da janela cujo estado de visibilidade deve ser alterado
state Definido como TRUE se a janela deve ser "exibida", ou como FALSE se deve ser "oculta"

Notas

Usado também como mensagem para uma caixa de diálogo ou janela ($MsgShow).

Exemplo

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;

Códigos de Retorno


WinWait

Descrição

Pausa a execução enquanto existir uma janela.

Sintaxe

FUNCTION WinWait(VAL whdl: WINDOW): INTEGER;

Cuidados

Não use WinWait ao processar uma mensagem $MsgDDEInitiate. $MsgDDEInitiate distribui uma mensagem para os aplicativos e bloqueia a fila de mensagens até que uma resposta seja retornada. Enquanto isso, a instrução WinWait inicia uma rotina de tratamento de eventos que também aguarda uma resposta da fila de mensagens. WinWait impede que os outros aplicativos enviem mensagens para a fila de mensagens. O resultado é um bloqueio e o travamento efetivo da interface com o usuário.

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser executada

Notas

WinWait normalmente é usado no procedimento principal do aplicativo para aguardar até que a janela principal não esteja mais ativa.

Exemplo

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

Códigos de Retorno


WinWidth

Descrição

Consulta a largura de uma janela.

Sintaxe

FUNCTION WinWidth(VAL whdl: WINDOW): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser executada

Notas

WinWidth retorna a largura atual da área do cliente da janela indicada, expressa em células de caracteres.

Exemplo

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

Códigos de Retorno

Consulte também


WinWrite

Descrição

Escreve uma cadeia em uma janela na posição atual.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela a ser escrita. O identificador pode fazer referência a uma janela padrão (genérica) ou a uma janela de rolagem.
outputText Uma lista de cadeias a ser exibida. Uma única cadeia também é válida. Este comando é executado em cada item da lista.

Notas

WinWrite pode ser usado para gravar informações em uma janela genérica ou de rolagem. Não pode ser usado para gravar informações em uma caixa de diálogo.

Como Encontrar a Localização Atual de Desenho

O TSD Script mantém uma localização atual de desenho para cada janela genérica e de rolagem. O texto escrito por WinWrite aparece nessa localização e a posição x do local do desenho é avançada após a operação de escrita. A posição atual pode ser encontrada chamando as funções WinX e WinY.

Como Utilizar Especificadores de Formato

Os especificadores de formato são na realidade máscaras de bits onde bits diferentes controlam partes diferentes do formato. WinWrite processa uma lista de cadeias, permitindo que você controle a formatação para ser exibida em WinWrite e em outras instruções.

Em geral, qualquer expressão pode ser seguida de dois especificadores de formato:

Esses especificadores de formato são separados da expressão e uns dos outros por colunas. Por exemplo:

 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: Os diversos sinalizadores de formato são descritos em Sinalizadores de Formato do Tipo de Dados.

Especificadores de Formato para Números Reais

O especificador de formato para números reais também pode codificar o número de dígitos à direita do ponto decimal a ser exibido. Por exemplo,

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

alinha a saída à esquerda e exibe dois dígitos à direita do decimal. Por padrão, os números reais exibem seis dígitos à direita do ponto decimal.

Formatos Padrão para Tipos de Dados

Existem formatos padrão para os diversos tipos de dados. Esses padrões podem variar de acordo com o país, porque os padrões de tipo de dados (inclusive nos EUA) são baseados em definições de painel de controle internacionais.

A tabela a seguir mostra os formatos padrão dos Estados Unidos para tipos de dados.

Tipo de Dados Formato Padrão dos EUA
cadeia $FmtRightJustify
inteiro $FmtRightJustify+$FmtIntUngrouped+$FmtBlankPad+$FmtIntSignNegOnly+$FmtIntDecimal
real $FmtRightJustify+$FmtRealUngrouped+$FmtBlankPad+$FmtRealSignNegOnly+
$FmtRealDecimalDot
Booleano $FmtRightJustify+$FmtBoolTrueFalse
data $FmtRightJustify+$FmtDateMonthDayYear+$FmtBlankPad+$FmtDateSlashSeparators+
$FmtDateNumericMonth+$FmtDateFullYear
hora $FmtRightJustify+$FmtTimeWithSeconds+$FmtBlankPad+$FmtTimeMilitary

Os formatos padrão podem ser alterados utilizando as funções StringFormat, IntegerFormat, RealFormat, BooleanFormat, DateFormat e TimeFormat.

Exemplo

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

Códigos de Retorno

Consulte também

Para obter mais informações, consulte Sinalizadores de Formato do Tipo de Dados.


WinWriteAt

Descrição

Escreve uma cadeia em uma janela na localização especificada.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde escrever. O identificador pode fazer referência à janela padrão (genérica) ou a uma janela de rolagem.
xLoc A localização X do início da cadeia.
yLoc A localização Y do início da cadeia.
outputText Uma lista de cadeias a ser exibida. Uma única cadeia também é válida. Este comando processa cada item da lista.

Notas

WinWriteAt é usado para escrever informações a partir de uma localização especificada dentro de uma janela genérica ou de rolagem. No fim do processo, WinWriteAt deixa o local de desenho atual (a posição do cursor) uma posição de caractere à direita do último caractere escrito.

Exemplo

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

Códigos de Retorno

Consulte também


WinWriteLN

Descrição

Escreve uma cadeia em uma janela e avança a o ponteiro de posição para o início da próxima linha.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela a ser escrita. O identificador pode fazer referência à janela padrão (genérica) ou a uma janela de rolagem.
outputText Uma lista de cadeias a ser exibida. Uma única cadeia também é válida. Este comando processa cada item da lista.

Notas

WinWriteLN utiliza um loop FOR implícito: A lista inteira de cadeias é escrita em seqüência.

WinWriteLN é idêntico a WinWrite mas avança o cursor da janela para o início da próxima linha.

Exemplo

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

Códigos de Retorno

Consulte também


WinX

Descrição

Retorna a coordenada x da posição de desenho atual.

Sintaxe

FUNCTION WinX(VAL whdl: WINDOW): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser executada

Notas

WinX difere de WinGetXPos porque retorna uma posição de caractere dentro de uma janela, enquanto WinGetXPos consulta o canto superior esquerdo de uma janela ou caixa de diálogo.

Exemplo

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;

Códigos de Retorno

Consulte também

WinY


WinY

Descrição

Retorna a coordenada y da posição de desenho atual.

Sintaxe

FUNCTION WinY(VAL whdl: WINDOW): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser executada

Notas

WinY difere de WinGetYPos porque retorna uma posição de caractere dentro de uma janela, enquanto WinGetYPos consulta o canto superior esquerdo de uma janela ou caixa de diálogo.

Exemplo

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;

Códigos de Retorno

Consulte também

WinX


Tivoli Service Desk 6.0 Developer's Toolkit - Referência da Linguagem de Script

Voltar para Página Principal

Copyright