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

Tratamento de Janelas

Voltar para Página Principal


Nota: Todas as funções Win têm os mesmos códigos de retorno. Essa tabela de códigos aparece na função WinAboutBox e um link para essa tabela aparece com cada função do Win.


Voltar para Página Principal


Nota: Esta é a primeira seção das funções de Tratamento de Janela. Esta seção termina com WinSetColor, enquanto a segunda seção começa
com WinSetFont.


$Desktop

Descrição

Retorna um identificador para a janela do desktop. Esse valor é permanente durante a sessão atual. Entretanto, esse valor não é armazenado permanentemente. Da próxima vez que o programa executar, essa constante tem um novo valor.

Sintaxe

FUNCTION $Desktop: WINDOW;

Cuidado: No OS/2, existem mensagens válidas que podem ser enviadas para o desktop, causando uma pausa no processamento. Por exemplo, enviar $MsgClose para o desktop causa uma pausa na execução do programa. Esse comportamento é controlado pelo sistema operacional.

Notas

$Desktop é uma constante pré-definida do sistema que contém o identificador para o desktop do OS/2 ou do Windows. Normalmente é especificada como o pai nas instruções de janela e caixa de diálogo.

Exemplo

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;

Consulte também


$KeyCode

Descrição

Indica a tecla pressionada pelo usuário quando ocorre um evento $MsgChar.

Notas

TSD Script define diversas constantes para teclas especiais como as teclas de controle do cursor, teclas modificadas (isto é, teclas que são pressionadas em combinação com outras, como Control ou Alt), etc.

Nota: Para obter mais informações, consulte Constantes do TSD Script.

Exemplo

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;

Consulte também


WinAboutBox

Descrição

Esta função exibe um quadro padrão "Sobre" para um aplicativo.

Sintaxe

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

Cuidados

As informações exibidas contêm uma mensagem de copyright do Tivoli Service Desk e não se destinam a aplicativos de terceiros.

Notas do Argumento

Nome do Argumento Descrição
Icon O nome do arquivo .bmp associado a ser exibido com seu
aplicativo. Se o arquivo não puder ser encontrado ou se o nome do arquivo for inválido, o quadro é exibido sem a figura. Nas variáveis de ambiente SAIPATH e PATH são procurados arquivos especificados por esse comando.
AppName O nome do aplicativo.
Version O número da versão do aplicativo.

Exemplo

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;

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida.
0 Abortado pelo usuário. O usuário fechou a janela ou abortou a operação. Normalmente, isso é feito pressionando a tecla Esc ou o botão Cancel, o fechando a janela no menu do sistema.
-1 O identificador da janela não faz referência a uma janela válida. A janela pode não existir mais ou não suporta o comando.
-2 Valor desconhecido.
-3 Memória insuficiente.
-4 Sem criação. O sistema operacional não pôde criar o objeto solicitado. Um motivo possível é que um identificador de janela pai faz referência a uma janela que não existe mais.
-7 O controle mencionado de uma caixa de diálogo não pôde ser encontrado na caixa de diálogo indicada pelo identificador da janela.
-8 O comando da caixa de diálogo solicitado pode não ser executado no tipo de controle indicado.
-10 Uma chamada falhou no nível do sistema operacional. O motivo pode ser uma configuração imprópria ou recursos inadequados.
-12 A instrução SendMessage ou PostMessage foi chamada com uma mensagem que não é suportada pelas instruções NETx. As mensagens devem ser uma das mensagens $MsgNetx suportadas ou uma mensagem $MsgUser + n definida pelo usuário, definida especificamente para ser usada com as instruções NETx.

WinClear

Descrição

Limpa toda a área do cliente de uma janela ou de uma janela de rolagem para a cor do background atual.

Sintaxe

FUNCTION WinClear(VAL whdl: WINDOW): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela a ser limpa. Esse identificador pode fazer referência a uma janela padrão ou a uma janela de rolagem.

Notas

A cor do background atual pode ser alterada com a função WinSetColor.

Exemplo

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

Códigos de Retorno

Consulte também


WinClearEOL

Descrição

Limpa a janela da posição atual do cursor até o fim da linha, utilizando a cor do background atual.

Sintaxe

FUNCTION WinClearEOL(VAL whdl: WINDOW): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela a ser limpa. O identificador pode fazer referência a uma janela padrão ou a uma janela de deslocamento.

Notas

WinClearEOL limpa da posição atual do cursor até o fim da linha atual. A posição do cursor não é alterada. A área limpa é pintada na cor do background atual.

Nota: A cor do background atual pode ser alterada utilizando a função WinSetColor.

Exemplo

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

Códigos de Retorno

Consulte também


WinClearEOW

Descrição

Limpa a janela da posição atual do cursor até a parte inferior da janela, utilizando a cor do background atual.

Sintaxe

FUNCTION WinClearEOW(VAL whdl: WINDOW): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela a ser limpa. Esse identificador pode fazer referência a uma janela padrão ou a uma janela de rolagem.

Notas

WinClearEOW limpa a janela indicada da posição atual do cursor até o fim da janela. A área limpa é pintada com a cor do background atual. A posição do cursor não é alterada.

Nota: A cor do background atual pode ser alterada usando a instrução WinSetColor.

Exemplo

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

Códigos de Retorno

Consulte também


WinClearRectangle

Descrição

Limpa uma região retangular de uma janela, utilizando a cor do background atual.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela a ser limpa. O identificador pode fazer referência a uma janela padrão ou a uma janela de deslocamento.
xLoc A localização X do canto superior esquerdo da região a ser limpa. As coordenadas X são células de caracteres especificadas.
yLoc A localização Y do canto superior esquerdo da região a ser limpa. As coordenadas Y são especificadas em células de caracteres.
width A largura da região a ser limpa. A largura é medida em células de caracteres.
height A altura da região a ser limpa. A altura é medida em células de caracteres.

Notas

WinClearRectangle limpa uma região retangular específica dentro de uma determinada janela. A região limpa é pintada com a cor do background atual. O cursor não é movido.

Nota: A cor do background atual pode ser alterada usando a instrução WinSetColor.

Exemplo

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

Códigos de Retorno

Consulte também


WinCloseWindow

Descrição

Fecha uma caixa de diálogo ou uma janela.

Sintaxe

FUNCTION WinCloseWindow(VAL whdl: WINDOW): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador da caixa de diálogo ou janela a ser fechada.

Notas

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

Exemplo

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;

Códigos de Retorno


WinCreate

Descrição

Cria uma janela padrão ou genérica.

Sintaxe

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

Cuidados

Se a função do evento não processar a mensagem de pintar e limpar a janela, esta retém a imagem que estava sob ela quando a janela foi criada.

WinCreate não retorna até que $MsgCreate seja processado. Portanto, o valor do identificador da janela retornada não é definido até que $MsgCreate seja processado. Entretanto, $Handle ainda pode ser usado durante o processamento de WinCreate.

Notas do Argumento

Nome do Argumento Descrição
parent Pai da nova janela a ser criada.
whdl O identificador da janela criada recentemente é retornado neste parâmetro. Se houver um erro, a variável será definida como $Unknown.
EventHandler Uma rotina de tratamento de eventos que processa eventos gerados pela janela ou caixa de diálogo. Se não for necessário nenhum processamento de evento, $NullHandler pode ser usado.
xLoc A localização X do canto superior esquerdo da janela. As coordenadas X são especificadas em células de caracteres.
yLoc A localização Y do canto superior esquerdo da janela. As coordenadas Y são especificadas em células de caracteres.
width A largura (dimensão X) da janela, excluindo a moldura.
height A altura (dimensão Y) da janela, excluindo a moldura, a barra de título, a barra de menus, a barra de ferramentas e a barra de status.
title O título exibido na barra de título da janela. A janela deve ter uma barra de título para um título a ser exibido. Utilize um estilo que contém $WinTitle.
style Uma máscara de bit de inteiro que representa um conjunto de sinalizadores de estilo utilizados para controlar a aparência da janela.
Para obter uma lista dos sinalizadores de estilo disponíveis, consulte Estilos de Janelas.

Notas

Primeiras Mensagens Recebidas

Quando uma janela é criada, as seguintes mensagens são recebidas, na ordem mostrada:

Como Personalizar uma Janela com Estilos

WinCreate pode se usado para criar janelas padrão ou genéricas. Essas janelas podem conter barras de menus, barras de status e outros elementos de janelas.

A aparência e comportamento exatos da janela criada com WinCreate são determinados principalmente pelo argumento de estilo. Esse argumento de inteiro é uma máscara de bit montada de diversos sinalizadores (relacionados na próxima seção). Normalmente, o argumento é montado com o operador BITOR (por exemplo, BITOR($WinBorder, $WinTitle)). O método de adição deve ser usado com cuidado; ele pode trazer resultados não desejados se o mesmo sinalizador for adicionado duas vezes.

Nota: Para obter mais informações, consulte Estilos de Janelas.

Como Criar uma Rotina de Tratamento de Eventos para uma Janela

Em geral, uma rotina de tratamento de eventos é associada a uma janela criada através de WinCreate. Uma rotina de tratamento de eventos é uma rotina que processa algumas das mensagens enviadas para a janela. Por exemplo, se a janela tiver uma barra de ícones, sua rotina de tratamento de eventos recebe mensagens $MsgMenu (eventos) sempre que o usuário clica em um dos ícones. O parâmetro do primeiro evento (inteiro) contém um número entre um (1) e o número de ícones, indicando qual ícone foi selecionado. A rotina de tratamento de eventos pode, em seguida, chamar uma determinada rotina.

Nota: As diversas mensagens que podem ser recebidas por janelas criadas com WinCreate são documentadas em Mensagens TSD-Script.

Exemplo

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;

Códigos de Retorno

Consulte também


WinCreateClock

Descrição

Cria uma janela de relógio ou temporizador.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdlParent O pai da nova janela a ser criada.
whdl O identificador da nova janela é retornado neste parâmetro. Se houver um erro, a variável será definida como $Unknown.
xLoc A localização X do canto superior esquerdo da janela. As coordenadas X são medidas em células de caracteres.
yLoc A localização Y do canto superior esquerdo da janela. As coordenadas Y são medidas em células de caracteres.
width A largura (dimensão X) da janela, excluindo a moldura. A largura é medida em células de caracteres.
height A altura (dimensão Y) da janela, excluindo a moldura, a barra de título, a barra de menus, a barra de ferramentas e a barra de status. Altura medida em células de caracteres.
style O estilo da janela do relógio. Os sinalizadores de estilo são combinados com o operador BITOR.
Selecione uma ou mais das seguintes opções:
  • $ClkBorderIn - Desenha a janela do relógio com uma moldura rebaixada (o padrão).
  • $ClkBorderOut - Desenha uma moldura em relevo.
  • $ClkBorderNon - Não desenha moldura.
  • $ClkBorder - Desenha uma moldura semelhante à de uma caixa de texto.

Selecione uma ou mais das seguintes opções:

  • $Clk12Hour: Formato de 12 horas com AM e PM (o padrão).
  • $Clk24Hour: (Formato de 24 horas).

Sinalizador opcional: $ClkHidden - O relógio não é exibido na tela.

ID Número de identificação utilizado em mensagens de notificação para a janela principal. Você pode criar temporizadores em janelas genéricas utilizando a mensagem $MsgStartTimer.

Notas

WinCreateClock pode ser usado para criar relógios que se atualizam no tempo real (a cada segundo). Por padrão, um relógio começa a exibir a hora real com base no clock do sistema. Entretanto, você pode definir um relógio para que exiba uma hora atual enviando para ele a mensagem $MsgClockSet com um valor de tempo.

Por exemplo, a linha a seguir pode ser usada para configurar um relógio de tempo decorrido:

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

As janelas de relógio também respondem a mensagens $MsgShow. Isso permite que você crie uma janela de relógio, a oculte, altere seu valor de tempo e a exiba. Considere o seguinte exemplo:

     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;

Neste exemplo, você está dentro do processamento de eventos para outra janela. Quando a janela é criada, ela cria um relógio mas o oculta. Quando a janela recebe uma mensagem START_TIMER, define a hora do relógio como 00:00:00 e mostra o relógio. O usuário vê um relógio de tempo decorrido.

Exemplo

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

Códigos de Retorno

Consulte também


WinCreateHyperViewer

Descrição

Cria uma janela de exibição de Interface de Documentos Múltiplos (MDI) com recursos básicos de hipertexto. As barras de menu disponíveis com os menus Arquivo, Editar e Janela permitem que você:

As opções de menus popup podem ser acessadas pressionando o botão direito do mouse em um visualizador de hipermídia. Esses itens de menu permitem que você selecione:

Sintaxe

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;

Notas do Argumento

Nome do Argumento Descrição
whdlParent O pai da nova janela a ser criada.
whdl O identificador da janela criada recentemente é retornado neste parâmetro. Se houver erro, o argumento whdl é definido como $Unknown.
fileName O nome do arquivo a ser exibido. Se o arquivo não estiver no diretório atual, o SAIPATH é procurado. O arquivo pode ser um ASCII simples ou pode ter links de hipertexto incorporados.
Consulte a seção Notas para obter mais informações.
EventFunc Uma rotina de tratamento de eventos para processar eventos que é gerada pela janela ou caixa de diálogo. Se não for necessário nenhum processamento de eventos, a palavra-chave $NullHandler pode ser usada.
xLoc A localização X do canto superior esquerdo da janela. As coordenadas X são medidas em células de caracteres.
yLoc A localização Y do canto superior esquerdo da janela. As coordenadas Y são medidas em células de caracteres.
width A largura (dimensão X) da janela, excluindo a moldura. A largura é medida em células de caracteres.
height A altura (dimensão Y) da janela, excluindo a moldura, a barra de título, a barra de menus, a barra de ferramentas e a barra de status. A altura é medida em células de caracteres.
title O título exibido na barra de título da janela. A janela deve ter uma barra de título para um título a ser exibido.
style Uma máscara de bit de inteiro que representa uma lista de sinalizadores de estilo utilizados para controlar a aparência da janela.
Para obter mais informações, consulte as Notas para esta instrução

Notas

WinCreateHyperViewer pode ser usado para criar um visualizador de hipertexto. Além de criar uma janela com a posição, tamanho e estilos indicados, WinCreateHyperViewer exibe o conteúdo do arquivo indicado. Supõe-se que esse arquivo contém texto em ASCII com botões incorporados. Um botão, que parece ao usuário uma palavra destacada, é um link para outro objeto como um arquivo de texto, arquivo de som, figura ou programa.

Um botão é definido no seguinte formato:

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

<Button text> é o texto a ser exibido como texto destacado para o usuário, e <command> indica a ação iniciada pelo clique.

Quebra de linha

O controle de hipertexto espera que o arquivo fornecido esteja formatado como arquivo de hipermídia Tivoli Systems. Isso significa que ele quebra linhas em todas as linhas de texto (ignorando retornos do carro) até encontrar dois retornos do carro seguidos.

Como Desligar Quebra de Linha e Formatar Padrões

Para desativar a quebra de linha e os padrões de formatação para uma janela de hipertexto, você pode usar aseview.exe para passar os sinalizadores /NOWORDWRAP /NOFORMAT como argumentos da linha de comandos. Essa é a única forma de desativar de forma programada a quebra de linha e os padrões de formatação para uma janela de hipertexto.

Opções de Comandos WinCreateHyperviewer

A tabela a seguir mostra as opções de comandos para a instrução WinCreateHyperViewer e descrições:

Opção de Comando Descrição
ID Se o comando for um inteiro, supõe-se que seja um ID de botão. Quando o usuário clica no botão, uma mensagem $MsgButton é enviada para a rotina de tratamento de eventos da janela do visualizador de hipertexto. O texto do botão está no parâmetro de evento um (cadeia) e o ID do botão, no parâmetro de evento dois (inteiro).
Se não forem fornecidos comandos (se o botão estiver na forma [[Button-text]]), a rotina de tratamento de eventos ainda recebe uma mensagem $MsgButton quando o botão é selecionado. Entretanto, o ID do botão (parâmetro de evento dois, inteiro), é 0. Nesse caso, se a rotina de tratamento de eventos retornar zero, o visualizador modifica o texto do botão para que formButtonTextand execute uma operação de pesquisa (ver abaixo).
JUMP JUMP <nome do marcador> procura na lista de marcações um marcador que corresponda ao texto após Jump (consulte a marcação Marcador para obter mais informações). Se for encontrada uma correspondência, a linha que contém o marcador é posicionada na parte superior do visualizador e é gerado um EventJump. A exibição de hipertexto processa o EventJump para manter uma lista de marcadores "visitados" em um arquivo.
LABEL LABEL <texto da etiqueta> pode ser qualquer cadeia de caracteres. Uma mensagem $MsgLabel é enviada para a rotina de tratamento de eventos da janela com o texto do botão no parâmetro do evento um (cadeia) e o texto da etiqueta no parâmetro do evento dois (cadeia).
MARKER MARKER <nome do marcador> coloca um marcador invisível no texto.
SEARCH SEARCH <texto da pesquisa> procura o arquivo atual a partir do início do <texto da pesquisa>. O texto pode não cruzar linhas, a não ser que o texto da pesquisa tenha novas linhas incorporadas. A pesquisa faz distinção entre maiúsculas e minúsculas, exceto no Windows.
Se o texto for encontrado, o visualizador é posicionado de forma que a linha que contém o texto apareça na linha superior da janela do visualizador.
FILE FILE <nome do arquivo> [NEW|REPLACE] [NOWORDWRAP|NOFORMAT] abre um novo arquivo de texto. Por padrão, o novo arquivo substitui o que está atualmente no visualizador. Este também é o caso se a palavra-chave REPLACE estiver após <nome do arquivo>.
Se a palavra-chave NEW vier após <nome do arquivo>, é aberta uma nova janela do visualizador para exibir o novo arquivo.
O tamanho do visualizador é determinado pelo sistema.
Por padrão, é usada quebra de linha, para que todas as linhas que não sejam separadas por no mínimo uma linha em branco sejam tratadas como parágrafo da seqüência.
A primeira linha em branco após qualquer linha que não seja em branco é descartada. A palavra-chave NOWORDWRAP pode ser usada para excluir esse comportamento. NOFORMAT usado juntamente com a quebra de linha padrão evita que linhas adjacentes sejam combinadas mas ainda quebra linhas longas.
IMAGE IMAGE <arquivo de imagem>.BMP [SCROLL | SCALE]abre um visualizador de imagens e exibe o arquivo de imagem indicado. Por padrão, a imagem é cortada para caber no tamanho do visualizador. A palavra-chave SCALE causa o dimensionamento da imagem para o tamanho do visualizador. A palavra-chave SCROLL corta a imagem mas inclui barras de rolagem que podem ser usadas para deslocar através da imagem completa.
PLAY PLAY <arquivo de som>.WAV reproduz o arquivo de áudio indicado. Aparece uma janela de exibição de hipertexto, que o usuário pode manipular para controlar a reprodução de áudio.
RUN RUN <nome do aplicativo> executa o aplicativo indicado. <nome do aplicativo> pode ser uma cadeia que contém não apenas o nome de um executável ou arquivo de comandos como também argumentos da linha de comandos ([[Windows NT|RUN F:\DOC\DOCMAN.EXE WINDOWS_NT]]).


Para obter uma lista completa dos diversos tipos de mensagens que podem ser recebidas por janelas genéricas, consulte Mensagens do TSD Script.

Para uma discussão de sinalizadores de estilo de janela, consulte a instrução WinCreate.

Exemplo

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

Códigos de Retorno

Consulte também

Para obter mais informações sobre como formatar arquivos de hipermídia, consulte o Tivoli Service Desk Developer's Toolkit - Guia de Ferramentas e Utilitários.

Para obter mais informações sobre SAIPATH, consulte Busca de Arquivos utilizando SAIPATH.


WinCreateImage

Descrição

Cria uma janela que exibe uma imagem.

Sintaxe

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;

Notas do Argumento

Nome do Argumento Descrição
whdlParent Pai da nova janela a ser criada.
whdl O identificador da janela criada recentemente é retornado neste parâmetro. Se houver um erro, a variável será definida como $Unknown.
fileName O nome do arquivo da imagem exibida. A imagem pode ser um arquivo bitmap do OS/2, um bitmap do Windows ou um arquivo de imagem .PCX.
xLoc A localização X do canto superior esquerdo da janela. As coordenadas X são medidas em células de caracteres.
yLoc A localização Y do canto superior esquerdo da janela. As coordenadas Y são medidas em células de caracteres.
width A largura (dimensão X) da janela, excluindo a moldura. A largura é medida em células de caracteres.
height A altura (dimensão Y) da janela, excluindo a moldura, a barra de título, a barra de menus, a barra de ferramentas e a barra de status. A altura é medida em células de caracteres.
title O título exibido na barra de título da janela. A janela deve ter uma barra de título para um título a ser exibido. Utilize o estilo $ImgTitle.
style Um bitmap de inteiro que controla o procedimento da janela de imagem.
Consulte a seção Notas para obter informações sobre opções do indicador de estilo.
id O ID (inteiro) utilizado pela mensagem $MsgImage para identificar a imagem ao relatar um evento.

Notas

O estilo da janela de imagem pode ser montado a partir dos seguintes estilos com o operador BITOR:

Style Descrição
$ImgScroll A imagem aparece do tamanho que ela tem no arquivo. A janela tem barras de rolagem. Se a imagem for maior que a janela, pode ser deslocada.
$ImgClip A imagem aparece do tamanho que ela tem no arquivo. Os lados superior e direito da imagem são cortados para caber na janela, se necessário.
$ImgScale A imagem é dimensionada na largura e na altura para caber no tamanho da janela requerido. O processo de dimensionamento pode distorcer a imagem.
$ImgBorder A janela de imagem possui uma moldura.
$ImgTitle A janela de imagem possui um título. $ImgBorder também deve ser especificado.
As janelas de imagem podem responder a mensagem $MsgSetImage. Essa mensagem, quando acompanhada do nome de um arquivo de imagem, faz com que a janela de imagem carregue e exiba o arquivo indicado.

Exemplo

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

Códigos de Retorno

Consulte também


WinCreateMouseRect

Descrição

Cria uma região retangular sensível a cliques do mouse.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador da janela onde o retângulo está sendo criado. O argumento whdl pode fazer referência a uma janela padrão ou a uma janela de rolagem.
xLoc Coordenada X do canto superior esquerdo da região do mouse.
yLoc Coordenada Y do canto superior esquerdo da região do mouse.
xLen Largura da região do mouse.
yLen Altura da região do mouse.
id Inteiro utilizado para identificar uma determinada região do mouse.

Notas

Por padrão, o TSD Script não relata eventos do mouse dentro de uma janela. Entretanto, você pode fazer com que eventos como deslocamentos do mouse e cliques sejam relatados, criando uma região do mouse. A região do mouse é uma região retangular dentro de uma janela. Quando você cria uma região do mouse, atribui um ID inteiro a ela. O ID é relatado à janela principal juntamente com todos os eventos do mouse dentro dessa região.

Sempre que ocorrer atividade dentro de uma região do mouse, a mensagem $MsgMouse é enviada ao pai dessa região, juntamente com esses quatro parâmetros de evento inteiros:

Dica: WinSetMousePointer pode ser chamado sempre que uma de suas janelas processar um evento $MsgMouse.

Exemplo

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

Códigos de Retorno

Consulte também

Para obter mais informações, consulte Indicadores do Mouse e Mensagens do Mouse.


WinCreateScrollWindow

Descrição

Cria uma janela de rolagem sem modelo, que pinta a si mesma automaticamente conforme necessário.

Sintaxe

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;

Notas do Argumento

Nome do Argumento Descrição
whdlParent Pai da janela de rolagem.
whdl O identificador da janela criada recentemente é retornado neste parâmetro. Se houver um erro, a variável será definida como $Unknown.
EventHandler Uma rotina de tratamento de eventos para processar eventos que é gerada pela janela ou caixa de diálogo. Se não for necessário nenhum processamento de evento, $NullHandler pode ser usado.
xLoc A localização X do canto superior esquerdo da janela. As coordenadas X e Y são medidas em células de caracteres.
yLoc A localização Y do canto superior esquerdo da janela.
width A largura (dimensão X) da janela, excluindo a moldura. A largura é medida em células de caracteres.
height A altura (dimensão Y) da janela, excluindo a moldura, a barra de título, a barra de menus, a barra de ferramentas e a barra de status. A altura é medida em células de caracteres.
title O título exibido na barra de título da janela. A janela deve ter uma barra de título para que o título seja exibido. Utilize o estilo $WinTitle.
font O nome de uma fonte do sistema disponível.
pointSize O tamanho do ponto da fonte a ser utilizado dentro da janela de rolagem.
style Uma máscara de bit de inteiro que representa uma lista de sinalizadores de estilo utilizados para controlar a aparência da janela.
Consulte a seção Notas da instrução WinCreate para obter mais informações.

Notas

Primeiras Mensagens Recebidas

Quando uma janela de rolagem é criada, as seguintes mensagens são recebidas na ordem mostrada:

Como Rastrear e Pintar Janelas de Rolagem

WinCreateScrollWindow pode ser usado para criar uma janela de rolagem virtual. Em janelas genéricas, o programador é responsável por saber o conteúdo da janela e exibir novamente a janela ao receber uma mensagem $MsgPaint. As janelas de rolagem "sabem" seu conteúdo. Os programadores gravam informações através de WinWrite, WinWriteLN, etc.

Nota: Para uma lista das mensagens que as janelas de rolagem podem gerar e receber, consulte Mensagens do TSD Script.

Como Personalizar Janelas de Rolagem

As janelas de rolagem podem conter barras de ferramentas, barras de menus, barras de status e todos os outros elementos disponíveis em janelas genéricas.

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

Para obter mais informações, consulte Estilos de Janelas.


WinEditField

Descrição

Exibe um editor de uma linha para o tipo de dados do valor de edição.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
parent Pai da nova janela a ser criada. No Windows, se a janela principal estiver desativada quando WinEditField for chamado, a janela WinEditField não limita a janela principal.
No Windows, se $Desktop for especificado como pai em combinação com $WinModal, a janela criada com WinEditField é sem modelo.
A seção a seguir descreve os sinalizadores de estilo, como $WinModal.
xLoc A localização X do canto superior esquerdo da janela.
yLoc A localização Y do canto superior esquerdo da janela.
length A largura (dimensão X) da janela, excluindo a moldura.
title O título a ser exibido na barra de título da janela. A janela deve ter uma barra de título para um título a ser exibido. Utilize o estilo $WinTitle. No Windows, a constante $WinTitle é incluída automaticamente se não for especificada.
style Um inteiro que contém uma lista de sinalizadores de estilo que controlam a aparência da janela. Consulte a seção a seguir sobre os sinalizadores de estilo disponíveis para obter detalhes.

Notas

Os sinalizadores de estilo disponíveis para WinEditField estão relacionadas na tabela.

Sinalizador de Estilo Descrição
$WinAutoPos O sistema determina a melhor posição para a janela. Os parâmetros xLoc e yLoc são ignorados.
$WinAutoSize O sistema determina o melhor tamanho para a janela. Os parâmetros xLen e yLen são ignorados.
$WinBorder A janela tem uma moldura semelhante a uma caixa de diálogo. Diversos estilos requerem uma moldura. No Windows, a constante $WinBorder é incluída automaticamente caso não seja especificada.
$WinDefaultStyle Um estilo padrão definido pelo sistema montado a partir de $WinBorder, $WinResize, $WinTitle e $WinSysMenu.
$WinField A janela tem uma moldura de um pixel (como os contornos das caixas de diálogo). Esse estilo é mutuamente exclusivo com $WinBorder.
$WinInvisible A janela é criada oculta. Ela deve receber uma $MsgShow para tornar-se visível.
$WinModal Quando o campo de edição é criado, é uma janela modal. O pai da janela do campo de edição e todas as outras janelas filhas são desativados.
$WinNone A janela é simples, sem moldura, barra de título ou outros elementos.
$WinTaskList O título da janela é digitado na lista de tarefas do sistema. O usuário pode ativar a janela da lista de tarefas. Esse estilo deve ser usado genericamente para a janela principal de um aplicativo.
$WinTitle A janela possui uma barra de título. Se esse estilo não estiver presente, não é exibido título, mesmo que seja especificado um título como um dos parâmetros. Uma barra de título torna a janela móvel.

Exemplo

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

Códigos de Retorno

Consulte também

DlgBox


WinEnableWindow

Descrição

Ativa ou desativa uma caixa de diálogo ou uma janela.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador da caixa de diálogo ou da janela cujo estado ativado deve ser alterado.
state Definido como TRUE se a janela deve ser "ativada", definido como FALSE se deve ser "desativada"

Notas

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

Exemplo

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;

Códigos de Retorno


WinFileDialog

Descrição

Exibe uma caixa de diálogo de seleção de arquivos.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdlParent Pai da nova janela a ser criada.
fileName Retorna o nome do arquivo selecionado pelo usuário. Se o usuário cancelar a caixa de diálogo, o valor é inalterado.
startMask A máscara de seleção do arquivo inicial, caracteres curinga * e ? podem ser utilizados.
xLoc A localização X do canto inferior esquerdo da janela.
yLoc A localização Y do canto inferior esquerdo da janela.
title O título exibido na barra de título da janela. A janela deve ter uma barra de título para um título a ser exibido. Utilize o estilo $WinTitle.
style O estilo da caixa de diálogo do arquivo. Os valores possíveis são:
  • $FileDlgCenter - Centraliza a caixa de diálogo do arquivo na tela.
  • $FileDlgOpen - Cria uma caixa de diálogo Arquivo Aberto.
  • $FileDlgSaveAs - Cria uma caixa de diálogo Salvar Como. Os nomes de arquivos existentes são exibidos como inativo.

Notas

Você pode usar WinFileDialog sempre que desejar solicitar dos usuários um nome de arquivo, ao abrir um novo arquivo ou ao permitir que o trabalho seja salvo em um novo arquivo. Definindo o argumento startMask, você pode utilizar WinFileDialog para selecionar tipos específicos de arquivos (por exemplo, utilize *.kb para bases de informações).

Dica: Os parâmetros xLoc e yLoc não têm efeito no Windows.

Exemplo

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

Códigos de Retorno

Consulte também


WinGetXPos

Descrição

Consulta a posição da coordenada X de qualquer identificador de janela válido (janela ou caixa de diálogo). A posição 00 é o canto superior esquerdo.

Sintaxe

FUNCTION WinGetXPos (VAL whdl: Window): Integer;

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador da janela para consultar a posição X

Notas

WinGetXPos difere de WinX porque consulta o canto superior esquerdo da janela ou da caixa de diálogo, enquanto WinX retorna uma posição de caractere dentro da janela. A posição da coordenada X retorna se houver êxito.

Exemplo

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;

Códigos de Retorno

Consulte também

WinGetYPos


WinGetYPos

Descrição

Consulta a posição da coordenada Y de qualquer identificador de janela válido (uma janela ou uma caixa de diálogo). A posição 00 é o canto superior esquerdo da janela ou caixa de diálogo.

Sintaxe

FUNCTION WinGetYPos (VAL whdl: Window): Integer;

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador da janela para consultar a posição Y

Notas

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

Exemplo

Consulte o exemplo da instrução WinGetXPos.

Códigos de Retorno

Consulte também

WinGetXPos


WinGoToXY

Descrição

Move o indicador de posição para uma nova localização.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser executada
xLoc Nova localização X do indicador de posição atual
yLoc Nova localização Y do indicador de posição atual

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


WinHeight

Descrição

Consulta a altura de uma janela e retorna a altura, expressa em células de caracteres.

Sintaxe

