FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
espero no caer espeso pero quisiera hacer esto:
y si con la misma funcion quisiera habilitar el edit1 del form2?? |
#2
|
|||
|
|||
Bueno, el ejemplo que te puse es precisamente para habilitar el Edit del form2, que quiere decir esto, bueno, si tu quieres habilitar algun edit de otro form debes indicarle el form que le corresponde.
Por eso te decia que es el mismo tratamiento que debes de hacer. Bienvenido al foro, como es costumbre te invito a leer la guia de estilo y la otra guia de estilo, espero disfrutes ser miembro de este club. Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#4
|
||||
|
||||
Yo al menos eso no lo haría así. Si un procedimiento pertenece a un Form, debe actuar sólo sobre ese Form.
Tienes 2 formas de hacerlo, desde mi punto de vista: 1- Creando una unidad nueva. - File -> New -> Unit, allí declaras la función y su implementación. Ya es una rutina que no pertenece a ningún Form, pero puedes usarla donde quieras. La Unidad puede llamarse Global.pas, publica.pas, etc. Allí colocas todas las rutinas que sean comunes a varios Forms.2 - Usando Herencia: - Creas un Form vacío, le añades la rutina "Habilitar" y lo que debe hacer. Lo llamas BaseForm.PasSaludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
|||
|
|||
Cita:
Saludos.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#6
|
||||
|
||||
Bueno. a ver
Siento que se les paso algo o yo no entendi bien pero, aqui esta mi aportación:
Bueno primero creo que se les olvido colocar en el Form2 en la parte de
En el form1 tenemos:
Despues tenemos:
Despues en el Form2 para llamar al Form1.habiilitar () desde el el Form2 teniendo en cuenta, de que podemos acceder al procedimiento dado a que tenemos en Él uses Unit1; podemos hacer esto:
SALUDOS Última edición por joHn je@N fecha: 01-03-2007 a las 10:46:13. |
#7
|
||||
|
||||
Es cierto, precisamente por eso no lo comentamos.
En Unit1 tienes que hacer un "uses Unit2". En Unit2 tienes que hacer "uses Unit1", ¿por qué no intentas hacerlo en parte interface? Verás que delphi te dice que no se permiten referencias circulares. Dentro de un tiempo, cuando olvides como funciona el programa irás a ver qué hace el código, de la unidad 2 hace un Enable a la 1, de la 1 se hace un Enable de la 2 y.... ¿qué hago en el mismo punto de partida? ¿cual de las 2 rutinas es la que tiene preferencia ?.... Este tipo de confusiones son las que hay que evitar en la medida de lo posible. Mirando el código fuente de delphi, verás que una clase (como lo es un Form) jamás modificará el comportamiento de otra clase ajena así por las buenas. Si ha de hacerlo se buscan métodos, propiedades o eventos mediante los cuales se informan esos cambios. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
||||
|
||||
Cita:
|
#9
|
||||
|
||||
Cita:
Mira, la herencia (en su concepto más simple) es una característica o propiedade que posee una clase de heredar el comportamiento y estructura de una clase padre. Por ejemplo si tu tienes una clase llamada Animal que cuenta con las propiedades Nombre y Tamaño (por poner un ejemplo) y un procedimiento que Mover, y tienes una clase basada en Animal (por poner un ejemplo... Gato), está segunda clase hereda todo lo común a la clase Animal y se le añade lo PROPIO o lo que le corresponde a Gato, por poner ejemplo: propiedad Color de Cola, y el procedimiento Arañar. Un poco de código:
¿Que se consigue con esto? que gato tenga el mismo comportamiento de un animal pero ESPECIALIZADO para algo más particular. La clase gato también tiene las propiedades tamaño y nombre y el procedimiento mover... y esto lo hereda de su padre (Animal). Ahora... hay ocasiones en que es necesario redefinir el comportamiento de la clase padre... Por poner un ejemplo (siguiendo el anterior): Todos los animales pueden moverse, pero no todos los hacen de igual manera. Por tanto, si el procedimiento Mover de la clase Animal es único... todos los animales van a moverse igual... como se consigue esto.... con las cláusulas protected, y override (también no hay que olvidar los casos de asbtract y virtual) que señalaron Lepe y otros. Cuando se desea que un procedimiento o función tenga una "sobrecarga", o redefinición... en la clase padre se lo introduce bajo la clausura protected (protegida).
Y en la clase hija (Gato) la clausura override, que indica que se va a sobreescribir el comportamiento. Esto hace que el compilador implemente el procedimiento adecuado a la clase.
Este tema puede continuar... y no basta un hilo para explicar todo lo que es POO. Como dije antes... Puedes leer la Cara Oculta de Delphi 4, allí hay un capítulo entero dedicado a POO. Es muy sencillo de entender... espero haberte ayudado en algo, Saludos, |
#10
|
||||
|
||||
Si quieres una solución rápida:
Crea una nueva clase diagamos "TFormTool" del tipo TObject Crea un método "EnableControl(aComponent:TComponent); En el metodo EnableControl pones lo que quieras hacer con el componente que le pases. Guarda la unidad. Ahora puedes usar este control para manipular cualquiera de las forms que mencionas, solo tendrias que instanciar el objeto antes de abrir cualquiera de las dos forms o bien instanciarlo dentro de cada form. Da lo mismo. Es decir nuestra clase FormTool podrá manipular forms según necesites sin necesidad de saber que contienen ni de que son.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como usar los formularios MDI, constructores de componentes | Narlohe | OOP | 3 | 11-12-2006 10:54:10 |
¿Cómo crear una DLL con varios formularios? | Javi2 | Varios | 3 | 25-05-2006 10:35:06 |
usar botones y etiquetas de flash en los formularios?? | nidia | Gráficos | 1 | 25-11-2005 01:51:09 |
Obtener varios registros de Stored Procedure | Phacko | Firebird e Interbase | 6 | 19-08-2005 17:56:43 |
CTRL-P en varios formularios | magm2000 | Varios | 2 | 20-10-2004 09:38:09 |
|