PDA

Ver la Versión Completa : Form Autocreados al inicio...


verito_83mdq
28-01-2011, 14:47:12
Holaaa!! Como andan?? Acá me surgió una duda, quería saber si es posible tener solamente a un DataModule en AutoCreate.

El asunto es que en ese DataModule tengo al Zconnection y dependiendo si hay conexión o no, voy a llamar a diferentes form.

Si hay conexión llamo al form login en el cual me logeo y entro al sistema y si no hay conexión llamo a otro form en el cual puedo ingresar los datos del Zconexion.

El problema que me surge es que compila bien la aplicación pero cuando ejecuto inicia no se ve nada y termina, sin ningún error.

Por eso me surgió esa duda. Si necesitan código me dicen y agrego.
Desde ya muchas Gracias!!!!:)

Aleca
28-01-2011, 15:27:41
creo que te va convenir crearlo en el oncreate del formulario principal.

verito_83mdq
28-01-2011, 15:53:07
Hola Alecaa!! Como andas?? Primero gracias por ayudarme siempre, segundo lo hice andar. Agrego el código para que lo vean, tengo miedo de que me genere problemas,pero por ahora me anda bien.

Este el el Dpr el pp, lo que hace es mostrar un spash, despues me carga los dos Modulos, el de la base , y el de los Query.

begin


SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Application.Initialize;
Application.Title := 'SiTiC';
Application.CreateForm(TBaseDataModule, BaseDataModule);
Application.CreateForm(TQueryDataModule, QueryDataModule);
SplashForm.Hide;
SplashForm.Free;
Application.Run;


end.


Despues en el Form Create del Base Module tengo este codigo: si anda la conexión me crea el login y sino me manda a otro form para cambiar los datos del Zconex.
Lo que cambie para que ande es:

Esto IngresoForm:=TIngresoForm.Create(Application);


Por esto
Application.CreateForm(TIngresoForm, IngresoForm)


Acá se puede apreciar:

procedure TBaseDataModule.DataModuleCreate(Sender: TObject);
begin

with BaseDataModule.ZConnection1 do
begin
If Connected then Disconnect;
HostName:='localhost';
Catalog:='base';
Database:='base';
Port:=3306;
User:='root';
Password:='123';
try
Connected:=True;
if Connected = true then
begin
Application.CreateForm(TIngresoForm, IngresoForm);

end;

except

Application.CreateForm(TConexionForm, ConexionForm);

end;

end;


end;

end.


La duda es: cual es la diferencia entre estas dos Sentencias??

IngresoForm:=TIngresoForm.Create(Application);


Application.CreateForm(TIngresoForm, IngresoForm)


Desde ya muchas Gracias!!!!!!

Chris
28-01-2011, 16:10:06
No hay ninguna diferencia. Simplemente son distintas formas de programar.

Saludos,
Chris