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.
Obrigado,
Gilson.
Gilsonmv
Curtir tópico
+ 0
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.
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
Clique aqui para fazer login e interagir na Comunidade :)