![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Que el compañero describa el objetivo final de lo que desea programar.
![]() ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#2
|
|||
|
|||
|
Hola Al
efectivamente es solo un tema visual porque lo que realmente se requiere es darle facilidad al usuario , aca en ecuador los precios de los productos se graban con el iva incluido y por comodidad del usuario y evitar poner en mi pantalla mas objetos quería implementar esta opción q vi en otro aplicativo pero muy aparte de ello se me presenta la duda mas profunda es como acceder al valor de un campo sin darle enter no se si me logro hacerme entender ya logre hacerlo con un edit.text usando una chapuza (en el evento onchange le asigno el valor del edit.text a una variable y luego en su propiedad onkeypres divido la variable utilizada para el valor q sea pero sigo sin entender como tomar el dato de un campo de la base de datos sin utilizar estos artificios utilizo los componentes jfcontrols , le he escrito a soporte técnico y me respondieron lo siguiente Cita:
__________________
IVAND Última edición por ecfisa fecha: 27-09-2016 a las 05:48:21. |
|
#3
|
||||
|
||||
|
Hola Iván.
Si tuviera que volver al área de las interfaces de usuario, probablemente yo diseñaría esa pantalla de otra manera. Sin embargo, recordando algo acerca de los data links, decidí escribir una pequeña prueba que puede servirte. Todos los controles data-aware poseen en su interior un objeto que sirve como enlace entre el control (en este caso un DBEdit) y el componente DataSource asociado. Dicho objeto es el DataLink —enlace de datos— del control. Usando el depurador, poniendo sencillos puntos de ruptura en algunos eventos, puedes darte cuenta de que cuando un componente DBEdit pierde el foco, éste llama a un método de nombre UpdateRecord de su objeto interno DataLink. Dentro de la llamada a UpdateRecord se realiza la validación del texto capturado en el DBEdit y la asignación de ese texto al respectivo campo TField (que existe aunque no sea persistente). Parece entonces que llamar al método UpdateRecord del enlace de datos desde tu manejador de eventos OnKeyPress podría ser más que útil. Pero desafortunadamente estos enlaces de datos están declarados de forma privada en la mayoría de los controles data-aware. No obstante, es posible acceder a ellos mediante la lista DataLinks del objeto DataSource asociado. Esta lista contiene los enlaces de datos de todos los controles de captura que emplean el objeto DataSource en cuestión para leer o escribir el contenido de uno o más campos. Al ser TDataSource.DataLinks una propiedad protegida, y no privada, podemos acceder a ella de forma segura mediante el clásico truco de definir una hipotética clase hija TDataSourceAccess, o de forma segura y además elegante mediante un ayudante de clase. Considerando que la necesidad de acceder a las instancias TDataLink puede ser algo eventualmente necesario en tus desarrollos, podrías definir un ayudante como el siguiente en tu biblioteca personal: Lo anterior en esencia es equivalente a añadir un nuevo método público, de nombre FieldDataLink, a la clase TDataSource, pero sin modificar la unidad donde esta clase nativa se encuentra. FieldDataLink se encarga de buscar el objeto de clase TFieldDataLink que pertenezca a un control de captura dado —parámetro AComponent—. Con él, esta vez sí podrías llamar al método UpdateRecord desde el manejador de eventos OnKeyPress, como aparece en este ejemplo (ds1 es el DataSource, edPrice el DBEdit y da1 es el DataSet de almacenamiento): De este modo conseguimos que el texto introducido en el control data-aware se procese hacia el campo que se captura, antes de realizar alguna operación que necesite del campo actualizado. NOTA: En caso de no contar con una versión de Delphi que soporte ayudantes de clases, puedes conseguir lo mismo con una clase TDataSourceAccess hija de TDataSource, poniendo en ella el nuevo método y accediendo a este mediante un molde de tipo sobre el DataSource. Un truco ya bastante conocido. Y de no estar soportado el For-In en tu compilador, esa parte del código puede usar un For normal. Puede que esta no sea la solución más concisa, pero es similar a lo que yo haría si quisiera lograr lo mismo que tú. Un abrazo más impuestos. Al González. ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. Última edición por Al González fecha: 27-09-2016 a las 07:45:22. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Generar XML y validar si el dato es numerico | alejozd | Varios | 4 | 20-06-2015 00:59:44 |
| Validar Dato DBGRID en tiempo de ejecución!! | juliannemiro | Varios | 10 | 15-02-2012 14:49:49 |
| Validar registro antes de insertar | Moparova | SQL | 10 | 30-10-2008 16:11:42 |
| Elaborar Clase Para Validar Un Dato De Un Edit | sdiaz1983 | Varios | 7 | 17-03-2008 15:16:36 |
| asegurarme que un dato es integer o fecha antes de guardarlo | Giniromero | Conexión con bases de datos | 1 | 15-11-2007 14:22:56 |
|