你想把DbNagvator图片去掉换成文字 可以这样
1. form1摆一个DBNavigator1
2\定义
type
TMyNavgator = class(TDBNavigator);
3.FormCreat时候
//去掉图片
TMyNavgator(DBNavigator1).Buttons[nbFirst].Glyph.Assign(nil);
//汉字
TMyNavgator(DBNavigator1).Buttons[nbFirst].Caption:='第一条';
如果要加上自己的图片:
TspeedButton(TMyNavgator(DBNavigator1).Buttons[nbFirst]).Layout:=blGlyphTop;//位置
TspeedButton(TMyNavgator(DBNavigator1).Buttons[nbFirst]).Glyph.LoadFromFile('D:\1.bmp');//图片
TMyNavgator(DBNavigator1).Buttons[nbFirst].Caption:='增加';
修改VCL源码,或者自己从DBNavigator派生一个类,然后在初始按钮里的写按钮的标题
unit MyNavEh;
interface
uses classes,windows,DBCtrls,db;
type
TMyDBNavigator=Class(TDBNavigator)
Private
procedure SetstrCaption;
public
constructor Create(AOwner:TComponent);override;
procedure BtnClick(Index:TNavigateBtn);override;
end;
implementation
var
strCaption:array[0..9] of String=('第一条','上一条','下一条','末一条',
'添加','删除','编辑','提交','取消','刷新');
procedure TMyDBNavigator.BtnClick(Index:TNavigateBtn);
begin
if (DataSource<>nil) and (DataSource.State<>dsInactive) then
begin
if not (csDesigning in ComponentState) then
with DataSource.DataSet do
begin
case Index of
nbPrior:Prior;
nbNext:Next;
nbFirst:First;
nbLast:Last;
nbEdit:Edit;
nbCancel:Cancel;
nbPost:Post;
nbRefresh:Refresh;
nbDelete:
begin
if MessageBox(Handle,'确认要删除这条记录吗?','警告',
MB_OKCANCEL or MB_ICONWARNING)=ID_OK then
Delete;
end;
end;
end;
end;
end;
constructor TMyDBNavigator.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
SetstrCaption;
end;
procedure TMyDBNavigator.SetstrCaption;
var
I:TNavigateBtn;
K:Integer;
begin
K:=0;
for I:=Low(Buttons) to High(Buttons) do
begin
Buttons[I].Caption:=strCaption[K];
Inc(K);
end;
end;
end.