Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2008
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Poder: 0
camino Va por buen camino
Un DbNavigator muy curioso

Hola amigos estoy trabajando en dos programas en los cuales he usado el componente DbNavigator, y cosa rara, en cada programa se comporta de diferente manera.

Cabe señalar que use un articulo de About.Com: Delphi Programing donde enseña a cambiar loa Glyps y colocar leyenda en cada boton.

El articulo esta aqui: http://delphi.about.com/od/usedbvcl/l/aa090203a.htm

Pues bien la curiosidad del caso es que en un programa la leyenda del boton esta normal, pero en el otro la leyenda esta en negrita por lo que tuve que agrandar el DbNavigator para que se pudiera ver la leyenda completa.

Cabe señalar que solo agregue leyenda sin cambiar los glyps.

Las condiciones de los "Parent Object" son similares.

Agradeceria alguna respuesta.

Gracias.
Responder Con Cita
  #2  
Antiguo 16-07-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Pues lo que debes hacer es enviarnos el código que has modificado, para ver si encontramos algo raro.

Quizá el Font sea diferente.
Has probado a inicializarlo?

Código Delphi [-]
for btn := Low(TNavigateBtn) to High(TNavigateBtn) do
  with THackDBNavigator(Navigator).Buttons[btn] do
  begin
    //from the Captions const array
    Caption := Captions[btn];
{**************************}
    ParentFont := False;
    Font.Name := 'MS Sans Serif';
    Font.Pitch := fpDefault;
    Font.Style := [];
{**************************}
[...]

Nota: Mira también la propiedad ParentFont.
Si es True, tomará el font del componente padre.
Si es False, lo tomará de la inicialización que haga.
Responder Con Cita
  #3  
Antiguo 17-07-2008
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Poder: 0
camino Va por buen camino
Experimento sin resultado

Duilioisola gracias por tu ayuda pero lamentablemente no respondio como se esperaba.

La rutina para modificar el DbNavigator la coloque como un procedimiento en un form que guarda todas las rutinas que uso en mis programas llamado 'RutinasFunciones'. Aqui va:
Código Delphi [-]
procedure SetupHackedNavigator(const Navigator : TDBNavigator);
const   Captions : array[TNavigateBtn] of string =
      ('Primero', 'Anterior', 'Siguiente', 'Ultimo', 'Agrega',
       'Elimina', 'Edita', 'Graba', 'Cancela', 'Refresca');
(*
  Captions : array[TNavigateBtn] of string =
      ('First', 'Prior', 'Next', 'Last', 'Insert',
       'Delete', 'Edit', 'Post', 'Cancel', 'Refresh');

  in Croatia (localized):
  Captions : array[TNavigateBtn] of string =
      ('Prvi', 'Prethodni', 'Slijedeci', 'Zadnji', 'Dodaj',
       'Obrisi', 'Promjeni', 'Spremi', 'Odustani', 'Osvjezi');
*) var   btn : TNavigateBtn; begin   for btn := Low(TNavigateBtn) to High(TNavigateBtn) do   with THackDBNavigator(Navigator).Buttons[btn] do   begin     //from the Captions const array
    Caption := Captions[btn];
    ParentFont := False;
    Font.Name := 'MS Sans Serif';
    Font.Pitch := fpDefault;
    Font.Size := 8;
    Font.Style := [];

{    //the number of images in the Glyph property
    NumGlyphs := 1;
    // Remove the old glyph.
    Glyph := nil;
    // Assign the custom one
    Glyphs.GetBitmap(Integer(btn),Glyph); }     // gylph above text
    Layout := blGlyphTop;

    // explained later
  //  OnMouseUp := HackNavMouseUp;
  end;
end; (*SetupHackedNavigator*)


Esta rutina la llamo desde donde esta el DbNavigator en el "OnCreate" de la
form.

Última edición por marcoszorrilla fecha: 17-07-2008 a las 05:54:13. Razón: Corregir etiqueta Delphi
Responder Con Cita
  #4  
Antiguo 17-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por camino Ver Mensaje
Código Delphi [-]
procedure SetupHackedNavigator(const Navigator : TDBNavigator);
const   
  Captions : array[TNavigateBtn] of string =
      ('Primero', 'Anterior', 'Siguiente', 'Ultimo', 'Agrega',
       'Elimina', 'Edita', 'Graba', 'Cancela', 'Refresca');
var 
  btn : TNavigateBtn; 
begin   
 for btn := Low(TNavigateBtn) to High(TNavigateBtn) do  
 with THackDBNavigator(Navigator).Buttons[btn] do   
 begin      
    Caption := Captions[btn];
    ParentFont := False;
    Font.Name := 'MS Sans Serif';
    Font.Pitch := fpDefault;
    Font.Size := 8;
    Font.Style := [];
    Layout := blGlyphTop;
  end;
end;

Perdon lo ordene un poco porque no podía leerlo.

El código esta correcto. Seguro esta pasando el navigator correcto? No veo donde puede estar el problema. Prueba con este código mas limpio.

Editado: Y muestra la definición de THackDBNavigator.
Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal

Última edición por donald shimoda fecha: 17-07-2008 a las 01:40:19.
Responder Con Cita
  #5  
Antiguo 17-07-2008
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Poder: 0
camino Va por buen camino
Por Fin La Solucion

Amigo donald shimoda no se si cometi un error de omision , pero crei (desafortunadamente) que lo que no mencione podria tener la clave del problema,

Pues equivocado.

Para tener una mejor presentacion en mis "Forms" uso los componentes SkinEngine. Ellos me han dado la posibilidad de hacer mas presentables las aplicaciones.

Pues bien experimentando, descubri que el culpable es el objeto de SkinEngine "SkinForm" y los detalles son:

DbNavigator.Caption en negrita con :

SkinForm1.Blending.Enabled := False;

DbNavigator.Caption Normal (como yo quiero) con:

SkinForm1.Blending.Enabled := True;
SkinForm1.Blending.Value := 255;

Lamentablemente no tengo una explicacion de porque sucede esto. Pero es asi.

Gracias.
Responder Con Cita
  #6  
Antiguo 17-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por camino Ver Mensaje
Lamentablemente no tengo una explicacion de porque sucede esto. Pero es asi.
Gracias.
Por lo que comentas y sin ver el código del skinengine, esta libreria esta forzando la propiedad a negrita en tu navigator. Ahora, tu no puedes editar el skin para cancelar eso? Si tienes los fuentes de esa librería síguela hasta encontrar donde lo hace y pon alguna variable adicional que te permita evitarlo.

Perdon por la corta ayuda pero sin ver el codigo es todo lo que puedo decirte.
Espero te sirva, saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #7  
Antiguo 17-07-2008
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Poder: 0
camino Va por buen camino
Gracias por la ayuda

Amigo donald shimoda, en honor a la verdad en estos momentos estoy con una gran carga de trabajo, y como ya soluciones el problema creo que voy a dejar la investigacion en los fuentes para mas adelante.

Gracias.
Responder Con Cita
  #8  
Antiguo 17-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por camino Ver Mensaje
Amigo donald shimoda, en honor a la verdad en estos momentos estoy con una gran carga de trabajo, y como ya soluciones el problema creo que voy a dejar la investigacion en los fuentes para mas adelante.

Gracias.
Como reza el viejo adagio, si la porquería funciona pa'que tocarla!

Me alegro que lo hayas solucionado.

saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #9  
Antiguo 17-07-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Me gusta más la sentencia:

"Si funciona no lo arregles".

Porque es menos escatológica.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #10  
Antiguo 17-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por marcoszorrilla Ver Mensaje
Me gusta más la sentencia:

"Si funciona no lo arregles".

Porque es menos escatológica.

Un Saludo.
Y yo que dije?
Estamos totalmente de acuerdo.

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #11  
Antiguo 12-03-2011
Philip_ Philip_ is offline
No confirmado
 
Registrado: abr 2010
Posts: 8
Poder: 0
Philip_ Va por buen camino
hola

THackDBNavigator
esto me sale com o no declarado
Responder Con Cita
  #12  
Antiguo 12-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Philip_ Ver Mensaje
THackDBNavigator
esto me sale com o no declarado
Por favor, lee las normas de clubdelphi, gracias por tu colaboración.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ver videos a través de un Panel, ¡¡¡Curioso!!! aeff Varios 22 13-10-2007 04:12:42
Muy curioso gluglu La Taberna 10 21-06-2007 03:14:31
Curioso desafio Morse vs SMS marcoszorrilla La Taberna 0 22-04-2007 20:46:38
Curioso despertador marcoszorrilla Humor 1 19-05-2006 09:02:29


La franja horaria es GMT +2. Ahora son las 01:10:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi