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

Como Colocar Uma Figura De Fundo Num Grid/dbgri Ou Deixar Ele Transpar


Guest --Carlos --

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0
Guest MEMO FUNCIONA

var

BitmapImage : TBitmap;

begin

BitmapImage :=TBitmap.Create;

BitmapImage.LoadFromFile('c:\logo.bmp');

memo1.brush.Bitmap:=TBitmap.Create;

memo1.brush.Bitmap.LoadFromFile('c:\logo.bmp');

este procedimento funciona para o memo, mas tem um problema, a partir do momento que você vai digitando a linha vai apagando a figura, então alguém sabe deixar o

GRID/DBGRID transparente, mesmo todo preenchido, podendo aparecer o fundo?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0
var

BitmapImage : TBitmap;

begin

BitmapImage :=TBitmap.Create;

BitmapImage.LoadFromFile('c:\logo.bmp');

memo1.brush.Bitmap:=TBitmap.Create;

memo1.brush.Bitmap.LoadFromFile('c:\logo.bmp');

este procedimento funciona para o memo, mas tem um problema, a partir do momento que você vai digitando a linha vai apagando a figura, então alguém sabe deixar o

GRID/DBGRID transparente, mesmo todo preenchido, podendo aparecer o fundo?

vlw

Creio que este codigo vai ajudar a muitos colegas que estão querendo um dbgrid transparente

unit fTransparentGrid;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls,
        Forms, Dialogs, Db, Grids, DBGrids, ADODB, ExtCtrls;

type
  TForm1 = class(TForm)
    ADOTable1: TADOTable;  // ignorar se você não estiver usando componente ADO para acessar a tabela
    DataSource1: TDataSource;
    Image1: TImage;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject;   const Rect: TRect;
  Field: TField; State: TGridDrawState);
var
  Text: string;
  Rct: TRect;
begin
  Text := Field.AsString;
  Rct:= Rect;
  DBGrid1.Canvas.Brush.Color := clWhite;
  DBGrid1.Canvas.FillRect (Rct);
  BitBlt(DBGrid1.Canvas.handle,
         Rct.left,
         Rct.top,
         Rct.right - Rct.left,
         Rct.bottom - Rct.top,
         Image1.Canvas.Handle,
         Rct.left + DBGrid1.Left + Panel1.Left,
         Rct.Top + DBGrid1.Top + Panel1.Top,
         SRCCOPY);

  SetBkModE(DBGrid1.Canvas.Handle, TRANSPARENT);
  inc(Rct.Top ,2);
  inc(Rct.Left ,2);
  DBGrid1.Canvas.Font.Color := clBlack;
  DrawtextEx(DBGrid1.Canvas.Handle,
             PChar(Text),
             Length(Text),
             Rct,
             DT_WORDBREAK,
             nil);

end;

procedure TForm1.Panel1MouseDown(Sender: TObject;   Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Panel1.Perform(WM_SYSCOMMAND, $F012, SC_MOVE);
  Application.ProcessMessages;

  BitBlt(GetDc(Panel1.Handle),
         0,
         0,
         Panel1.Width,
         Panel1.Height,
         Image1.Canvas.Handle  ,
         Panel1.Left, Panel1.Top,
         SRCAND);

  DBGrid1.refresh;
end;


end.

Epero ter ajudado.

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