Gostaria de saber pq minha variável não carrega

17/06/2008

1

Olhem esta procedure. Ela ainda não está pronta, por isso ainda
falta algo para ela funcionar. A pergunta que eu quero fazer é:
Se eu declarar lin local, lin não é lido, mas se eu declarar na
private ou global ou public, lin é lido. Alguém pode me dar essa
´aula´? Essa eu dormir no dia. E as outra variáveis?

procedure TForm1.CarregaCupom; var i:Integer; positem:Boolean; descricao, desc_acre, unitario, seqitem, codigo, subtot, tot, tam, qtd, tx:String; begin lin := 0; positem := False; if inicupom then begin Readln(Arq,s); k := AnsiPos(´ITEM CÓDIGO ST DESCRIÇÃO VL ITEM(R$)´,s); if k <> 0 then begin loop := True; Readln(Arq,s); while loop do begin if not positem then for i := 1 to length(s) do //Para pegar a sequencia do item begin inc(lin); seqitem := Trim(seqitem + s[i]); if (s[i] = ´ ´) or (s[i] = ´´) then begin positem := True; Break; end; end;//Fim do for end;//Fim do loop end; //Fim do k end; end;



Responder

Posts

17/06/2008

Antseralves

A variável Lin quando declarada dentro de uma procedure, só terá validade dentro da mesma. Mesmo que TAMBÈM seja declarada fora da mesma,
uma não terá nada a ver com a outra. Porem ainda não entendí o que
você quer dizer com ´Lin não é lido´.


Responder

17/06/2008

Rodc

Você não está usando o valor atribuido à Lin em nenhum lugar, por isto quando ela é declarada localmente o compilador está removendo o código para otimizar o processamento.
Para funcionar com a declaração localmente, passe a usar o valor atribuido à lin (ex.: ShowMessage(IntToStr(lin));). Ou desabilite nas propriedades do projeto a opção de Otimizar Geração de Código.


Responder

17/06/2008

Paulo

Valeu a todos aí. Blz!!!!


Responder