Registro selecionado no DBGrid mostar hint...
Olá,
Estou desenvolvendo um sistema e estou querendo fazer a seguinte implementação: na tela de consulta de clientes, se o cliente estiver bloqueado, a linha aparece com uma determinada cor (até ai tudo bem). O que eu quero fazer é ao se posicionar nesse registro, aparecesse tipo um hint, mostrando o motivo do bloqueio e a data. Alguém já fez algo parecido, ou que poderia me auxiliar ou informar uma maneira melhor de exibir essas informações? Pensei no hint, para não colocar mais um componente no formulário (já que não vão ser muitos que estarão bloqueados comparado com os cadastrados) e o mesmo não ficar um tanto ´poluído´.
Até mais.
Estou desenvolvendo um sistema e estou querendo fazer a seguinte implementação: na tela de consulta de clientes, se o cliente estiver bloqueado, a linha aparece com uma determinada cor (até ai tudo bem). O que eu quero fazer é ao se posicionar nesse registro, aparecesse tipo um hint, mostrando o motivo do bloqueio e a data. Alguém já fez algo parecido, ou que poderia me auxiliar ou informar uma maneira melhor de exibir essas informações? Pensei no hint, para não colocar mais um componente no formulário (já que não vão ser muitos que estarão bloqueados comparado com os cadastrados) e o mesmo não ficar um tanto ´poluído´.
Até mais.
Iniciante2007
Curtidas 0
Respostas
Woinch
05/06/2009
Não sei se um hint é a melhor opção, porque posso estar enganado mas um hint não é exibido em componentes que estão desabilitados. Pode ser criado um panel e alterar as propriedades Left e Top dele de acordo com as propriedades X e Y do cursor do mouse. Você pode pegar essas propriedades através da função GetCursorPos (dê uma pesquisada em como utilizar essa função). Para mostrar esse evento somente em determinada linha, coluna ou célula você poderá utilizar esse exemplo que montei como base:
[codeprocedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
pt: TPoint;
begin
GetCursorPos(pt);
pt := DBGrid1.ScreenToClient(pt);
ShowMessage(´Linha ´ + IntToStr(DBGrid1.MouseCoord(pt.X, pt.Y).X) +
´; Coluna ´ + IntToStr(DBGrid1.MouseCoord(pt.X, pt.Y).Y));
end;[/code]
Espero ter ajudado.
[codeprocedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
pt: TPoint;
begin
GetCursorPos(pt);
pt := DBGrid1.ScreenToClient(pt);
ShowMessage(´Linha ´ + IntToStr(DBGrid1.MouseCoord(pt.X, pt.Y).X) +
´; Coluna ´ + IntToStr(DBGrid1.MouseCoord(pt.X, pt.Y).Y));
end;[/code]
Espero ter ajudado.
GOSTEI 0
Woinch
05/06/2009
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var pt: TPoint; begin GetCursorPos(pt); pt := DBGrid1.ScreenToClient(pt); ShowMessage(´Linha ´ + IntToStr(DBGrid1.MouseCoord(pt.X, pt.Y).X) + ´; Coluna ´ + IntToStr(DBGrid1.MouseCoord(pt.X, pt.Y).Y)); end;
GOSTEI 0
Iniciante2007
05/06/2009
Beleza era isso mesmo que eu queria.
Obrigado
Obrigado
GOSTEI 0