IVofa - É de uso comum os programadores nomearem os componentes
ção quando escrevermos o código, al- tere os nomes dos RadioGroups Para da seguinte Íorma: uma palavra signìficativa prefixada de uma parte do nome padrão do componente. Veja por exemplo, o nome dado acima, 'êdBase',t66t 'RGreg' e'RGmodo', respectivamen- por sé tratar de um componente Edit, e'Base', pois este edit servirá para b, conforme os Captions que você já conter o endereço base da porta paralela. Dessa forma, fica Íácil relacionar afterou. Adicione também um compo- o componente com a sua Íunção no programa. Assim, a mudança do nome nente Timer, e altere as propriedades dos componente é apenas para Íacilitar a compreensão por parte do progra- Enabled para False (isto signiÍica que mador, que ao ler/reler o código Íonte contendo nomes sugestivos, terá mai- ele estará inicialmente desabilitado) e or Íacilidade na compreensão do algorítmo. Outro fato a considerar é que lntervalpara 100: signiÍica que quan- normalmente não se altera o nome de componentes tipo 'Label', pois rara- do ele for habilitado (Enabled := Ïuei) mente eles são acessados em tempo de execução. Portanto, não é sequer via algum evento, ele executará a sua mencionado no código fonte. Observe isto no programa que faremos no pro- rotina de evento (onTimer) a cada 100 jeto práico. milissegundos. Ponha os demais bo- tões (SpeedButtons e BitBtn), Edits e labels, alterando as propriedades de- zados, com as finalidades descritas. fim de ler o conteúdo do registro de les conforme mostrado na Íigura 5. Você não precisa se Preocupar estado. Não é necessária alimentação Lembre-se: No caso dos botões e dos com a parte de código gerado auto- externa, pois o próprio circuito da por- labels, o texto que aparece no compo- maticamente, basta copiar os códigos la é capaz de Íornecer os níveis ne- nente é o conteúdo da proPriedade para as procedures que Íarão o trata- cessários. Como a leitura em aberto 'Caption', enquanto que no caso do mento dos eventos. lnclusive não é ne- do registro de estado resulta em nível componente Edit, é o conteúdo da pro- cessário copiar os comentários, pois alto, a menos do bit /S7, aPenas a co- priedade 'Text' no Object eles são apenas para facilitar a sua nexão eventual via chave com o terra lnspector. compreensão, Os textos entre '{ }' e do circuito da porta é suÍiciente para Para o caso do botão com caPtion apôs'l/' são comentários feitos no se obter todos os estados possíveis. 'Escreve', renomeie-o Para Code Editor com a Íinalidade de tor- 'spBtnEscrever'; o com caPtion 'Lê' nar mais legívelo ódigo. rilês para'spBtnler', o com caption'Pisca Testando F LEDs' para'spBtnLEDs'. BÍA Por Íim, para o botão com rótulo O Circuito Monte o circuito mosÌrado, confira, rdo 'OK'- trata-se de um BitBtn: este é um e conecte na porta paralela. Execute es); outro tipo de botão, bastante seme- O circuito aprasentado na Íigura 6 o comando'RUN'ou a tecla de função ptÈ lhante ao SpeedButton, com proprie- destina-se à üsualização da manipu- F9. Veja a Íigura 7, a seguir. iln- dades mais específicas. Adicione um lação da porta paralela: um conjunto O seu programa estará sendo exe- rEí) ao form, acesse sua propriedade Kind, de I LEDs conectados aos pinos refe- cutado. Faça escrita e leitura nos ports sá alterando para bkOK - ele define au- rentes aos I bits do registro de dados, de Dados e de Status. Note que como EçO tomaticamente a imagem bitmaP Pa- Íornecendo a confirmação visual da o bitT do registro de Status é lido in- DeÍ- drão para botão'OK'na ProPriedade escrita neste regis[o da porta. vertido, é conveniente Íazer o seu * Glyph do botão, e a exibe. Altere à Apresenta ainda 5 intenuptores, a mascaramento de Íorma a tornar este s(> vontade a propriedade Kind para no- detalhe irrelevante, e Íacilitar o trata- tar as configurações padrão. Se dese- 8x1 KQ mento do byte lido. lsto é Íeito no rG jar alterar a imagem, faça através da ëT manipulador do evento spBtnlerClick. Íx> propriedade Glyph. Esta propriedade €t t permite exibir mais de uma imagem, 2-l Observe que: :aF dependendo do estado do botão: ha- Se você digitar 80 no Edit edOont, Fr pob bilitado ou desabilitado - altere a pro- priedade NumGlyph de2para 1 e veja lct o Delphitrata o 80 como decimal, logo se mandar escrever 80 (decimal) na ôtI Ero o que acontece! Altere seu nome para dl GND saída do porta, Data Register, acen- rda 'bitBtnFechar'. o -I* derá os bits D6 e D4: 80d=64d+16d; Ílle Tendo criado a interface, o próxi- o entretanto, se digitar $80 no Edit () de- mo passo é codiÍicar convenientemen- o edCont, ele interpreta como hexade- L ilÉs te os eventos necessários. Para codi- o cimal por causa do'$', e agora se o ficar os eventos, selecione o compo- c) $80 for enviado para o port de Dados, üois nente e, através do Object lnspector, acenderá o bit D7 apenas: ubs na aba Events, dê um duPlo clique $80=80h=10000000b. Por fim, após opÍi- sobre o evento desejado. Ao Íazer isto compreender totalmente o código, Íaça r fig. o Delphi criarâ o esqueleto do mani- modificações e experimentos. Um des- He pulador do evento, então é só codifi- tes consiste em gerar novos padrões lqrc car o evento. Veja o código de cada de saída para o evento do timer, inclu- eíio- manipulador na listagem a seguir. sive com a alteração da propriedade Fig.6-Ocircuito interval do mesmo. Procure no código os eventos utili-