StringGrid nao mostra em tempo real...

Delphi

06/11/2018

Bom dia a todos.
Pela primeira vez precisei de um StringGrid [nomeei de SS] (uma tabela temporaria não ligado a nenhum banco) para ir gravando o que for digitado em um
edit1.text mas estou com problemas...

O stringgrid nao mostra o que acabei de digitar ao clicar no botao
Ex: digito AAAAAAAAAAAAAA e ao clicar no botao nao aparece nada no stringGrid
Agora ao digitar o PROXIMO BBBBBBBBBBBBBBBB quando clico no botao aí aparece o AAAAAAAAAAAAAAAAAAAAA anterior e o recente nao
aparece e assim sucessivamente...

** Utilizei uma variavel para ir controlando a linha atual... inicia na 1porque na 0 tenho o cabecalho...

procedure TFrmRecepcao.btnAnotarClick(Sender: TObject);
begin
Ss.Refresh; ----> isso nao funciona!!!
if edtDigitaLivre.Text = emptystr then
abort;
showmessage('' Vai gravar linha ''+intToStr(itemAtual)); // coloquei só para ver qual o numero da linha atual e está indo certinho...
Ss.Cells[0, ItemAtual] := intToStr(ItemAtual);
Ss.Cells[1, ItemAtual] := edtDigitaLivre.text;
ItemAtual:=ItemAtual+1;
edtDigitaLivre.text:='''';
end;


** Alguem por favor saberia dizer porque o recente item digitado no edit1.text nao é mostrado imediatamente ao clicar no botao?

Estou com esse problema desde semana passada.

Obrigado a quem se dispuser a ajudar.
Kalu

Kalu

Curtidas 0

Melhor post

Kalu

Kalu

06/11/2018

Obrigado André pela atenção.
Nao postei tudo, sim há a inicialização desta variável corretamente.
O problema na verdade era que eu imaginava que a stringgrid ia "aumentando" as linhas tao somente eu atribuisse um valor a StringGrid1.cells[x,y] sem mexer na propriedade rowcount... o que não ocorre (na verdade só posso atribuir se a linha (y) for menor ou igual ao valor dado em rowcount . ou seja eu nao me preocupei em atribuir a quantidade de linhas em rowcount seja em modo de projeto seja em run-time...

entao gostaria de dar esse caso como RESOLVIDO.
GOSTEI 1

Mais Respostas

André Henrique

André Henrique

06/11/2018

Boa tarde Kalu_df,<br />
<br />
li no seu post que a variável ItemAtual começa com um mas não vi no código ela recebendo essa atribuição (ItemAtual := 01). Será que não é este o seu problema? Pergunto isso porque o Delphi tem um sério problema onde ele deve iniciar as variáveis entende? É melhor o programador mesmo iniciar. Colocaria no seu OnShow a atribuição de 01 na variável ItemAtual.<br />
<br />
Atenciosamente,<br />
André Henrique
GOSTEI 0
POSTAR