Fórum PQ essse erro no else ?? #321340

14/05/2006

0

E o seguinte eu nao tou conseguindo usar else para saber se esta marcado o Chekbox sim ou não nessa rotina eu preciso fazer tipo se estiver marcado salva a senha no registro do windows se nao tiver marcado nao salva a senha vem um alert de showmessage so que ta dando erro o codigo ta sem o else funciona so que eu preciso colocar else para ver se e falso eu coloco sertinho so que da erro eu queria saber pq esta dando erro essa e minha duvida abaixo segue o codigo como tou usando


Declara no uses : Registry



procedure Tlogar.salvarClick(Sender: TObject);
var
Registro: Tregistry;
begin


If salvar.Checked then

Registro:=Tregistry.create;
Registro.rootkey:=HKEY_CURRENT_USER;
Registro.Openkey(´Software\chat\´+nickname.Text, true);
Registro.writestring(´password´, EnDecryptString(senha.Text,1900));
Registro.closekey;

else

ShowMessage(´A senha não foi salva´);

end;


Bom essa e minha duvida espero que consigão descubrir !! valews !!!


Webrodex

Webrodex

Responder

Posts

14/05/2006

Joaoshi

Colega,

if salvar.checked then
BEGIN // colocar begin para varias intruções do IF
suas instrucoes;
END // end do BEGIN sem ´;´
else
ShowMessage(´A Senha não foi salva´);

Espero ter ajudado.


Responder

Gostei + 0

15/05/2006

Paullsoftware

complementando o que o nosso amigo Jocelio fez, quando for criar ninhos de if´s ou usar apenas o if com uma condição a regra para ele funciona da seguinte maneira...

sempre que você for usar estruturas de repetição ou laços de ifs deve-se agrapál-os com begin/end quando houver mais de uma linha e não se usar o ponto e vírgula ( ; ) antes do else quando se usar apenas uma linha. Exemplos:

if Condicao then 
 uma linha de codigo 
else 
 begin 
 primeira linha de codigo; 
 segunda linha de codigo; 
 end;/fim 

ou então
if condigo then 
 begin 
 primeira linha de codigo; 
 segunda linha de codigo; 
 e assim por diante; 
 end//aqui não se usa o ponto e virgula ( ; ) 
else//também não se usa begin end quando houver apenas uma linha 
  linha de codigo;/fim 
o mesmo para os loop´s
for i := 0 to count-1 do 
 uma linha de codigo 

for i := 0 to count-1 do 
 begin 
 primeira  linha de codigo; 
 segunda  linha de codigo; 
 end;/fim 

espero ter ajudado :wink:


Responder

Gostei + 0

15/05/2006

M@gnun

e nessa?

for i := 0 to 9 do
for j:= 0 to 4 do
begin

Comandos;

end;

Teoricamente, eu acho q naum precisa do begin no promeiro for, mas uma vez deu erro comigo, aí coloquei um begin/end nele e funcionou ...


Responder

Gostei + 0

15/05/2006

Adriano Santos

[quote:8f4f718f88=´m@gnun´]e nessa?

for i := 0 to 9 do
for j:= 0 to 4 do
begin

Comandos;

end;

Teoricamente, eu acho q naum precisa do begin no promeiro for, mas uma vez deu erro comigo, aí coloquei um begin/end nele e funcionou ...[/quote:8f4f718f88]


Realmente, não precisaria um begin..end, a menos que tivesse algo como:

for I := 0 to 10 do 
begin
  for J := 0 to 4 do
    //Comandos
  //Outros comandos
end;


Onde [b:8f4f718f88]outros comandos[/b:8f4f718f88] somente serão executados depois que o for [b:8f4f718f88]J[/b:8f4f718f88] terminar, voltando a ser executado até que o ´[b:8f4f718f88]I[/b:8f4f718f88]´ seja totalmente finalizado.
Porém, se tiver uma estrutura onde devem ser executados diversos comandos depois que o [b:8f4f718f88]for J[/b:8f4f718f88] terminar, ai sim terá adicionar o begin veja:


for I := 0 to 10 do 
begin
  for J := 0 to 4 do
  begin
    Comando1;
    Comando2;
    Comando3;
  end
  //Outros comandos
end;



Responder

Gostei + 0

15/05/2006

Paullsoftware

mais essa é lógica aplicada em todas as instruções que se precisa ´laçar´ uma parte de código...

while not table1.eof do
 table1.next;


ou então

while not table1.eof do
 begin
   table1.next;
   gauge1.progress := gauge1.progress+1;
 end;


foi exatamente o que falei no tópico anterior... :wink:


Responder

Gostei + 0

15/05/2006

Adriano Santos

mais essa é lógica aplicada em todas as instruções que se precisa ´laçar´ uma parte de código...
while not table1.eof do
 table1.next;
ou então
while not table1.eof do
 begin
   table1.next;
   gauge1.progress := gauge1.progress+1;
 end;
foi exatamente o que falei no tópico anterior... :wink:


É isso ai Paull, só quis dar uma reforçada. :wink: :wink: :wink:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar