código só funciona se colocar um showmessage
17/05/2017
0
Prezados,
estou com a seguinte situação. Fiz um cod para que quando eu coloque um 's' no edit1 o edit15 se alto preencha com 'F'. A questão é a seguinte. o Cod só funciona se eu fizer um showmessage da variavel entes do comendo. como resolver sem precisar de por o showmessage?
estou com a seguinte situação. Fiz um cod para que quando eu coloque um 's' no edit1 o edit15 se alto preencha com 'F'. A questão é a seguinte. o Cod só funciona se eu fizer um showmessage da variavel entes do comendo. como resolver sem precisar de por o showmessage?
procedure TfCadEscala.Edit1Change(Sender: TObject); var i,y,k, j:integer; const vartag: array[1..28] of integer = (15,16,17,18,19,20,21,22,23,24,25,26,27,28,1,2,3,4,5,6,7,8,9,10,11,12,13,14); begin if checkFolgador.IsChecked then begin for I := ComponentCount -1 downto 0 do if (Components[i] is TEdit) then begin for j := 1 to 14 do if (Components[i] as TEdit).tag=j then begin if (Components[i] as TEdit).Text='S' then begin k:=(Components[i] as TEdit).Tag; for y := ComponentCount -1 downto 0 do if (Components[y] is TEdit) then if (Components[y] as TEdit).tag=vartag[k] then begin ShowMessage(inttostr(k)); (Components[y] as TEdit).text:='F'; end; end; end; end; end; end;
David
Curtir tópico
+ 0
Responder
Post mais votado
17/05/2017
Opa! Isso já aconteceu comigo há uns anos atrás, e na época eu tinha colocado um break point e "misteriosamente" o código voltou a funcionar. Parecia que era um bug de atualização (era o Delphi 2010)
Jones Granatyr
Responder
Mais Posts
18/05/2017
Mateus Ribeiro
Boa tarde!
Não consegui simular seu código, a geração do processo é bloqueado quando tento executar, acho que o windows pensa q to fazendo virus rs.
Se entendi seu objetivo, segue uma alternativa!
Caso nao seja isso, a gente pensa em algo. Boa sorte!
Obs: Delphi 7
Não consegui simular seu código, a geração do processo é bloqueado quando tento executar, acho que o windows pensa q to fazendo virus rs.
Se entendi seu objetivo, segue uma alternativa!
Caso nao seja isso, a gente pensa em algo. Boa sorte!
function IsNumberInArray(const ANumber: integer; const AArray: Array Of Integer): Boolean; var i: integer; begin result := false; for i := Low(AArray) to High(AArray) do if ANumber = AArray[i] then begin Result:= true; Exit; end; end; procedure TForm1.Edit1Change(Sender: TObject); const vartag: array[1..28] of integer = (15,16,17,18,19,20,21,22,23,24,25,26,27,28,1,2,3,4,5,6,7,8,9,10,11,12,13,14); var i, c: Integer; begin if UpperCase(TEdit(Sender).Text)<> 'S' then Exit; for i:= 0 to Form1.ComponentCount - 1 do begin for c:= 0 to Form1.ComponentCount - 1 do if IsNumberInArray(TWinControl(Components[c]).Tag, VarTag) then begin TEdit(Components[c]).Text:= 'F'; end; end; end;
Obs: Delphi 7
Responder
19/05/2017
David
Pessoal, fiz um teste aqui agora e parece que deu certo!
mudei o campo "Direction" do "linkControlToFieldXX" de "linkBiDirectional" para "linkControlToData" e parou de dar o problema!
Parece que quando o campo está vinculado nas duas direções o mesmo não funciona direito no onchange!
Não sei se é o correto, contudo, parece que deu certo!
mudei o campo "Direction" do "linkControlToFieldXX" de "linkBiDirectional" para "linkControlToData" e parou de dar o problema!
Parece que quando o campo está vinculado nas duas direções o mesmo não funciona direito no onchange!
Não sei se é o correto, contudo, parece que deu certo!
Responder
Clique aqui para fazer login e interagir na Comunidade :)