FUNCTION WinHeight(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

WinHeight retorna a altura da área do cliente atual de uma determinada janela.

Exemplo

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

Códigos de Retorno

Consulte também


WinLoadMenuBar

Descrição

Carrega um menu de um arquivo de recurso e o anexa a uma janela específica. (Qualquer menu anexado anteriormente é substituído).

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
win Formulário, genérica, rolagem ou hipertexto
resource Cadeia de recursos no formato padrão

Notas

Um atalho para anexar um menu a um formulário é dar ao menu o nome do formulário dentro do mesmo arquivo .df. O menu é carregado automaticamente se o formulário tiver o estilo do menu.

Exemplo

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;

Códigos de Retorno

Consulte também


WinLoadPopupMenu

Descrição

Carrega um recurso de menu de um arquivo .df e o associa como menu popup da janela, substituindo qualquer menu popup existente. O menu popup aparece automaticamente e utiliza a ação correta do mouse para a plataforma. As opções do menu popup são relatadas por $MsgMenu.

Sintaxe

FUNCTION WinLoadPopupMenu( VAL whdl: WINDOW,
                          VAL menu: 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
menu O nome completamente qualificado do arquivo de especificação que descreve o menu para o menu criado

Notas

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

Códigos de Retorno

Consulte também

WinSetPopupMenu


WinLoadToolBar

Descrição

Carrega uma barra de ferramentas de um arquivo de recursos e a anexa a uma janela específica. (Qualquer barra de ferramentas anexada anteriormente é substituída).

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
win Formulário, genérica, rolagem ou hipertexto
resource Cadeia de recursos no formato padrão

Notas

Um atalho para anexar uma barra de ferramentas a um formulário é especificar uma barra de ferramentas com o nome do formulário dentro do mesmo arquivo .df. A barra de ferramentas é carregada automaticamente se o formulário tiver o estilo da barra de ferramentas.

Exemplo

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;

Códigos de Retorno

Consulte também


WinMenuCheckItem

Descrição

Define o estado verificado de um item do menu.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador de uma janela com uma barra de menus
id O ID do item do menu a ser definido
newState O novo estado do item do menu

Notas

WinMenuCheckItem permite que você verifique e elimine a verificação de um item do menu. O status verificado atual de uma determinada opção pode ser testado quando você chamar WinMenuItemIsChecked.

Nota: Os itens do menu podem ser identificados com cadeias ou inteiros.

Exemplo

WinMenuCheckItem($Handle,204,TRUE);

Códigos de Retorno

Consulte também


WinMenuEnableItem

Descrição

Define o estado ativado ou desativado de um item do menu.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador de uma janela com uma barra de menus
id O ID do item do menu a ser definido
newState O novo estado do item do menu

Notas

WinMenuEnableItem pode ser usado para ativar ou desativar um item do menu. Os itens desativados não estão disponíveis. A constante $SysMenuCloseItem pode ser usada para ativar ou desativar o item Fechar do menu do sistema de uma janela da seguinte forma:

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

Nota: Os itens do menu podem ser identificados com cadeias ou inteiros.

Exemplo

WinMenuEnableItem($Handle,204,TRUE);

Códigos de Retorno

Consulte também


WinMenuItemIsChecked

Descrição

Testa se um item de menu está verificado.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl Identificador de uma janela com uma barra de menus
id O ID do item do menu a ser definido

Notas

O TSD Script permite que você configure uma barra de menus de itens de seleção. Você pode verificar um determinado item do menu para saber se está selecionado, chamando WinMenuItemIsChecked e passando dois itens:

Nota: Os itens do menu podem ser identificados com cadeias ou inteiros.

Exemplo

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

Códigos de Retorno

Consulte também


WinMessageBox

Descrição

Exibe uma caixa de mensagens e retorna uma seleção do usuário. (O texto da mensagem é limitado a 512 caracteres).

Sintaxe

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

Cuidados

Rotinas de Tratamento de Eventos e DDE

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
whdlParent O pai da caixa de mensagens. Se for $Desktop, a caixa de mensagens não pode ser modal.
title O título exibido na barra de título da janela. A janela deve ter uma barra de título para que o título seja exibido. Utilize o estilo $WinTitle.
style O estilo da caixa de mensagens. Este é uma máscara de bit que controla a aparência e o comportamento da caixa de mensagens.
Consulte a seção Notas para obter uma explicação das opções de estilo.
messageText Texto da mensagem para exibição. São suportados quebra de linha e nova linha. (Limitado a 512 caracteres).

Notas

Descrição de uma Caixa de Mensagens

Uma caixa de mensagens é uma caixa de diálogo simples que você cria com WinMessageBox. Não é necessário criar um arquivo .df ou utilizar o Criador de Interface.

Ao utilizar WinMessageBox, você pode incluir apenas um título, uma cadeia de texto (a mensagem) e até três botões. Você não pode incluir nenhuma outra caixa de texto ou controle.

Como Personalizar Caixas de Mensagens

O estilo de uma caixa de mensagens é uma combinação das seguintes definições:

Nome do Estilo Descrição
Estilo do botão Indica as opções de botão que aparecem dentro da caixa de mensagens.
Estilo do ícone Indica um tipo de ícone a ser exibido dentro da caixa de mensagens.
Botão padrão Indica qual dos botões deve ser o padrão.
Modo Indica a modalidade da caixa de mensagens. Isso determina se o usuário pode fazer algo antes de responder a caixa de mensagens.
Título No OS/2, se você deseja incluir uma barra de título na janela, deve especificar a constante $WinTitle. No Windows, todas janelas têm uma barra de título automaticamente.

Para criar o estilo de uma caixa de mensagens, selecione um dos seguintes estilos de botão:

Selecione alguns dos seguintes estilos de ícone, ou nenhum deles:

Selecione um dos seguintes estilos de ícone, ou nenhum deles:

Selecione um dos seguintes modos, ou nenhum deles:

Se a caixa de mensagens tiver um botão Cancelar, a tecla Esc fecha a caixa de mensagens e WinMessageBox retorna $MBResultCancel. Se não houver um botão Cancelar, a tecla Esc não tem efeito. $MBResultError é retornado apenas no caso de uma condição de erro interno.

A caixa de mensagens dimensiona automaticamente, com base no texto da mensagem e do comprimento do título. A caixa de mensagens pode ter até dois terços da altura da tela.

Exemplo

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

Códigos de Retorno

Consulte também

Para obter uma lista de sinalizadores de estilo, consulte Estilos da Caixa de Mensagens.


WinParent

Descrição

Pai da janela passada como seu argumento.

Sintaxe

FUNCTION WinParent(VAL whdl: WINDOW): WINDOW;

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela cujo pai é requisitado

Exemplo

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

Códigos de Retorno

Retorna o pai da janela passada como seu argumento.

Consulte também


WinSetColor

Descrição

Define as cores atuais de desenho de uma janela. As cores de desenho determinam a cor do texto e a cor do background.

Sintaxe

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

Notas do Argumento

Nome do Argumento Descrição
whdl O identificador da janela onde a operação deve ser executada.
foreGround A nova cor de desenho do primeiro plano. Consulte a seção Notas para obter uma lista completa das constantes de cor.
backGround A nova cor de desenho do background. Consulte a seção Notas para obter uma lista completa das constantes de cor.

Notas

Constantes de Cor Pré-Definidas

As seguintes constantes de cor pré-definidas estão disponíveis:

Nota: $WinDefaultColor seleciona o primeiro plano e o background padrão do sistema para a janela.

$WinTransparent faz com que todas as operações de saída de texto escrevam texto transparente até uma chamada para WinSetColor com $WinOpaque como cor do background. O texto transparente é o padrão.

$WinOpaque faz com que todas as operações de saída de texto escrevam texto opaco. Isso é, um retângulo em torno do texto é limpo com a cor do background atual. $WinOpaque permanece ativo até uma chamada para WinSetColor com $WinTransparent como cor do background.

Como Acessar Cores Definidas pelo Sistema Operacional

Utilize as seguintes constantes pré-definidas para acessar cores configuráveis pelo usuário para o sistema operacional:

Exemplo

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

Códigos de Retorno

Consulte também


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

Voltar para Página Principal

Copyright