6 Windows, Messages, SysUtils, Classes, Controls, ToolWin, ComCtrls, CommCtrl;
9 tagNMREBARCHEVRON = packed record
17 PNMRebarChevron = ^TNMRebarChevron;
18 TNMRebarChevron = tagNMRebarChevron;
22 TBandInfoEvent = procedure(Sender: TObject; var BandInfo: PReBarBandInfo) of object;
23 TChevronClickEvent = procedure(Sender: TObject; RebarChevron: PNMRebarChevron) of object;
25 TGikoCoolBar = class(TCoolBar)
27 FOnBandInfo: TBandInfoEvent;
28 FOnChevronClick: TChevronClickEvent;
29 procedure RBInsertBand(var Message: TMessage); message RB_INSERTBAND;
30 procedure RBSetBandInfo(var Message: TMessage); message RB_SETBANDINFO;
31 procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
35 property OnBandInfo: TBandInfoEvent read FOnBandInfo write FOnBandInfo;
36 property OnChevronClick: TChevronClickEvent read FOnChevronClick write FOnChevronClick;
40 RBBS_USECHEVRON = $00000200;
41 RBN_CHEVRONPUSHED = RBN_FIRST - 10;
49 RegisterComponents('gikoNavi', [TGikoCoolBar]);
52 procedure TGikoCoolBar.RBInsertBand(var Message: TMessage);
54 if Assigned(FOnBandInfo) then
55 FOnBandInfo(Self, PReBarBandInfo(Message.LParam));
59 procedure TGikoCoolBar.RBSetBandInfo(var Message: TMessage);
61 if Assigned(FOnBandInfo) then
62 FOnBandInfo(Self, PReBarBandInfo(Message.LParam));
66 procedure TGikoCoolBar.CNNotify(var Message: TWMNotify);
68 if Message.NMHdr^.code = RBN_CHEVRONPUSHED then begin
69 if Assigned(FOnChevronClick) then begin
70 FOnChevronClick(Self, PNMRebarChevron(Message.NMHdr));