No se si el
IniButtons es el lugar correcto para cargar las imágenes.
Revisando el componentes
TDBNavigator, vero que las imágenes se cargan desde recursos con el procedimiento.
Código Delphi
[-]procedure TDBNavigator.SetButtonGlyph(Index: TNavigateBtn);
Y el índice admite los valores de os distintos botones:
Código Delphi
[-]
TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast,
nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh, nbApplyUpdates,
nbCancelUpdates);
Además este procedimiento está definido como
virtual, por lo tanto puedes redefirnirlo (con
override), por lo que me parece el correcto para hacerlo.
Si en tu componente defines un cóidigo de este estilo:
Código Delphi
[-]procedure TTestDBNavigator.SetButtonGlyph(Index: TNavigateBtn);
begin
inherited;
case Index of
nbFirst: Buttons[Index].Glyph.LoadFromFile('c:\ProyectosDelphi\Custom DBNavigator\First.bmp');
nbPrior: Buttons[Index].Glyph.LoadFromFile('c:\ProyectosDelphi\Custom DBNavigator\Prior.bmp');
nbNext: Buttons[Index].Glyph.LoadFromFile('c:\ProyectosDelphi\Custom DBNavigator\Next.bmp');
end;
end;
Funciona sin problemas y el comportamiento es el esperado. En este caso sólo está la carga de los tres primeros botones para el ejemplo.
Así es como se ven. Los botones son "feos",pero el tema de las sombras funciona ok.