Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Errores con mi formulario de acceso.... (https://www.clubdelphi.com/foros/showthread.php?t=42477)

Kenobi 15-04-2007 20:36:43

Errores con mi formulario de acceso....
 
el primer mensaje lo reedite, porque la verdad daba pena por lo largo, esta mas abajo,

gracias por su ayuda....

Neftali [Germán.Estévez] 16-04-2007 10:59:03

La verdad me es muy difícil leer tu mensaje.
Yo te recomendaría que leyeras la Guía de Estilo de los foros y que utilizaras TAG's en los mensajes cuando coloqes código Delphi.

Prueba a eliminar el Application.Terminate y dejar que la aplicación acabe por sí sóla. Creo que la estás forzando a terminar antes de que se p`rocesen todos los mensajes que hay en la cola.

Kenobi 16-04-2007 15:12:57

Cierto lo que dices..
 
la verdad me faje a escribir, cosa de ser explicito, pero al final cuando envie me di cuenta que era larga la pregunta, no necesito la guia de estilos (creo) porque el sentido comun me basta para saber que esta largo y confuso y por eso me disculpo con todos, pero lo de los tags eso si lo desconozco, me alegro que haya sido un usuario avanzado como usted el que respondio porque la verdad revise en otros hilos y veo que lo estoy haciendo bien, por ende no entiendo que pasa ....

Resumo....
desde la unidad principal ejecuto el codigo de antes, que llama a un form modal donde meto usuario y clave, con esos valores llamo a una consulta con parametros, si encuentra el valor el form devuelve modalresult=mrok, Si no mrcancel y en ese caso application.terminate, tambien devuelve mrcancel si por ejemplo el usuario cierra la ventana, yo lo veo bien

ahora el orden de creacion de los forms es asi

primero el modulo de datos.
luego dinamicamente el form de clave.
si mrok el resto de los modulos ......

yo lo veo bien ayuda please.....

Kenobi 16-04-2007 15:17:16

corrijo el primer mensaje....
 
Tengo varios fomrs creados con sus controles
tengo un datamodulo con sus tablas....

y en la unidad pricipal este es el codigo ....

Código Delphi [-]
Application.Initialize;
Application.Title:='Mi proyecto';
Application.CreateForm(TDataSir, DataSir);
frmClave:=TFrmClave.Create(Nil);
if FrmClave.ShowModal=1 then
begin
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TFrmprimero, Frmprimero);
Application.CreateForm(TFrsegundo, FrmSegundo);
.
Application.Run;
end
else Application.Terminate;
end.
como se ve esta rutina llama a un form modal en el que ingreso la clave y el usuario.....

el formClave que llamo de forma modal tiene dos tedit con las que coloco el usuario y la clave
para luego ejecutar la consulta.....

Código Delphi [-]
procedure TFrmClave.BtnIngresarClick(Sender: TObject);
begin

c_usuario.Close;
C_usuario.Params.ParamValues['ValUsuario']:=TxtUsuario.Text;
C_usuario.Params.ParamValues['Valclave']:=Txtclave.Text;
C_usuario.Open;

if not C_usuario.Eof then modalresult:=mrok
else modalresult:=mrCancel;

end;

como se ve lo que hago es lanzar una consulta con dos parametros y si devuelve al menos un resultado (no eof) entonces entro si no se lanza el application.terminate

en caso de que el usuario cierre la ventana

Código Delphi [-]
procedure TFrmClave.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
modalresult:=mrCancel;
end;
ASI PUES ME SALE EL SIGUIENTE ERROR(EN UNA VENTANITA)

Proyect Miproyecto raised exception class
EAccessViolation with message 'Access Violation
ata address 00672377 in module 'Miproyecto' read
of address 00EF1908'. Proyect stopped

Y ME COLOCA EN LA SIGUIENTE RUTINA OLEDBACcess(EL DEPURADOR)

Código Delphi [-]
procedure TOLEDBConnection.Disconnect;
begin
if FConnected then begin
if FIDBInitialize <> nil then
FIDBInitialize.Uninitialize;// ESTA LINEA....................

ReleaseInterfaces;

FConnected := False;
FreeAndNil(FColumnsMetaInfo);
FreeAndNil(FColumnsRowsetFieldDescs);
end;
end;
LA VERDAD NO SE QUE ES LO QUE HAGO MAL ACA ....

AGRADEZCO SU AYUDA O ALGUN METODO ALTERNATIVO DE HACER UN FORM PARA CLAVE QUE ENTRE O NO A LA APLICACION SEGUN LOS DATOS SUMINISTRADOS....

Kenobi 17-04-2007 17:11:02

sigue el error....
 
hice lo que me recomendaron, quite la linea application.terminate, y sigue el error, por un lado pense que era el acceso via consulta a la tabla USUARIOS pero no es eso, porque quite esa declaracion y cambie por variables locales,

Código Delphi [-]
if  (TXT1.text='Usuario')and(TXT2.Text='Clave') then ModalResult:=1 
                                                                else ModalResult:=mrcancel;

y sigue el problema es como que no se puede gestionar formularios modales desde la unidad principal.... O NO.....

estoy pensando llamar al form clave desde el form principal ya creado pero no creo que este truco sea muy elegante(digo yo) preferiria hacerlo como estoy planteando sera que alguien sabe la solucion....
please help......


La franja horaria es GMT +2. Ahora son las 00:58:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi