Desenhar um TLabel na célula selecionada do TStringGrid.

Delphi

09/06/2008

Olá pessoal, preciso de uma ajuda para desenha um componente TLabel, dentro da coluna selecionada do TStringGrid.

Obrigado.


Joaohenriquemf

Joaohenriquemf

Curtidas 0

Respostas

Fabianosales

Fabianosales

09/06/2008

Declare uma variável para armazenar a coordenada da célula selecionada.
  private
    { Private declarations }
     SelectedCell : TPoint;


Atualize a variável no evento CellSelect
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  SelectedCell.X := ACol;
  SelectedCell.Y := ARow;
end;


Desenhe uma cópia do controle na célula selecionada...
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if (ACol = SelectedCell.X) and (ARow = SelectedCell.Y) then
    begin
      BitBlt(StringGrid1.Canvas.Handle, Rect.Left, Rect.Top, Label1.Width, Label1.Height,
               Label1.Canvas.Handle,0,0, SRCCOPY);
    end;
end;



GOSTEI 0
Fabianosales

Fabianosales

09/06/2008

Ooops.
Favor considerar somente este trecho aqui. (Não consegi editar o post). :twisted:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if (ACol = SelectedCell.X) and (ARow = SelectedCell.Y) then
    begin
      BitBlt(StringGrid1.Canvas.Handle, Rect.Left, Rect.Top, Label1.Width, Label1.Height,
               Label1.Canvas.Handle,0,0, SRCCOPY);
    end;
end;



GOSTEI 0
POSTAR