Это было два месяца тому назад. Я нашел это на одном из Delphi-сайтов. Не очень сложно и понятно.
UNIT Lbox; INTERFACE USES SysUtils, WinTypes, Messages, Classes, Controls, Graphics, Forms, Menus, StdCtrls; Type TCngListBox = Class(TListBox) private FOnChange : TNotifyEvent; FLastSel : integer; procedure Click; override; protected procedure Change; Virtual; published property OnChange : TNotifyEvent read FOnChange write FOnChange; public constructor create(AOwner : TComponent); override; End; Procedure Register; IMPLEMENTATION procedure TCngListBox.Change; begin FLastSel := ItemIndex; if assigned(FOnChange) then FOnChange(self); end; procedure TCngListBox.Click; begin inherited Click; if FLastSel <> ItemIndex then Change; end; constructor TCngListBox.Create; begin Inherited Create(AOwner); FLastSel := -1; end; procedure Register; begin RegisterComponents('FreeWare',[TCngListBox]); end; END. |
[001547]