Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
clovismagoga Novato

Registrado: Quarta-Feira, 19 de Janeiro de 2011 Mensagens: 6 Localização: Dracena
|
Enviada: Qua Jan 19, 2011 11:19 am Assunto: Acionamento Multiplo em um unico Botão ! |
|
|
Vlleuuu raffmatos, porem ja tentei isso tambem, e o mais proximo que consegui do que queria foi o exemplo enviado anteriormente. Com a linha ELSE a rotina do bot"ao ficou assim :
procedure TForm1.VrAniButton8Click(Sender: TObject);
begin
if label17.caption = 'OFF' then label17.caption := 'ON';
begin
comport1.WriteStr('*A71'+#13); // ativa bit 8 da interface
end;
Else
if label17.caption = 'ON' then label17.caption := 'OFF';
begin
comport1.WriteStr('*A70'+#13); // desativa bit 8 da interface
end;
end;
Porem ao ser executado da um erro mostrado logo abaixo !
[Error] main.pas(512): ';' not allowed before 'ELSE'
[Fatal Error] Datalog_temperatura.dpr(5): Could not compile used unit 'main.pas'
Eu estou me complicando na logica de uso do IF...else...begin... ; ( etc ) !
Mas sou grato pela tentiva de ajuda !
Clovis Magoga |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Jan 19, 2011 11:31 am Assunto: |
|
|
é q tinha um ponto e virgula ali, ve assim
if label17.caption = 'OFF' then label17.caption := 'ON';
begin
comport1.WriteStr('*A71'+#13); // ativa bit 8 da interface
end
Else
if label17.caption = 'ON' then label17.caption := 'OFF';
begin
comport1.WriteStr('*A70'+#13); // desativa bit 8 da interface
end; |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Jan 19, 2011 11:32 am Assunto: |
|
|
responde no mesmo topico fica mais facil |
|
Voltar ao Topo |
|
 |
clovismagoga Novato

Registrado: Quarta-Feira, 19 de Janeiro de 2011 Mensagens: 6 Localização: Dracena
|
Enviada: Qua Jan 19, 2011 11:41 am Assunto: Acionamento Multiplo em um unico Botão ! |
|
|
Olá rafmattos ! Mil (1000) desculpas pela postagem errada ! Agradeço sua atenção e paciencia. Porem o erro agora mudou da uma olhada !
[Error] main.pas(536): 'END' expected but 'ELSE' found
[Error] main.pas(537): ';' expected but 'IF' found
[Error] main.pas(539): Undeclared identifier: 'comport1'
[Error] main.pas(540): '.' expected but ';' found
[Fatal Error] _Datalog_temperatura.dpr(5): Could not compile used unit 'main.pas'
O interessante é que isso ocorre ao ascrecentar a linha de comando da TCOMPORT !
Agora eu não sei se é erro de logica, ou se estou tratando o comando TCOMPORT de forma errada, porem em uma caixa BOX ele funciona assim:
begin
if (out8.Checked) then
Comport1.WriteStr('*A71'+#13)
else
Comport1.WriteStr('*A70'+#13);
end;
Porem ao colocar ele em um botão e tentar fazer o mesmo botão ligar e desligar os erros aparece !
Obrigado ! |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Jan 19, 2011 12:59 pm Assunto: |
|
|
vc ta com o componente TcomPort instalado?
Código: |
[Error] main.pas(539): Undeclared identifier: 'comport1'
|
se não tiver eu não uso mas o site pra baixar se não me engano é esse http://sourceforge.net/projects/comport/
------------------------------------------------------------------
agora posta de novo o seu código q ta dando erro.... |
|
Voltar ao Topo |
|
 |
clovismagoga Novato

Registrado: Quarta-Feira, 19 de Janeiro de 2011 Mensagens: 6 Localização: Dracena
|
Enviada: Qua Jan 19, 2011 1:17 pm Assunto: Acionamento Multiplo em um unico Botão ! |
|
|
Olá !!! Grato por sua ajuda ! Com relação ao componente TCOMPORT ele esta instaldo e funcionando perfeitamente. O projeto e prototipo esta funcionando muito bem ! È como falei anteriormente.
Usando a COMBOX funciona perfeitamente bem, o que indica que o componente TCOMPORT esta funcionando. O problema ocorre quando tento enviar o comando pelo botão com as caracteristicas que informei ! Ou seja APERTA liga,,,,aperta o mesmo botão DESLIGA e assim por diante !
A rotina inicial que muda de 0 para 100 funciona perfeitamente bem ! A rotina que coloca o comando TCOMPORT da os erros relatados ou liga e desliga rapidamente, não fica ligado ao primeiro CLICK e nem desliga ao segundo click !
Com certeza eu estou cometendo um erro de logica enorme !
Continuo tentando e agradeço a voce !
Abraços
Clovis Magoga |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Jan 19, 2011 1:23 pm Assunto: |
|
|
vc colocou assim
Código: |
procedure TForm1.VrAniButton8Click(Sender: TObject);
begin
if label17.caption = 'OFF' then
begin
label17.caption := 'ON';
comport1.WriteStr('*A71'+#13); // ativa bit 8 da interface
end
Else if label17.caption = 'ON' then begin
label17.caption := 'OFF';
comport1.WriteStr('*A70'+#13); // desativa bit 8 da interface
end;
end;
|
|
|
Voltar ao Topo |
|
 |
clovismagoga Novato

Registrado: Quarta-Feira, 19 de Janeiro de 2011 Mensagens: 6 Localização: Dracena
|
Enviada: Qua Jan 19, 2011 1:36 pm Assunto: Acionamento Multiplo em um unico Botão ! |
|
|
Grato pela ajuda !
Vou mostrar a voce como funciona na CHECKBOX
Código: | procedure TForm1.out8Click(Sender: TObject);
begin
if (out8.Checked) then
Comport1.WriteStr('*A71'+#13)
else
Comport1.WriteStr('*A70'+#13);
end; |
Da forma indicada acima funciona perfeitamente Clicando na CHECKBOX ele ativa e desativa certinho e envia o dado pela TCOMPORT.
Para testar o botão eu fiz uma rotina como a logo abaixo somente para verificar o funcionamento do botão APERTA vai a 100 aperta novamente vai a 0 e assim por diante.
Ficou assim !
Código: |
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
If label1.caption = '0' then label1.caption := '100'
else If label1.caption = '100' then label1.caption := '0';;
end;
end. |
Funciona perfeitamente porem não coloque o acionamento pela COMPORT pois queria somente testar o botão !
Agora no exemplo abaixo eu coloquei o comando TCOMPORT no botão para ligar e delsigar, porem ele não retem o estado 1 e depois somente muda apos precionar novamente.
Funciona o componente TCOMPORT porem ele evia o dado liga e desliga, o que quero é que ele LIGUE apertando novamente desligue e assim por dinante !
Código: |
procedure TForm1.VrAniButton8Click(Sender: TObject);
begin
if label17.caption = 'OFF' then label17.caption := 'ON';
begin
comport1.WriteStr('*A71'+#13);
end;
if label17.caption = 'ON' then label17.caption := 'OFF';
begin
comport1.WriteStr('*A70'+#13);
end;
end; |
Agradeço !
[/code] |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Jan 19, 2011 1:43 pm Assunto: |
|
|
desse jeito aqui ta errado
procedure TForm1.VrAniButton8Click(Sender: TObject);
begin
if label17.caption = 'OFF' then label17.caption := 'ON';
begin
comport1.WriteStr('*A71'+#13);
end;
if label17.caption = 'ON' then label17.caption := 'OFF';
begin
comport1.WriteStr('*A70'+#13);
end;
end;
ele vai ativar e desativar mesmo
esse jeito é o certo com o Else
Código: |
procedure TForm1.VrAniButton8Click(Sender: TObject);
begin
if label17.caption = 'OFF' then
begin
label17.caption := 'ON';
comport1.WriteStr('*A71'+#13); // ativa bit 8 da interface
end
Else if label17.caption = 'ON' then begin
label17.caption := 'OFF';
comport1.WriteStr('*A70'+#13); // desativa bit 8 da interface
end;
end;
|
|
|
Voltar ao Topo |
|
 |
clovismagoga Novato

Registrado: Quarta-Feira, 19 de Janeiro de 2011 Mensagens: 6 Localização: Dracena
|
Enviada: Qua Jan 19, 2011 3:53 pm Assunto: Acionamento Multiplo em um unico Botão ! |
|
|
PERFEITO ! Funcionou perfeitamente !!! Com a sua ajuda eu percebi a grande "KAKINHA" que estava fazendo. No final do main.pas tinha um END. o qual não tinha ficando atento a grande besteira de iniciante !
Estou querendo postar a imagem para ter uma ideia do que estou fazendo, utilizando um microcontrolador da MICROCHIP, no caso é um medidor de temperatura com 8 canais diferentes. Onde pode-se monitorar a temperatura de residencias ou ambiente industrial ! E acionar dispositivos de controle de processos ! Vou incrementar com a possibilidade de enviar os dados a uma planilha do EXELL e mais algumas caracteristicas interessante !
Valeu mesmo pera AJUDA ! Como falei estou devendo UMA para voce ! |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Qua Jan 19, 2011 3:57 pm Assunto: |
|
|
qualquer coisa estamos ai... |
|
Voltar ao Topo |
|
 |
|