deio 0 Denunciar post Postado Junho 22, 2007 olá a todos, estava testando um comando usando a condição if, e agora q o comando está pronto quero trocá-lo pelo for, mas naum sei declarar o loop for T.Tgostaria me explicassem como declara e mostra como fica a minha condição if qndo vira for procedure TForm1.Button1Click(Sender: TObject);begininc(n);if n < datamodule3.dbf1.FieldCount then // datamodule3.dbf1.FieldCount nesse caso ta valendo como 12, mas ele varia dependendo do arquivo (...) Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Junho 22, 2007 exemplo: for i:= 1 to 10 do begin write ('teste '); writeln (i); end; Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Junho 25, 2007 naum ta dando aqui....eu coloquei 'for n to datamodule3.dbf1.FieldCount do' e naum foi Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Junho 25, 2007 leita antentamente o tópico do amigo bdexterholland e verás q esqueceu algo .... tm q ser assim: for n:= 1 to datamodule3.dbf1.FieldCount dobegin{...}end; Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Junho 25, 2007 Dê uma lida nesse site... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://www.delphibasics.co.uk/RTL.asp?Name=For Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Junho 25, 2007 entaum, eu coloquei : for n:=1 to datamodule3.dbf1.FieldCount doele naum vai e aparece uma mensagem embaixo :[Error] Unit1.pas(45): For loop control variable must be simple local variable Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Junho 25, 2007 Deio, poste por favor aqui desde o inicio...Lá onde está:Por exemplo: Procedure Calcula..............................End;Pra gente poder ver o comando inteiro...OK? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Junho 26, 2007 Pelo que vi você declaro sua variavel N como uma variavel global ... em um laço for, deve - se usar variaveis locais ... var n: shortint;begin for n:= 1 to .... Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Julho 6, 2007 desculpa por está ressuscitando este tópico, fiquei umas 2 semanas sem computador ( moro em floripa, cai a luz direto aqui e acabo ferrando com a fonte do micro), é Rodrigo, tens razão, a minha variável n era uma variável global, por isso naum funciona XDsó estou com um probleminha aqui : if n = datamodule3.dbf1.FieldCount then begin with Tdbnavigator.Create(self) do begin parent := form2; datasource := datamodule3.datasource1; top := 12 + n2; name := 'dbnavigator2'; left := 125; end; antes quando eu usava a condição if ele funcionava agora com o for naum ta indo... Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Julho 6, 2007 Opa! beleza? kra axo que você poder remover esta linha: if n = datamodule3.dbf1.FieldCount then não estou vendo utilidade pra essa condição ... Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Julho 6, 2007 eu só preciso de 1 desses, se eu tirar ele vai criar uns 12 nesse caso... Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Julho 6, 2007 kra você ta usando esse if dentro do laço for???qual é o erro?poste o trecho inteiro desse laço for + if .... Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Julho 7, 2007 o código é esse: procedure TForm1.Button1Click(Sender: TObject);varn : integer;begininc(n);for n:=1 to datamodule3.dbf1.FieldCount do begin inc(n2, 24);// n2 usado para distanciar um componente do outro, para naum ficar um em cima do outro with TDBEdit.Create(self) do begin parent := form2; name := 'dbedit'+ inttostr(n); datasource := datamodule3.datasource1; datafield := datamodule3.dbf1.FieldDefs.Items[n-1].Name; left := 125; top := 2 + n2; width := 297; end; with Tlabel.create (self) do begin parent := form2; caption:= datamodule3.dbf1.FieldDefs[n-1].Name; name := 'label'+inttostr(n+3); top := 4 + n2; left := 40; end; with form2 do begin width := 500; height:= height +24;// aumentar o form de acordo com a qntd de componentes form2.Show; end; end; if n = datamodule3.dbf1.FieldCount then // condição q deveria funcionar como "ao criar todos os pares, crie um deste" begin with Tdbnavigator.Create(self) do begin parent := form2; datasource := datamodule3.datasource1; top := 12 + n2; name := 'dbnavigator2'; left := 125; end;end;end; a idéia é a seguinte, ao clicar no botao ele criará dois componentes, um label e um dbedit, nesse caso ai, o "datamodule3.dbf1.FieldCount" vale 12, então o programa irá criar 12 pares de label e dbedit, e após criar esses 12 pares de componentes quero q ele crie 1 dbnavigator, por isso eu coloquei essa condição "if n = datamodule3.dbf1.FieldCount then", só q agora com a condição for, usada la no começo do código essa função não está funcionando.... Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Julho 7, 2007 Bom dia deio ! Mude seu code, deixe ele assim ó: var n,n2 : integer;begin for n:=1 to datamodule3.dbf1.FieldCount do begin inc(n2, 24); with TDBEdit.Create(self) do begin {..Rotina q cria seus data controls } end; with Tlabel.create (self) do begin {..Rotina p/criar label} end; with form2 do begin {... Atributos p/o form2} end; end; if (datamodule3.dbf1.FieldCount > 0) then begin with Tdbnavigator.Create(self) do begin {..Rotina q cria o DBNavigator ...} end; end; end; beleza?! Daew poste o resultado... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Julho 10, 2007 aew deu certo, só tive q arrumar a posição dele q ficou um pouco em cima de outro componente, XDvlw ae Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Julho 10, 2007 opa! tamo aew ... flw :rolleyes: Compartilhar este post Link para o post Compartilhar em outros sites