Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2017
Rc96 Rc96 is offline
Miembro
 
Registrado: ago 2017
Posts: 75
Poder: 7
Rc96 Va por buen camino
Question Evento OnPaint

Buenos dias veran hace unos dias llevo presentando un problemita que no se si es normal o es un error xD el caso es que cuando ejecuto el Report Builder con la sentencia
Código Delphi [-]
ppReport.print
para imprimir el reporte del sistema me pide iniciar sesion del usuario (PARA ELLO USO EL COMPONENTE USERCONTROL) y la verdad es que es muy molesto. Lo extraño es que en el evento OnPaint del formulario principal es donde llamo el modulo de iniciar seccion. Osea literalmente es como si al dar clic para ver el reporte ejecutara el evento OnPaint del formulario principal. Espero sepan algo y puedan ayudarme.
Responder Con Cita
  #2  
Antiguo 16-11-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, es que el evento OnPaint es el menos adecuado para poner código como el que mencionas. El evento OnPaint, como su nombre indica, se ejecuta cada vez que el S.O. necesita pintar la ventana, lo cual sucede muchas veces.

En todo caso, el evento OnShow del formulario sería más adecuado, aunque, para inicio de sesión, lo mejor sería un formulario que se abra antes del formulario principal.

LineComment Saludos
Responder Con Cita
  #3  
Antiguo 16-11-2017
Rc96 Rc96 is offline
Miembro
 
Registrado: ago 2017
Posts: 75
Poder: 7
Rc96 Va por buen camino
Hola roman si tienes razon pero el problemita que tengo es que al colocar mi codigo en el onShow que es el siguiente
Código Delphi [-]
procedure Tfrmvp.FormShow(Sender: TObject);
  var
  DriverID,DB,User,Pass,Server,Port: String;
begin
//Se obtinen los parametros de conexion del archivo .INI y se conecta a la base de datos
 if FileExists('ConexionBD.ini') then
 begin
    FDPhysPgDriverLink1.VendorLib:='libpq.dll';
    FDConnection1.Params.Clear;
    FDConnection1.Connected:=false;
    FDConnection1.Params.DriverID:='PG';
    Conexion:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'ConexionBD.ini');
     with Conexion do
   begin
    DB:= Conexion.ReadString('Conexion', 'DataBase', '');
    User:= Conexion.ReadString('Conexion', 'User_Name', '');
    Pass:= Conexion.ReadString('Conexion', 'Password', '');
    Server:= Conexion.ReadString('Conexion', 'Server', '');
    Port:= Conexion.ReadString('Conexion', 'Port', '');
   end;
      with Conexion do
   begin
    FDConnection1.Params.Add( 'Server=' + Server  );
    FDConnection1.Params.Database:=DB;
    FDConnection1.Params.UserName:=User;
    FDConnection1.Params.Password:=Pass;
    FDConnection1.Connected:=True;
   end;
   Usercontrol1.Logoff;
 end
 else
 begin
//  {En caso de no existir ConexionBD.ini}
  if FileExists('Orig_ConexionBD.ini') then
  begin
    FDPhysPgDriverLink1.VendorLib:='libpq.dll';
    FDConnection1.Params.Clear;
    FDConnection1.Connected:=false;
    FDConnection1.Params.DriverID:='PG';
    Conexion:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'Orig_ConexionBD.ini');
     with Conexion do
   begin
    DB:= Conexion.ReadString('Conexion', 'DataBase', '');
    User:= Conexion.ReadString('Conexion', 'User_Name', '');
    Pass:= Conexion.ReadString('Conexion', 'Password', '');
    Server:= Conexion.ReadString('Conexion', 'Server', '');
    Port:= Conexion.ReadString('Conexion', 'Port', '');
   end;
      with Conexion do
   begin
    FDConnection1.Params.Add( 'Server=' + Server  );
    FDConnection1.Params.Database:=DB;
    FDConnection1.Params.UserName:=User;
    FDConnection1.Params.Password:=Pass;
    FDConnection1.Connected:=True;
   end;
   Usercontrol1.Logoff;
  end
  else
  begin
//  {Se mostrara el modulo de conexion de la base datos
//   en caso de no existir el archivo .ini}
   ShowMessage('BIENVENIDO');
   FrmConfig.ShowModal;
  end;
 end;

end;

Veras cuando existe el archivo ini con los parametros de conexion todo bien pero cuando no existe deberia mandarme al formalario donde especifico los parametros pero me sale este error https://ibb.co/njbktR cosa que en el onPaint no me da.

Última edición por Casimiro Notevi fecha: 16-11-2017 a las 18:16:39.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con drag and drop y con OnPaint astwin OOP 10 11-05-2011 20:48:53
Crear escala en ONPAINT.??? vagobiker Gráficos 12 07-05-2011 16:02:40
Llamar evento desde otro evento nachito_tuc OOP 1 23-08-2006 22:37:43
Problemas con evento OnPaint martha1982js API de Windows 4 14-07-2006 18:02:02
Diferencias entre OnActivate y OnPaint FunBit OOP 4 02-09-2005 17:40:22


La franja horaria es GMT +2. Ahora son las 21:12:26.


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
Copyright 1996-2007 Club Delphi