FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
Navigator
Buenas,
Tengo un objeto navigator y quiero que al pulsar sobre un objeto button haga la misma acción que si seleccionará el propio navigator, por ejemplo sobre la acción de insertar registro, es posible hacerlo? . No se si habré sido lo suficientemente claro en mi exposición, de no ser así, preguntarme las dudas . |
#2
|
||||
|
||||
Claro que es posible. El DbNavigator no es más que una componente que engloba los métodos de un dataset para recorrer una tabla de manera que sólo tienes que acceder a dichos métodos directamente. Por ejemplo, si el dbnavigator está enlazado a un TTable puedes usar Table.Append.
De hecho puedes prescindir totalmente del navigator y hacer tu propia navegación. // Saludos |
#3
|
|||
|
|||
A parte de lo dicho por Román, ¿puedo sugerirte y preguntarte algo?
Sugerencia: mirate el TActionList, quizás te facilite bastante la labor a la hora de trabajar con datasets y para este tipo de acciones que quieres hacer (lleva implementadas todas las operaciones básicas que actuan sobre el dataset, es decir, insert, post, edit, next, last, prior, first,....). Si quieres una "guía" de este componente, en mi web tienes una explicación del mismo Pregunta: ¿qué es lo que no te gusta del TDBNavigator? ¿Los botones? Si es así, puedes cambiarlos, sólo has de editar el archivo de recursos perteneciente a éste (lib\dbctrls.res) y ponerle los que más te gusten. ¿El comportamiento? A mi personalmente me parece genial. ¿El control sobre el mismo? Con los eventos BeforeAction y OnClick lo puedes controlar practicamente todo. No se, son otras opciones |
#4
|
||||
|
||||
Cita:
Personalmente uso el navigator sólo para pruebitas rápidas; para lo demás prefiero crear mi propia interfaz a la medida. // Saludos |
#5
|
||||
|
||||
Sin embargo los botones del DbNavigator, tienen propiedades como que al mantener pulsado un botón cada cierto tiempo produzca un avance, esto lo acabo de releer de un libro de Ian Marteens.
Por lo tanto si tienes el DbNavigator y tienes otro botón hecho por tí por qué no llamas al propio Navigator que ejecute su método correspondiente. Código:
procedure TForm1.Button1Click(Sender: TObject); begin DbNavigator1.BtnClick(nbInsert); end; Incluso puedes cometer la aberración de poner un DbNavigator en tu formulario y ponerlo visible a falso y llamarlo desde tus botones. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#6
|
|||
|
|||
No, si ideas hay miles
No obstante, cuando decía lo de que el comportamiento me parece genial, me refería precisamente a lo comentado por Marcos (que también leí en su día en la Cara Oculta) Simplemente, como dice Román, es cuestión de gustos, ver diferentes posibilidades y puntos de vista y, sobre eso, escoger la que más rabia nos dé |
#7
|
||||
|
||||
Efectivamente, lo que menos me gusta son los botones, nada aclarativos para un usuario inicial.
Se de la posibilidad de modificarlos a través de "lib\dbctrls.res", pero por un lado estoy adentrandome en el marivolloso mundo de la "oop" y me gusta aprender el "uso interno" de los objetos y por otro lado, el inconveniente de modificar el archivo "dbctrls.res" conlleva tener que conservarlo en caso de desintalar delphi por un formateo u otras raciones y dada mi buena memoria prefiero buscar otro camino. Ah!! he visitado ya varias veces tu web y he seguido el manual sobre rxdbgrid y me he descargado algún componente, pero no consigo ver donde está la guia sobre navigator. Un saludo y enhorabuena por tu web, y por el peazo moto que te has licenciao |
#8
|
|||
|
|||
Cita:
|
#9
|
|||
|
|||
Se Puede Editar El Mensaje Del Dbnavigator
Una Pregunta..... Se Puede Editar Los Mensajes del Dbnavigator??
Si Es Que Se Puede Como Se Hace... Gracias...saludos Jurdock :d |
#10
|
||||
|
||||
¿Mensajes?, me parece que te refieres a la ayuda que sale en el Hint, si eso si. Mira las propiedades Hints de tipo TStrings que precisamente es para cambiar esos textos
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
|||
|
|||
Perdona, cadetill, una preguntita. Estaba interesado en eso de modificar los botones del navegador pero si te soy sincero no sé cómo editar el archivo dbctrls.res
Alguna ayuda sobre cómo modificarlo o dónde encontrar información sobre el tema? Acabo de ver que cadetill no se conecta desde 2005. Alguna otra persona podría echarme un cable con el tema?? Última edición por Shikanda fecha: 24-09-2007 a las 10:43:15. |
#12
|
||||
|
||||
Usa un editor de recursos.
Resource Workshop es uno de ellos (no recuerdo si gratuito). Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#13
|
||||
|
||||
Cita:
http://www.clubdelphi.com/foros/showthread.php?t=7040 Cita:
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
#14
|
|||
|
|||
Jeje... si, Gabo, se ve que me meto en los hilos mas antiguos, y no hay manera xDD Miraré el programa que dices, a ver si hay suerte.
Muchas gracias! |
#15
|
||||
|
||||
Cita:
Mi C++Builder viene con el Image Editor que nunca lo he ocupado... Al menos "de apariencia", se ve mejor el XN Resource Editor...
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
#16
|
|||
|
|||
Voy a parecer un torpe, pero me he bajado el programa (el XN Resource Editor) y he editado los botones, pero al ejecutar el navegador sigue usando los botones antiguos. He compilado y recompilado el programa, he comprobado que se hayan guardado bien los cambios pero no hay manera.
¿Qué estoy haciendo mal? |
#17
|
||||
|
||||
Perdona, tenía prisa y no he dado mucha información.
Al editar el archivo .res, asegurate de usar el mismo tipo de icono: igual número de colores, profundidad y tamaño. No cambies el nombre de cada imagen, (el nombre de recurso). - Busca en la carpeta Borland, el archivo dbctrls.res (supuestamente en la carpeta <delphi>\lib) - haces una copia de seguridad ... por si acaso - ahora pegas el nuevo archivo compilado en la misma carpeta reemplazando el archivo existente. - Reabres Delphi. Cualquier DBNavigator que ya tengas puesto en tus ventanas, mostraran los nuevos iconos. Veo que has preguntado en varios hilos sobre el mismo tema. Yo al menos, seguiré este hilo nada más (es imposible ver el progreso si comentas cosas distintas en varios hilos a la vez ) Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#18
|
|||
|
|||
Hola, Lepe. Perdón por escribir en varios hilos, en principio solo pedía información para acceder a unas webs y al final he acabado "duplicando información" Procuraré escribirlo todo en este hilo
Volviendo al tema en cuestión, he hecho todo como tu has dicho: Hice 2 copias del archivo original y edité una de ellas. Lo único que he hecho ha sido cambiarle el color a los iconos, sin cambiarle el nombre a las fuentes ni hacerle cosas raras (sólo sustituir el negro por otro color). He sustituido el archivo en la carpeta de delphi y he reiniciado el programa, pero aún así siguen saliendome en negro. Parece que comentas que hay que recompilarlo o algo así. Quizás sea eso lo que me falte. He intentado abrir el archivo desde delphi pero no puedo. ¿Cómo tendría que compilarlo? ¿Tiene algo que ver el archivo .dcu con el mismo nombre que hay en la carpeta de delphi? Como siempre, muchas gracias por todo |
#19
|
||||
|
||||
Ese archivo DBCtrls.dcu debe ser el culpable. Mándalo a la papelera y desde un proyecto que tenga un DBNavigator dile Project -> Build All.
Si abres el archivo DBCtrls.pas (está en borland\source\win32\db) verás que después de la palabra "implementation" viene "{$R DBCtrls.res}", esta directiva es la que enlaza los iconos existentes en el .res con el código fuente de la unidad DBCtrls.pas Cuando compilas el archivo .pas, Delphi lee el archivo .res, integra los iconos y crea el archivo .dcu (Delphi Compiled Unit) con todo dentro. Ahora mismo tienes el .dcu de la versión antigua del .res, es decir, el compilado tiene los iconos antiguos, y delphi (para no perder tiempo en compilar todos los fuentes de nuevo) lee ese archivo .dcu Si no recuerdo mal, al borrar el .dcu y decirle que rehaga el proyecto por completo, Delphi automáticamente compilará los archivos .pas que no tengan su .dcu correspondiente, por tanto, cogerá los iconos nuevos del .res y creará el .dcu
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#20
|
|||
|
|||
Es posible que mi proyecto compile y ejecute sin existir ningún DBCtrls.dcu? Lo he borrado y le he dado a compilar todo, como me decias, pero no crea la dcu en ningún sitio (lo he buscado a fondo incluso con el buscador de windows y no está en el disco duro). De hecho, al ejecutar mi programa, usa los bitmaps antiguos del navegador...
|
|
|
|