Fórum Centralizar bitmap em celula do StringGrid #227790
23/04/2004
0
Eu ja consigo desenhar o bitmap, que esta armazenado em um componente TImage, porem, ele fica desfocado de tamanho dentro da celula do stringgrid, ele e mostrado com 4 imagens dentro de cada celula.
Obrigado,
Giovanni
Gveggi
Curtir tópico
+ 0Posts
23/04/2004
Spider
Gostei + 0
23/04/2004
Lucas Silva
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var strTemp: string; Format: integer; begin strTemp := StringGrid1.Cells[ACol,ARow]; StringGrid1.Canvas.FillRect(Rect); if (ACol = 0) then // se coluna = 0 alinha ao centro Format := DT_CENTER else if (ARow = 0) then se linha=0 alinha ao centro Format := DT_CENTER else // caso contrario a esquerda Format := DT_LEFT; //DT_RIGHT alinha a direita if (ARow = 0) then StringGrid1.Canvas.Font.Style := [fsBold]; DrawText(StringGrid1.Canvas.Handle,PChar(strTemp),-1,Rect,Format); end;
Gostei + 0
23/04/2004
Gveggi
eu desenho o bitmap atraves do Canvas.Brush.Bitmap := Bitmap,
porem o Bitmap fica dividido dentro da celula do stringgrid, aparecendo 2 ou 3 vezes a imagem.
Preciso que ele fique alinhado centralizado na celula, aparecendo 1 unica imagem.
Continuo contando com a ajuda dos companheiros,
Obrigado
Gostei + 0
23/04/2004
Lucas Silva
Gostei + 0
26/04/2004
Marcelo Saviski
var BX, BY: Integer; begin BX := (Width_da_celula - Bitmap.Width) div 2; BY := (Height_da_celula - Bitmap.Height) div 2; Canvas.Draw(BX, BY, Bitmap); end;
Gostei + 0
26/04/2004
Gveggi
Veja o meu codigo, deste modo ele criou a imagem em um unico local somente do stringGrid e mesmo assim fora do local desejado.
imgW := (StringGrid1.DefaultColWidth - Image1.Width);
imgH := (StringGrid1.DefaultRowHeight - Image1.Height);
Canvas.Draw(imgW, imgH, Image1.Picture.Bitmap);
Se o codigo esta correto, ele nao funciona conforme o desejado.
Por enquando o
StringGrid1.Canvas.Brush.Bitmap := Image1.Picture.Bitmap;
funciona melhor, so nao entendo porque ele repete o desenho do bitmap dentro da celula, ao invez de deixa-lo centralizado e unico.
Voce testou este codigo que me passou ?
Obrigado,
Giovanni
Gostei + 0
22/05/2012
George Lemos
stringgrid.Canvas.StretchDraw(Rect,Bitmap);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)