PDA

Ver la Versión Completa : Llamar evento OnClick de un boton desde otro Form


Peterman
16-10-2006, 18:03:47
Perdonad x esta pregunta tan basica, pero no se como ejecutar el procedimiento OnClick de un boton q esta en Form1, y ejecutarlo desde el Form2...

¿Que coño hay q pasarle x parametros: ¡¡¡Sender:TObject!!! ?¿Esto que tipo de objeto es?

Estoy entre dos opciones:

1--> Form1.Boton.Onclick:= ¿? (No se q hay q poner, no se como se activa)

2-->Form1.BotonClick(Sender:TObject) ¿Tampo se q parametro se hace?

Y luego, si quiero hacer que Form1.ShowModal(); ¿lo debería de hacer antes o despues de haber realizado la operacion anterior?

Gracias x vuestra atención!!!

dec
16-10-2006, 18:08:52
Hola,

Utiliza si eso el método "Click" del botón en cuestión.

maeyanes
16-10-2006, 18:09:20
Prueba con:


Form1.Boton.Click;



Saludos...

dec
16-10-2006, 18:14:46
Hola,

Y, por cierto...


¿Que coño hay q pasarle x parametros: ¡¡¡Sender:TObject!!! ?¿Esto que tipo de objeto es?


¿Te refieres al tipo de "Sender"? Pues bien claro está: es de tipo "TObject".

¿Qué clase de tipo es "TObject"? Pues ni más ni menos que la raíz de la jerarquía de objetos en Object Pascal o Delphi, o sea, de él descienden todos los demás objetos directa o indirectamente.

Cuando declaras una clase tal que así...


type
TMiObjeto = class;


En realidad la clase desciende ya del tipo "TObject", es decir, lo anterior es equivalente a esto otro:


type
TMiObjeto = class(TObject);

Neftali [Germán.Estévez]
16-10-2006, 18:26:04
¿Que coño hay q pasarle x parametros: ¡¡¡Sender:TObject!!! ?¿Esto que tipo de objeto es?

Se supone que es quien hace la llamada; Puedes pasar un Self o si no te interesa un nil. Depende de lo que quieras hacer luego.

...si quiero hacer que Form1.ShowModal(); ¿lo debería de hacer antes o despues de haber realizado la operacion anterior?

Si lo haces antes, la otra operación no se ejecutará hasta que no cierres el form, ya que el ShowModal detiene la ejecución del programa en ese punto hasta que se cierra el formulario que estás mostrando modal.

Peterman
17-10-2006, 16:56:49
Bien, parece que funciona bien lo que me habías dicho; ya había probado con la opción que me ha funcionado, pero ponía el comando "OnClick" despues del "ShowModal" y me daba un error...

//Esto es lo que hago desde el Form del que parto(Fprincipal):

FMD.QAlumnos.Open;
FMD.QPermisoAlum.Open; //Abro los Querrys

FAlumnos.BitBInsertarClick(Self); //Esta me funciona, creo...
FAlumnos.ShowModal;


Bueno, ahora me ocurre lo siguiente; en el formulario que se abre en modo insertar (Porque el boton hace eso, poner el Querry en modo Insert),nada mas pinchar en algún BEdit, se me quita el modo Insert(), es como si se refrescara el nuevo form (FAlumnos) y se pusiera todo tal como está.... no se si me explico...

Gracias makinas....

Peterman
17-10-2006, 17:11:22
Pues nada, lo sigo intentado; y ahora me clickea bien el boton desde el otro Form, pero cuando pongo el raton sobre un campo capaz de editar la base de datos por medio de los querys, un DBEdit, o cualquier otro del estilo; el Querry se me sale del modo insertar... Es muy raro!!!

A ver si me podeis ayudar, makinas...

Lepe
17-10-2006, 18:12:31
Tambien he notado ese detalle. El tema consiste en poner el foco en el DBEdit antes de lanzar el modo inserción del Dataset.

Saludos