Que tal foristas... mi aplicacion estaba muy bien, me puse a trabajar con HotKey, para poner una tecla de acceso en toda la aplicacion (y total no pude)
y ahora al crear el formulario principal en el fuente del proyecto (.dpr) automaticamente ejecuta el evento OnShow de la Form.
A que se debera eso?
Aqui el codigo... mi Form principal es FMenu, en el OnShow Mando a abrir una Tabla de configuracion y me da un error de acceso negado porque en realidad el DataModule no
esta creado aun.
Alguien por favor que vea el codigo y opine alguna sugerencia.
Código Delphi
[-]
Application.Initialize;
Application.MainFormOnTaskbar := True;
if ReadString_Ini(IniFile, 'Setup', 'ModoVisor','No') = 'No' then
begin
Sem := CreateSemaphore(nil,0,1,'SIHotel.Exe');
if ((Sem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS)) then
begin
CloseHandle( Sem );
MsgError('La Aplicacion ya se está ejecutando!!!');
Application.Terminate;
Exit;
end;
end;
FSplash := TFSplash.Create(Application);
FSplash.Show;
FSplash.Update;
Application.Title := 'Sistema de Información de Hotel';
Application.CreateForm(TFMenu, FMenu);
FSplash.Gauge.Position := 30;
FSplash.Update;
try
FSplash.Gauge.Position := 50;
FSplash.Update;
Application.CreateForm(TTablas, Tablas);
except
on E: Exception do
begin
MsgError('Se produjo el siguiente error al crear el modulo de datos'#13+
'**** '+E.Message+'****'#13+
'Esto provoca que no se pueda iniciar,'+
'Si el problema persiste, llamar al soporte');
Application.Terminate;
end;
end;
FSplash.Gauge.Position := 50;
FSplash.Update;
Application.CreateForm(TFVentaRapida, FVentaRapida);
FSplash.Gauge.Position := 60;
FSplash.Update;
Application.CreateForm(TFBuscaCliente, FBuscaCliente);
FSplash.Gauge.Position := 70;
FSplash.Update;
Application.CreateForm(TFAutorizacion, FAutorizacion);
FSplash.Gauge.Position := 80;
Application.CreateForm(TFEntradaSalida, FEntradaSalida);
FSplash.Update;
FSplash.Gauge.Position := 90;
Application.CreateForm(TFDevueltaEfectivo, FDevueltaEfectivo);
FSplash.Update;
FSplash.Gauge.Position := 95;
Application.CreateForm(TFEstadosClientes, FEstadosClientes);
FSplash.Gauge.Position := 97;
Application.CreateForm(TFCambioHabitacion, FCambioHabitacion);
FSplash.Hide;
FSplash.Free;
Application.Run;