Ver Mensaje Individual
  #2  
Antiguo 17-05-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.


__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita