DBNavigator控件加上汉字,怎样实现

你想把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.

你可能感兴趣的:(navigator)