Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Evento OnPaint (https://www.clubdelphi.com/foros/showthread.php?t=92512)

Rc96 16-11-2017 16:03:51

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.

roman 16-11-2017 16:18:43

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

Rc96 16-11-2017 16:28:27

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 :eek: :confused: cosa que en el onPaint no me da.


La franja horaria es GMT +2. Ahora son las 01:06:18.

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