Evento OnTitleClick em um TListView

15/01/2004

0

Olá alguém sabe como implementar o Evento OnTitleClick (que temos em um DBGrid) em um TListView.

Obrigado,

Gilson.


Gilsonmv

Gilsonmv

Responder

Posts

16/01/2004

Gilsonmv

unit ListViewTitleClick;

interface

uses
SysUtils, Classes, Controls, ComCtrls, Messages;

type
TTitleListViewClickEvent = procedure (Column: Integer) of object;

TListViewTitleClick = class(TListView)
procedure WMParentNotify(var Message: TWMParentNotify); message WM_PARENTNOTIFY;
private
FOnTitleClick: TTitleListViewClickEvent;
protected
procedure TitleClick(Column: Integer); dynamic;
public
published
property OnTitleClick: TTitleListViewClickEvent read FOnTitleClick write FOnTitleClick;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents(´Standard´, [TListViewTitleClick]);
end;

procedure TListViewTitleClick.TitleClick(Column: Integer);
begin
if (Column <> -1) then
if Assigned(FOnTitleClick) then
FOnTitleClick(Column);
end;

procedure TListViewTitleClick.WMParentNotify(var Message: TWMParentNotify);
var
Column, XPos, Ind, Tamanho: Integer;
begin
Column := -1;
XPos := Message.XPos;
Tamanho := 0;
for Ind := 0 to Self.Columns.Count -1 do
begin
Tamanho := Tamanho + Self.Columns[Ind].Width;
if (Tamanho > XPos) then
begin
Column := Ind;
Break;
end;
end;
Self.TitleClick(Column);
inherited;
end;

end.


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

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