Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Iamgem no StringGrid


Valverde

Pergunta

galera, esta é a primeira vez que poso aqui, e desde de logo vou agradecendo vocês, já me ajudaram bastante, tirando as dúvidas de outros...

Bem vamos lá o que ocorre é o seguinte: eu tenho um stringGrid e exibo as imagens nele que estão em uma matriz de Tpictures... ocorre que toda vez que eu ponho uma imagem a mais ela apaga a da coluna anterior, alguém sabe porque isso ocorre? e como eu posso resolver??

Segue o código para vocês darem uma olhada...

procedure Tform1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if aCol=Length(imagem)-1 and arow=0 then
  begin
    with StringGrid1.Canvas do
    begin
         StretchDraw(Rect,imagem[Acol].Graphic);
    end;
  end;
end;

PS.: valeu mesmo a qualquer um que puder ajudar...

Editado por Micheus
Incluída tag's CODE para melhorar a visualização, bem como identado o código. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
eu tenho um stringGrid e exibo as imagens nele que estão em uma matriz de Tpictures... ocorre que toda vez que eu ponho uma imagem a mais ela apaga a da coluna anterior,

Tente assim:

procedure Tform1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if aCol=Length(imagem) and arow=0 then
  begin
    with StringGrid1.Canvas do
    begin
         StretchDraw(Rect,imagem[Acol].Graphic);
    end;
  end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

o gente eu acabei resolvendo o problema sozinho mesmo, o erro era meio estupido mas como alguém mais pode ter dúvidas nisso lá vai a solulção:

Bem, o que tava acontecendo é que eu manda pintar só a cell que correspondia à ultima imagem adicionada e como o evento ondraw ocorre repetidamente ele acabava por pitar as outras cells de branco, logo a função corrigida ficou assim:

procedure Tform1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if aCol<=Length(imagem) and arow=0 then
  begin
    with StringGrid1.Canvas do
    begin
         StretchDraw(Rect,imagem[Acol].Graphic);
    end;
  end;
end;

Editado por Micheus
Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...