TDBNavigator的按钮中可不可以添加文字,或者加上提示文字也好 TDBNavigator的按钮中可不可以添加文字,或者加上提示文字也好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 修改$(DELPHI)\lib\DBCTRLS.res中相应按钮的bitmap即可 看看源代码就知道了。var BtnTypeName: array[TNavigateBtn] of PChar = ('FIRST', 'PRIOR', 'NEXT', 'LAST', 'INSERT', 'DELETE', 'EDIT', 'POST', 'CANCEL', 'REFRESH');type TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);// 初始化按钮procedure TDBNavigator.InitButtons;var I: TNavigateBtn; Btn: TNavButton; X: Integer; ResName: string;begin MinBtnSize := Point(20, 18); X := 0; for I := Low(Buttons) to High(Buttons) do begin Btn := TNavButton.Create (Self); ); // TNavButton 是 TSpeedButton 的子类,其实就是 TSpeedButton Btn.Flat := Flat; Btn.Index := I; Btn.Visible := I in FVisibleButtons; Btn.Enabled := True; Btn.SetBounds (X, 0, MinBtnSize.X, MinBtnSize.Y); FmtStr(ResName, 'dbn_%s', [BtnTypeName[I]]); Btn.Glyph.LoadFromResourceName(HInstance, ResName); // 从资源文件中根据资源名字调出 TSpeedButton 的 Glyph 属性 Btn.NumGlyphs := 2; Btn.Enabled := False; Btn.Enabled := True; Btn.OnClick := ClickHandler; Btn.OnMouseDown := BtnMouseDown; Btn.Parent := Self; Buttons[I] := Btn; X := X + MinBtnSize.X; end; Buttons[nbPrior].NavStyle := Buttons[nbPrior].NavStyle + [nsAllowTimer]; Buttons[nbNext].NavStyle := Buttons[nbNext].NavStyle + [nsAllowTimer];end;但是 Buttons 属性被 Protect 了,一般情况下访问不到,要玩一点技巧! protected Buttons: array[TNavigateBtn] of TNavButton;这样做就行了:type TMyNavgator = class(TDBNavigator); // Delphi 默认在同一个单元里的类可以互相访问其 protected 属性implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin TMyNavgator(DBNavigator1).Buttons[nbFirst].Glyph.LoadFromFile('D:\Program\Image\Face.bmp');end; 修改一下Navgator的代码,可以实现的,不过好像得动态建立得 以上方法都太麻烦了,网络上一个控件叫dbnav的控件,很好用!但按钮的样式与按钮一样,太普通了!除了这个之外,还有非常多,如IP3000里就有一个非常好用的!……如果网络上找不到,我可以发给你,不过要给我加分哦! 干吗这样麻烦,直接用button写代码不就得了 更改Hints属性中的文字就行了,并且ShowHint:=true; 三层调用 过程出错!大侠们来看看。UP送分! 请问TdxSideBar组件哪里有下载?谢谢! 问个delphi自带的quickrep控件控制打印的问题,急用! 好奇怪的,adoquery执行批量sql报错,各位帮帮忙!再线等待 如何保护自己的软件 ClientDataSet紧急求救 应急,我需要一个SQLEXEC程序 在edit中新增FCharCase属性,实现首字母的选择 我在做一个的数据库用ttable 通过连接Sql server 7.0,DBGRID显示表,我发现操作表中一 关于修改密码 union这个连接是有什么用的和INNER JOIN有什么区别 魔鬼代码?
看看源代码就知道了。
var
BtnTypeName: array[TNavigateBtn] of PChar = ('FIRST', 'PRIOR', 'NEXT',
'LAST', 'INSERT', 'DELETE', 'EDIT', 'POST', 'CANCEL', 'REFRESH');
type
TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast,
nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);
// 初始化按钮
procedure TDBNavigator.InitButtons;
var
I: TNavigateBtn;
Btn: TNavButton;
X: Integer;
ResName: string;
begin
MinBtnSize := Point(20, 18);
X := 0;
for I := Low(Buttons) to High(Buttons) do
begin
Btn := TNavButton.Create (Self); ); // TNavButton 是 TSpeedButton 的子类,其实就是 TSpeedButton
Btn.Flat := Flat;
Btn.Index := I;
Btn.Visible := I in FVisibleButtons;
Btn.Enabled := True;
Btn.SetBounds (X, 0, MinBtnSize.X, MinBtnSize.Y);
FmtStr(ResName, 'dbn_%s', [BtnTypeName[I]]);
Btn.Glyph.LoadFromResourceName(HInstance, ResName); // 从资源文件中根据资源名字调出 TSpeedButton 的 Glyph 属性
Btn.NumGlyphs := 2;
Btn.Enabled := False;
Btn.Enabled := True;
Btn.OnClick := ClickHandler;
Btn.OnMouseDown := BtnMouseDown;
Btn.Parent := Self;
Buttons[I] := Btn;
X := X + MinBtnSize.X;
end;
Buttons[nbPrior].NavStyle := Buttons[nbPrior].NavStyle + [nsAllowTimer];
Buttons[nbNext].NavStyle := Buttons[nbNext].NavStyle + [nsAllowTimer];
end;
但是 Buttons 属性被 Protect 了,一般情况下访问不到,要玩一点技巧!
protected
Buttons: array[TNavigateBtn] of TNavButton;这样做就行了:
type
TMyNavgator = class(TDBNavigator); // Delphi 默认在同一个单元里的类可以互相访问其 protected 属性
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
TMyNavgator(DBNavigator1).Buttons[nbFirst].Glyph.LoadFromFile('D:\Program\Image\Face.bmp');
end;
但按钮的样式与按钮一样,太普通了!除了这个之外,还有非常多,如IP3000里就有一个非常好用的!……如果网络上找不到,我可以发给你,不过要给我加分哦!