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

[resolvido] Dúvida Sobre Objects Do Stringgrid


McBlade

Pergunta

Olá pessoal. Estava eu testando a propriedade Objects do StringGrid do Delphi 2007 (Trial) e atribui da seguinte forma:

StringGrid1.Objects[1,1] := BitBtn1;

Objects espera um TObject e BitBtn1 é um TObject... Contudo o botão não aparece no Grid. Embora se eu parar o mouse debugando no Objects[1,1] o Delphi me mostra exatamente os dados do BitBtn1. Maaaaaaaaasssssss (Sempre tem um "mas"), quando eu altero o Caption do BitBtn1 (Visual) o Objects[1,1] também muda...

então o Objects[1,1] virou um ponteiro do BitBtn1 só pela atribuição que eu fiz?

E se eu quisesse fazer aparecer o botão no grid aproveitando o Objects... Sem ter que fazer Rect := StringGrid1.CellRect[1,1]?

Obs.: Já tentei passar Parent e não funcionou

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

McBlade, acho que não vou ajudar muito, mas vou fazer alguns comentários mesmo assim.

Olá pessoal. Estava eu testando a propriedade Objects do StringGrid do Delphi 2007 (Trial) e atribui da seguinte forma:

StringGrid1.Objects[1,1] := BitBtn1;

Objects espera um TObject e BitBtn1 é um TObject... Contudo o botão não aparece no Grid. Embora se eu parar o mouse debugando no Objects[1,1] o Delphi me mostra exatamente os dados do BitBtn1. Maaaaaaaaasssssss (Sempre tem um "mas"), quando eu altero o Caption do BitBtn1 (Visual) o Objects[1,1] também muda...

então o Objects[1,1] virou um ponteiro do BitBtn1 só pela atribuição que eu fiz?

Exato. Objects guarda um TObjecs que é a classe base de todas (ou de pelo menos 99,9%) as outras classes existentes no Delphi. Com sua atribuição, você guardou uma cópia do ponteiro para a classe TButton (endereço da instância alocada para seu botão).

E se eu quisesse fazer aparecer o botão no grid aproveitando o Objects... Sem ter que fazer Rect := StringGrid1.CellRect[1,1]?

Obs.: Já tentei passar Parent e não funcionou

O que exatamente você pretende fazer?

O uso do parent funciona no sentido em que você vai ter o botão colocado dentro da área do componente StringGrid, mas isso parece meio estranho e pode ter efeitos colaterais.

O que já vi por aí (em artigos na net) é que o componente é sim desenhado dentro da célula do grid. Como é feito para mostrar bitmap's, checkbox, ....

Link para o comentário
Compartilhar em outros sites

  • 0

Então Micheus, eu sei desenhar um componente "dentro" de uma StringGrid. Mas é que eu pensei que essa propriedade Objects facilitadia o desenho de um BitBtn, por exemplo, dentro da StringGrid sem ter que fazer...

TheRect := StringGrid1.CellRect(1,1);
BitBtn1.Left := StringGrid1.Left + TheRect.Left;
BitBtn1.Top := StringGrid1.Top + TheRect.Top;
BitBtn1.Height := TheRect.Bottom - TheRect.Top;
BitBtn1.Width  := TheRect.Right - TheRect.Left;

Há de convir que isso é chato... se eu passasse StringGrid1.Objects[1,1] := BitBtn1; e a célula assumisse / desenhasse o botão nela seria muito interessante.... ;)

Link para o comentário
Compartilhar em outros sites

  • 0

McBlade, é meio chato sim, mas se buscar na net, é capaz de achar um componente que já faça isto.

Se você utiliza D7, a título de exemplo, dê uma olhada neste componente - NextGrid. Eu já havia citado ele lá na sessão de Links. No canto inferior esquerdo da janela você vai achar um demo, dê uma olhada no que ele tem. É um StringGrid lindo de se ver. Mas como nem tudo é perfeito e por esta versão ser gratuita, não tem justamente opção para botão. :(

Abraços

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...