回复人: forgot2000(忘记2000年) (  ) 信誉:100  2002-3-8 11:00:35  得分:80  
 
 
  修改$(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;