Fórum O que há de errado neste código? #283580
01/06/2005
0
por incrivel que pareça a váriavel i não recebe valor, quando marco qualquer linha onde o i receberá algum valor para que o programa pare e eu veja o que esta acontecendo acontece algo incrivel, o compilador ignora a linha.
o que faço???
procedure TqrpPedido.Organiza;
var
campos : array[1..num] of TQRDBText;
i, fim : integer;
begin
i:=0;
{Lista recebe os campos do tipo TQRDBText}
for i := 0 to ComponentCount -1 do
if Components<i>.ClassType = TQRDBText then
if Components<i>.Tag > 0 then
campos[Components<i>.tag] :=(Components<i> as TQRDBText);
{Organiza relatório}
fim := 0;
for i := 1 to num do //----> neste for o i é iniciado com 31,
begin
with campos<i> do
if Visible then
begin
Left := fim;
fim := Width + 2;
end;
end;
end;
obs : Já tentei alterar o nome da variável, colocar duas variaveis diferentes para os dos for e não deu certo. Alguém poderia me dar uma luz??
onde será que estou dando cabeçada?? :?:
Douglasf
Curtir tópico
+ 0Posts
01/06/2005
Deltakronos
var
i : integer;
begin
for i := 1 to 31 do//incrementação
comando...
end;
end.
para decrementar
for i := 31 downto 1 do
e outra coisa quando vc usa o for nao pode dar um valor 0 para a variavel.
Gostei + 0
01/06/2005
Massuda
Como a variável I é usada apenas para controlar loops, o compilador pode eliminar essa variável e utilizar um registrador da CPU para controlar o loop. Experimente desativar a otimização em [b:32fc1b537e]Project|Options|Compiler[/b:32fc1b537e], grupo [b:32fc1b537e]Code generation[/b:32fc1b537e], opção [b:32fc1b537e]Optimization[/b:32fc1b537e] e execute novamente.
Gostei + 0
01/06/2005
Afb
Agora vc pode tenta um array dinamico o que seria isso
var
campos : array of TQRDBText;
begin
num := 31;
SetLength(Campos,num);
Agora caso vc deseje continuar com o array statico o correto e:
var
campos : array [1..31] of TQRDBText;
Gostei + 0
01/06/2005
Keidysakamoto
if Components<i>.Tag > 0 then campos[Components<i>.tag] :=(Components<i> as TQRDBText);
não entendi o tal ´>0´
[]
Keidy
Gostei + 0
01/06/2005
Massuda
if Components[i].Tag > 0 then campos[Components[i].tag] :=(Components[i] as TQRDBText);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)