quinta-feira, 20 de setembro de 2007

SET-COLOR: não perca o foco

Um recurso visual bem simples no Dialog System para indicar ao usuário, qual dos EntryField´s de uma GS está com o foco.

Uma colaboração de Antônio João - MT

A sintaxe para o SET-COLOR é a seguinte:

SET-COLOR OBJETO "CORDEFRENTE" "CORDEFUNDO"

O Dialog System permite que o desenvolvedor utilize a variável especial $CONTROL, que indica qual o objeto ou controle onde ocorreu o último evento. Nós vamos utilizar essa variável para tornar a rotina genérica.

No diálogo global da sua GS, crie a procedure que irá mudar as cores quando um EntryField ganhar o foco. Nessa procedure, as cores de frente e de fundo do objeto são alteradas pelo comando SET-COLOR:

GAINED-FOCUS-COLOR
..SET-COLOR $CONTROL "Black" "Yellow"

No mesmo diálogo global, uma outra procedure deve ser criada para restaurar as cores originais do EntryField toda vez que houver a perda de foco:

LOSE-FOCUS-COLOR
..SET-COLOR $CONTROL $NULL $NULL

Note que a variável especial $NULL utilizada no comando SET-COLOR, indica que as cores originais devem ser restauradas para o objeto.

No diálogo de cada Entryfield, codifique os seguintes eventos:

GAINED-FOCUS
..EXECUTE-PROCEDURE GAINED-FOCUS-COLOR

LOSE-FOCUS
..EXECUTE-PROCEDURE LOSE-FOCUS-COLOR


Pronto. Agora é só executar seu programa. Cada vez que um EntryField ganhar o foco as cores serão alteradas para preto e amarelo. Ao perder o foco, as cores serão restauradas para o padrão do Windows.

Nenhum comentário: