Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Programar el componente DBNavigator independientemente (https://www.clubdelphi.com/foros/showthread.php?t=61916)

rgstuamigo 26-11-2008 20:25:09

Programar el componente DBNavigator independientemente
 
Hola amigos aqui nuevamente con algunas dudillas, mi problemas es que quisiera programar cada botoncito que tiene el componente DBNavigator independientemente,es decir me creo 10 TBitBtn (por que son 10 opciones que tiene este componente) y en el evento Onclick de cada uno quisiera poner el codigo de lo que exactamente hace cada botoncito del DBNavigator respectivamente, pero no se exactamente que código poner en los eventos, tampoco quiero hacerlo a nivel de componente o crearme un componente nuevo o personalizado solo quiero los eventos de cada uno.
Espero que me puedan ayudar;)..
Les agradesco de antemano......

Caral 26-11-2008 20:31:51

Hola
Bueno, no se cual es la duda.
El dbnavigator esta ligado al datasource y a su vez al table o query.
Los eventos son los que pone el mismo componente.
Para hacer por ejemplo:
Código Delphi [-]
Table1.Fist;
Código Delphi [-]
Table1.Delete;
Etc, Etc, Etc.
Saludos

rgstuamigo 26-11-2008 21:20:50

Gracias Caral por responder...
Pense que era mas dificil:rolleyes: pero dime caral ,al parecer cuando le das next o prior en el DBNavigator se seleciona la fila del DBGrid con azul ,pero si lo haces por codigo al parecer no ¿Como lograrias esto?:confused:

Caral 26-11-2008 21:30:37

Hola
Que raro que no te funcione.
Código Delphi [-]
Table1.Next;
Código Delphi [-]
Table1.Prior;
Saludos

rgstuamigo 26-11-2008 21:34:10

Cita:

Hola
Que raro que no te funcione.
Me funciona pero lo unico es que no lohace como lo hace el DBNavigator que cuando el cursorsito esta en una fila del DBGrid lo pinta con azul, en cambio si lo hago asi por codigo solo se ubica el cursorcito pero no lo pinta de azul.:rolleyes:

Lepe 26-11-2008 21:41:05

Entiendo lo que dices, pero eso es normal en un DBgrid, puedes tener seleccionado un registro y después poder seleccionar más registros.... de ahí que la selección no se mueva.

El dbgrid tiene la propiedad Options donde puedes configurar muchas opciones.

Puede ser... y sólo puede ser, que hayas usado TButtons para tus navigator y ese componente captura el foco del ratón, así que el dbgrid pierde el foco. Usa un TSpeedButton para tus botones personalizados.


Saludos

rgstuamigo 26-11-2008 21:53:38

Gracias Lepe;)
Ya me funciono , tuve que agregarle
Código Delphi [-]
DBGrid1.SetFocus;
despues de cada next o prior,etc;
Pero dime como hago que cuando le de next,prior,etc se selecione(pinte)toda la fila y no solo una casilla del dbGrid y mejor si es de otro color que no sea el azul?:confused:

luisgutierrezb 26-11-2008 22:06:15

y porque quieres hacer todo el codigo de los botones? lo pregunto por lo siguiente hay formas de cambiarle al dbnavigator las imagenes e incluso ponerle captions, a lo mejor eso soluciona el problema pero si aun asi quieres hacerlo, usa acciones ya trae predefinidas las acciones de base de datos y te habilita y deshabilita los botones automaticamente

rgstuamigo 26-11-2008 22:27:01

Cita:

y porque quieres hacer todo el codigo de los botones? lo pregunto por lo siguiente hay formas de cambiarle al dbnavigator las imagenes e incluso ponerle captions, a lo mejor eso soluciona el problema pero si aun asi quieres hacerlo, usa acciones ya trae predefinidas las acciones de base de datos y te habilita y deshabilita los botones automaticamente
Lo que pasa es que estoy haciendo un Sistema de informacion y necesito documentar todos los metodos que tenga en mi formulario(Form) y si lo hago con el componente pues en realidad no sabria con certeza que se hace con los metodos del componente, encambio si hago mi propio metodo podria con mas facilidad documentarlo, aparte de eso estoy trbajando a nivel de capas(capa de Negocio,capa de datos y capa de presentacion) y por comodidad debo hacerlo asi.
Pero seria bueno que me dijeras como puedo personalisar el DBNavigator para ponerle imagenes diferentes en cada botoncito, etiquetas,etc.
Seria muy interesante aprender hacerlo pero quiero decirte que trabajo con Delphi 7.;)

Lepe 27-11-2008 12:19:39

Para cambiar los iconos, busca un archivo llamado "dbctrls.rc" en la carpeta de Borland\delphi7, lo puedes abrir con un editor de recursos y modificar las imágenes a voluntad y después compilar para obtener el .res final.

Saludos

rgstuamigo 27-11-2008 20:42:55

Te cuento Lepe que no hay ese archivo que mencionas,lo he buscado por todos lados, incluso con el buscador de Windows(el perrito):) y nada ....

roman 27-11-2008 21:12:54

1 Archivos Adjunto(s)
Tal como dicen, se pueden personalizar las imágenes de los botones:



Una forma de hacerlo es cargando cada imagen durante la ejecución. Aquí pongo el ejemplo de la imagen, con todo y el archivo de recursos que contiene las imágenes.

// Saludos

Caral 27-11-2008 21:18:05

Hola
Roman da un error:
Falta este archivo: {$R windowsxp.res}
No lo encuentro.
Saludos

roman 27-11-2008 21:25:10

Quita esa línea y añade un XPManifest (o no, esa parte es sólo para la vista estilo XP)

// Saludos

Caral 27-11-2008 21:49:34

Hola
Perfecto, gracias
Saludos

rgstuamigo 27-11-2008 21:58:09

Gracias "Cuate" Roman.....:D:)

rastafarey 01-12-2008 13:38:46

Resp
 
Si quieres evitarte el codigo de lso botones puedes usar un TAction del tipo de desees y lo enlasar al boton y listo.

rgstuamigo 01-12-2008 20:36:14

Hola rastafarey Gracias por la sugerencia ,pero dime donde encuentro ese componente TAction y como se utiliza?:confused:. Mejor si me das un ejemplo...
Saludos...:cool:

rastafarey 03-12-2008 13:47:00

resp
 
El apaleta estardar se llama actions

rastafarey 03-12-2008 14:08:11

Resp
 
Perdon.

Paleta Stardard Componente TActionList


La franja horaria es GMT +2. Ahora son las 15:53:28.

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