Páginas

domingo, 17 de janeiro de 2010

Lazarus - Explorando os Componentes Básicos (Parte III)

Entrando múltiplas linhas

Vimos antes, que o componente TEdit permite a entrada de uma única linha de texto. Para possibilitar a entrada de mais de uma linha de texto usaremos o componente memorando (TMemo). Selecione o componente Memo da paleta Standard e o insira no form dentro de um GroupBox, como mostrado na figura abaixo.
Usaremos este componente para mostrar todos os dados pessoais cadastrados quando for pressionado o botão correspondente. Assim, precisamos modificar algumas propriedades de Memo.
  • Align - alClient. Para o Memo preencher todo o GroupBox, onde ele está contido.
  • Lines - clique no botão elipse e apague o conteúdo.
  • Name - mmDadosPessoais.
  • ReadOnly - True. Define que o usuário não pode editar o conteúdo do controle.

Juntando tudo

Insira um novo botão no  form. Esse botão, quando pressionado, mostrará os dados pessoais no campo Memo. Defina a propriedade Caption como Mostrar, Default como True e Name como btnMostrar
A definição da propriedade Default como True indica que, se o usuário pressionar a tecla Enter, o evento OnClick será executado.
Agora iremos escrever o código que fará todo o trabalho para nós.
Como vimos no nosso primeiro programa, se queremos que a ação aconteça quando pressionarmos o botão, então deveremos programar o evento OnClick do botão. Dê um duplo clique no botão e o editor de código será aberto para inserirmos o código.
Vamos analisar cada linha do código mostrado na figura acima. A linha 52 é responsável por deletar as linhas do memorando. Dessa forma toda vez que inserirmos os dados de uma nova pessoa e pressionarmos o botão btnMostrar, os dados anteriores são apagados. Observe que, para chamar um método de um componente, informamos o nome do componente seguido do nome do método separados por ponto.
A propriedade  Lines do componente  Memo é um objeto do tipo  TStrings, portanto possui propriedades e métodos. Dos métodos disponíveis de Lines usaremos Add, para adicionar novas linhas ao texto do controle.
Na linha 53 do código o nome da pessoa é adicionada ao texto. Observe a forma de invocarmos o método Add. Add é um método de Lines, e Lines é uma propriedade de mmDados. O argumento do método deve ser uma string. Como argumento usamos um literal, que identifica o dado da linha de texto, concatenado ao
nome da pessoa, que é dado pela propriedade Text  do componente edNome. A linha 54 é semelhante à 53, não merece maiores comentários.
A profissão da pessoa é adicionada na linha 55. As  profissões estão na propriedade Items de lbxProfissao. O índice do elemento selecionado no ListBox é dado pela propriedade ItemIndexItems  pode ser tratado como um vetor indexado por ItemIndex. Por isso a linha 55 é escrita dessa forma.
Na linha 56 adicionamos a idade da pessoa, definida pela propriedade Position de ScrollBar. Position é uma propriedade numérica do tipo integer. Antes de concatenar seu valor é necessário convertê-lo para string. Por isso usamos a função IntToStr(), para converter um número inteiro para string.
A linha 57 pode ser analisada de forma semelhante à linha 55. Portanto não será necessário acrescentar nenhum comentário a respeito.
No caso da linha 58 e seguintes, é o que se faz necessário para mostrar o sexo da pessoa. Como a propriedade Checked do componente CheckBox é boolean, usamos isso para implementar uma estrutura de decisão. Se Checked estiver marcado (True) então será mostrada situação ativo, caso contrário será mostrada situação inativa.
Bem, esse é um programa didático. Foi usado apenas para apresentar alguns componentes. Logo iniciaremos uma nova série de posts para apresentar mais recursos dessa poderosa ferramenta.

8 comentários:

Valdeci Alves disse...

professor...
Alguma dica de como fazer para que um edit me retorne a data e hora do sistema.. e que depois eu consiga obter o tempo de permanencia entre a entrada e saida?
obrigado pelo Blog... mt util mesmo!!!!

Robson disse...

Caro professor, segui suas dicas, muito fáceis de se aprender mas, quando compilei apareceram 51 erros. Exemplo : !Dados.lpr(17,1)Error: Undefined symbol: WSRegisterSelectDirectoryDialog.
Estou começando agora, poderia me ajudar.
Obrigado, Robson.(vrobson@ig.com.br)

Professor Carlos disse...

Qual a versão do Lazarus? Sua instalação do Lazarus aconteceu sem problemas? Quando você executa o Lazarus aparece uma janela dizendo que não foram encontrados os fontes do fpc?

mangá disse...

professor Carlos, sou do primeiro ano de informatica, preciso de algumas orientações quanto ao programa Lazarus...
Se nao for encomo pesso que me mande alguas dicas ou algo que possa me ajudar(kenyd_manga@hotmail.com), para que eu me sobresaia nessa matéria!
E tambem pretendo seguir carreira.
Atentamente de seu novo fã:kenyd da silva fernandes

Leonardo Rômulo disse...

na linha
mmDadosPessoais.Lines.Add('Profissão:' + lbxProfissao.items[lbxProfissao.ItemIndex]);
Esta dando esse erro, pq sera?
unit1.pas(58,3) Fatal: Syntax error, ";" expected but "identifier MMDADOSPESSOAIS" found

Professor Carlos disse...

Verifique se na linha anterior a essa está faltando o ; no final da linha

Leonardo Rômulo disse...

opra, vlw ajudou muito era isso mesmo era pq o codigo dessa linha e grande e ficou dificil de verificar, uma duvida que eu tenho e que no lbxProfissão nao tem a opção item index no inspetor de objetos isso e normal?

Professor Carlos disse...

É normal sim. Algumas propriedades só são acessíveis em tempo de execução, via código.

 
Creative Commons License
This work by Carlos Alberto P. Araújo is licensed under a Creative Commons Atribuição-Uso não-comercial-Compartilhamento pela mesma licença 3.0 Brasil License.