![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola a todos,
Tengo delphi 2007 y estoy realizando un programa el cual posee muchas lineas de codigo, por ahi lei que seria mejor utilizar otra UNIT en la cual divido el codigo, mi pregunta es ¿Como puedo capturar un evento (OnClic por ejemplo) hecho en otra unidad? lo he intentado pero a pesar que la coloco en la clausula uses no me aparece como opcion para incluirla en un evento OnClic de un TButton. Gracias de antemano |
#2
|
||||
|
||||
Cita:
Un ejemplo. Form1:
El ejemplo supone que Form2 no está en Auto create form y que, lógicamente en Form2 existe un TButton llamado "Button1". Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-08-2013 a las 02:00:56. |
#3
|
||||
|
||||
Si lo eventos no se van a reutilizar, aunque se pueda modular el código y llevar código a otras Units, precisamente lo eventos no es lo que deberías llevarte, al menos en mi opinión.
Y si es un código que se va a reutilizar, aún así hay opciones mejores que sacar los eventos de la unidad del formulario. Entre esas opciones, modula el código y llama desde los eventos a esas funciones y procedimientos. Si asocias eventos de forma dinámica a tus componentes, puedes ser que si te interese tener estos eventos en una unidad concreto. Mi consejo, si lo aceptas, es que reflexiones sobre cual es tu caso y ver si realmente te interesa llevarte los eventos a otras unidades, hay mucho código exportable a otras unidades y, precisamente, los eventos no son el mejor ejemplo. Un saludo.
__________________
La Madurez se llama... ~~~Gaia~~~ |
#4
|
|||
|
|||
muchas gracias por su colaboracion,
Les comento que los eventos que deseo realizar aparte los deseo hacer en una unidad aparte (File -> New -> Unit) la cual solamente posee: Y ahi deseo realizar los eventos pero todo en tiempo de diseño, como por ejemplo que quedara en el evento OnClic del TButton en el Form1 algo asi Unit1.Click, no se que se deba colocar en Uses, piensoi que ahi esta el asunto.... |
#5
|
|||
|
|||
Utilizar eventos de otra Unit
Hola a todos,
Tengo Delphi 2007 y tengo un programa con mas de 1000 lineas de codigo, deseo realizar los eventos en otra unidad (File -> New -> Unit) ![]() y poder asignarlos a los componentes de mi formulario principal en tiempo de diseño, como por ejemplo en el evento OnClick de un TButton ![]() en la imagen en vez de Button1Click deseo que quede algo como Unit2.ButtonClick. Sera que se puede esto????? se que se debe colocar en USES la UNIT2 mas no se que se debe colocar de mas para pueda realizar esto. Gracias por su colaboracion |
#6
|
||||
|
||||
Hola Jose Roman.
Por favor, tál como sugiere el punto 6 de la guía de estilo, no crees otro hilo con el mismo tema, continua con el inicial. Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
mil disculpas, como veo que no me habian entendido realice una nueva pregunta pero con mas detalle
|
#8
|
|||
|
|||
Hola gracias por tu respuesta pero en la nueva unidad no hay form utilizo la opcion (File -> New -> Unit) de ahi es que hago la unidad y deseo crear los procedimientos
|
#9
|
||||
|
||||
Hola Jose Roman.
Por lo que entiendo de tu imágen, deseas asignar en tiempo de diseño, desde el Object Inspector, el evento correspondiente a un TButton residente en otro formulario. Hasta donde sé, eso sólo es posible mediante código de forma similar al ejemplo que te puse en el mensaje anterior. Pero desconozco si en las últimas versiones de Delphi es posible. Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
|||
|
|||
![]() Hola ecfisa,
Tienes toda la razon me pase buscando por distintos sitios y despues de unas horas y dentro del Object Inspector no se puede. Te agradezco tu ayuda porque eso me dio una luz para realizardo por el lado que tu propones. |
#11
|
||||
|
||||
Ok Amigo Jose Roman, No es posible hacer lo que dices de forma directa, como dice ecfisa, se logra por codigo...
Sin embargo creo que te estas centrando en una solución que no es adecuada para tu problema... apoyo lo que dice ozsWizzard, sobre replantear tu estrategia y modular el código... Tu problema es: Un programa con muchas lineas, no es un evento en otra unidad. No se cuanto conozcas de objetos, pero aprender sobre ellos es un buen camino para mejroar tu codigo. El problema es que normalmente teienes en tu pantalla principal toda la logica de tu aplciacion y en cada boton, tenes toda la logica de un proceso... La mejor práctica es solo hacer llamadas desde tu GUI a código definido en otras unidades agrupadas por funcioanlidad o mejor, convertidas en clases... De esta forma, tu boton debería tener codigo sencillo como: Procedure BotonClick(Sender:TObject); Begin Factura.Inicializar; Factura.item.add(...); Factura.Aplicar; end; La lógica de como se inicializa, cómo se agrega y como se aplica una factura está definida en otra parte... tu boton solos e encarga de recoger la información de la pantalla y pasarla a tu otra unidad o clase... Un saludo, |
#12
|
|||
|
|||
Gracias por la respuesta,
Te comento que lo que he aprendido practicamente autodidacta y para completar aqui en Colombia no enseñan este maravilloso lenguaje, tienen un ejemplo de lo que comentan porque como veo el planteamiento propuesto por ecfisa y usted me ayudan, les comento que cada click que doy en un TButton no las muestro en un TForm, lo hago en un TTabSheet de un TPageControl pero ello me ha llevado a que haya muchas lineas de codigo y deseo que sea mas legible para un futuro si necesito realizar alguna modificacion. Gracias Última edición por Jose Roman fecha: 21-08-2013 a las 19:37:33. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
DBGrid y otras | asdbernardo | Varios | 5 | 05-10-2011 00:34:21 |
¿Filas de 1 color y otras de otras En Synedit IDE Delphi? | JXJ | Varios | 1 | 11-12-2008 00:01:28 |
Mi servidor no ve las otras pc´s | mefixxto | Redes | 2 | 03-10-2008 16:51:06 |
Monitorear eventos de otras aplicaciones | Marco A. Ruiz | API de Windows | 0 | 22-08-2006 21:41:59 |
Ayudas para el uso de las unit Excel2000 y otras del Office | Rpabreu | Servers | 0 | 07-08-2005 03:14:39 |
![]() |
|