Exemplo de interface
O código abaixo demonstra a criação de botões, rótulos e campos de texto, bem como gerenciamento de input do usuário.
Rotina para que se execute o programa:
Inicialize os componentes.
Atribua "Lexend" para a fonte padrão.
Inicialize a interface.
Execute os eventos.
Feche o programa.
Um rótulo é uma estrutura com
Uma caixa e
Uma string.
O rótulo de e-mail é um rótulo.
Um campo textual é uma estrutura com
Uma caixa e
Uma string.
O campo de e-mail é um campo textual.
Um botão é uma estrutura com
Uma caixa e
Um nome.
O botão de fechar é um botão.
A localização do botão de fechar é uma localização.
Rotina para que se inicialize a interface:
Limpe a tela com a cor cinza claríssimo.
Posicione o rótulo de e-mail.
Posicione o botão de fechar.
Faça o botão de fechar usando o localização do botão de fechar e " Fechar ".
Posicione o campo de e-mail.
Exiba "Digite o email:" no rótulo de e-mail.
Rotina para que se posicione o rótulo de e-mail:
Atribua a coordenada X1 desta tela para a coordenada X duma localização.
Atribua a coordenada Y1 desta tela para a coordenada Y desta localização.
Atribua a coordenada X desta localização
mais 100 pixels para a coordenada X1 deste rótulo de e-mail.
Atribua a coordenada Y desta localização
mais 50 pixels para a coordenada Y1 deste rótulo de e-mail.
Atribua a coordenada X desta localização
mais 250 pixels para a coordenada X2 deste rótulo de e-mail.
Atribua a coordenada Y desta localização
mais 100 pixels para a coordenada Y2 deste rótulo de e-mail.
Rotina para que se posicione o campo de e-mail:
Atribua a coordenada X1 desta tela para a coordenada X duma localização.
Atribua a coordenada Y1 desta tela para a coordenada Y desta localização.
Atribua a coordenada X desta localização
mais 280 pixels para a coordenada X1 deste campo de e-mail.
Atribua a coordenada X desta localização
mais 680 pixels para a coordenada X2 deste campo de e-mail.
Atribua a coordenada Y deste localização
mais 60 pixels para a coordenada Y1 deste campo de e-mail.
Atribua a coordenada Y desta localização
mais 90 pixels para a coordenada Y2 deste campo de e-mail.
Rotina para que se posicione o botão de fechar:
Atribua a coordenada Y2 desta tela
menos 48 pixels para a coordenada Y duma localização.
Atribua a coordenada X2 desta tela
menos 48 pixels para a coordenada X desta localização.
Atribua a localização para a localização do botão de fechar.
Rotina para que se faça um botão usando uma localização e um nome:
Atribua a coordenada X desta localização
menos a largura deste nome para a coordenada X1 deste botão.
Atribua a coordenada Y desta localização
menos 30 pixels para a coordenada Y1 deste botão.
Atribua o localização para o canto inferior direito deste botão.
Atribua o nome para o nome deste botão.
Rotina para que se exiba uma string em um rótulo: \ TODO: com uma cor
Atribua a string para a string deste rótulo de e-mail.
Exiba os componentes e atualize a tela.
Rotina para que se exiba os componentes e atualize a tela:
Oculte o cursor.
Pinte o rótulo de e-mail.
Pinte o botão de fechar.
Pinte o campo de e-mail.
Atualize a tela.
Rotina para que se pinte um rótulo:
Pinte a caixa deste rótulo
com a cor cinza claríssimo e a cor cinza claríssimo.
Pinte a string deste rótulo no centro de
a caixa deste rótulo com a cor preta.
Rotina para que se pinte uma string em uma caixa no centro:
Pinte a string na caixa usando "centralizado".
Rotina para que se pinte um botão:
Pinte a caixa deste botão com a cor preta e a cor vermelha.
Pinte o nome deste botão na caixa deste botão com a cor branca.
Rotina para que se pinte o campo de e-mail:
Pinte a caixa deste campo de e-mail com a cor branca e a cor azul celeste.
Atribua a string deste campo de e-mail seguido de "_" para uma string.
Pinte a string na caixa deste campo de e-mail
com a cor branca e a fonte padrão e "centralizado".
Rotina para que se execute os eventos:
Aguarde por um evento.
Se o evento for inexistente, retorne.
Execute o evento.
Reitere.
Rotina para que se execute um evento:
Se a categoria deste evento for "movimentação de cursor",
Execute o evento (movimentação de cursor);
Retorne.
Se a categoria deste evento for "atualização de tela",
Execute o evento (atualização de tela);
Retorne.
Se a categoria deste evento for "clique do botão esquerdo",
Execute o evento (clique do botão esquerdo);
Retorne.
Se a categoria deste evento for "pressionamento de tecla",
Execute o evento (pressionamento de tecla);
Retorne.
Rotina para que se execute um evento (movimentação de cursor):
Mostre a seta do mouse.
Rotina para que se execute um evento (atualização de tela):
Exiba os componentes e atualize a tela.
Rotina para que se execute um evento (clique do botão esquerdo):
Se a localização deste evento estiver no botão de fechar,
Saia do programa.
Rotina para que se determine se um localização está em um botão:
Se a localização estiver na caixa deste botão, diga sim.
Diga não.
Rotina para que se saia do programa:
Delegue o controle.
Rotina para que se execute um evento (pressionamento de tecla):
Se o byte deste evento for imprimível,
Execute o evento (exibição de caractere);
Retorne.
Atribua a tecla deste evento para uma tecla.
Se a tecla deste evento for a Tecla Esc,
Execute o evento (Tecla Esc);
Retorne.
Se a tecla deste evento for a Tecla Backspace,
Execute o evento (backspace);
Retorne.
Se a tecla deste evento for a Tecla Enter,
Execute o evento (Tecla Esc);
Retorne.
Rotina para que se execute um evento (exibição de caractere):
Acrescente o byte deste evento para a string deste campo de e-mail.
Exiba os componentes e atualize a tela.
Rotina para que se execute um evento (tecla Esc):
Delegue o controle.
Rotina para que se limpe um rótulo:
Limpe a string deste rótulo.
Exiba os componentes e atualize a tela.
Rotina para que se execute um evento (backspace):
Se a string deste campo de e-mail estiver em branco,
Avise o usuário;
Retorne.
Remova o último caractere desde a string deste campo de e-mail.
Exiba os componentes e atualize a tela.
Atualizado