Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 581502
            [titulo] => código só funciona se colocar um showmessage
            [dataCadastro] => DateTime Object
                (
                    [date] => 2017-05-17 18:13:24
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 316364
            [status] => A
            [isExample] => -1
            [NomeUsuario] => Jones Granatyr
            [Login] => jonesgranatyr@gmail.com
            [Apelido] => 
            [Foto] => 316364_20160509203219.png
            [Conteudo] => 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)
        )

)

código só funciona se colocar um showmessage

David
   - 17 mai 2017

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?
#Código

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;

Post mais votado

Jones Granatyr
   - 17 mai 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)

David
   - 18 mai 2017

Infelismente não deu... uso o delphi seatlle! Obrigado

Mateus Ribeiro
   - 18 mai 2017

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!
#Código

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

David
   - 19 mai 2017

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!