Como saber o TRect de uma célula do dbGrid?

20/02/2006

0

Olá colegas do forum, gostaria de saber se tem como pegar o TRect de uma célula qualquer do dbGrid?


Pabhen

Pabhen

Responder

Posts

20/02/2006

Pabhen

ninguem sabe?


Responder

21/02/2006

Pabhen

Alguem pode ajudar?


Responder

21/02/2006

Pabhen

consegui,

achei uma dica aki mesmo no forum no link http://forum.clubedelphi.net/viewtopic.php?t=21060

que diz pra declarar um tipo

TAccessDBGrid = class(TCustomGrid);

depois você poderá usar esta classe para acessar propriedades protegidas do DBGrid.

aí usei o seguinte código:

// Trecho do código

var
R: TRect;
col, lin: integer;
begin
col := TAccesDbgrid(dbGrid).Col;
lin := TAccesDbgrid(dbgGrid).Row + 1;

R := TAccesDbgrid(dbGrid).CellRect(col, lin);
R.Left := R.Left + dbgGrid.Left;
R.Right := R.Right + dbgGrid.Left;
R.Top := R.Top + dbgGrid.Top;
R.Bottom := R.Bottom + dbgGrid.Top;

jvceTotalPago.Left := R.Left + 1;
jvceTotalPago.Top := R.Top + 1;
jvceTotalPago.Width := (R.Right + 1) - R.Left;
jvceTotalPago.Height := (R.Bottom + 1) - R.Top;

// fim do trecho

como dá pra perceber, eu criei esse código pra criar um artifício técnico (popularmente conhecido como um ´jeiteinho´), pra sobrepor a celula selecionada com um edit q contem uma calculadora da biblioteca JVCL.

O usuário precisava de somar vários boletos fora do sistema pra depois lançar o valor na celula do grid, assim eu ´engano´ o usuário com esse componente, ele vai somando os boletos no sistema e o total é lançado no grid.

Espero q essa dica sirva pra mais alguem q keira posicionar algum outro componente de sua necessidade numa célula especifica do grid.

flw.


Responder

21/02/2006

Aloizio Castro

:arrow: Em quem metodo do Grid vc implementou este procedimento :?: :?:
:arrow: Vc simplesmente fez isto: [i:05c1a47ed5] TAccesDbGrid = TCustomGrid;[/i:05c1a47ed5], naum foi preciso rescrever nenhum metodo :?: :?:

No meu naum deu certo :!:


Responder

21/02/2006

Pabhen

:arrow: Em quem metodo do Grid vc implementou este procedimento :?: :?: :arrow: Vc simplesmente fez isto: [i:083b021008] TAccesDbGrid = TCustomGrid;[/i:083b021008], naum foi preciso rescrever nenhum metodo :?: :?: No meu naum deu certo :!:


TAccesDbGrid = TCustomGrid;

eu declarei logo abaixo do

public
{ Public declarations }
end;

-->> TAccesDbGrid = TCustomGrid;

e o resto do código eu declarei no evento OnColEnter do dbgrid, blz.

qualquer coisa tamos aí.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar