a ver bueno la verdad no se bien como detallar esto pero hare lo posible, el sistema consta de varios programas todos unidos a un nucleo, contabilidad, remuneraciones, maquinaria, bodega, etc, todos son independientes cada uno con su icono de inicio, la coneccion a los datos es atraves de sql 7 localmente en mipc trabajo con el sql 2000 y con windows xp, el programa para correr, no se demora tanto en cuanto a lo que es ventana principal, ingreso de clave y la aparicion de la ventana principal, pero para llamar aplicaciones desde los menus se demora bastante, esto lo hace cuando va capturar datos a sql con el siguiente codigo que estoy llamando a una ventana en especial que es la que mas demora en abrir
Código Delphi
[-]
procedure TFDM1.empresa;
begin
try
with FDM1.tempresa do
begin
indexname:='PK_empresa';
editkey;
Fieldbyname('codigo_empresa').AsInteger:=cod_emp;
gotokey;
end;
except
showmessage('Error al leer empresa');
end;
end;
procedure TFDM1.DataModuleCreate(Sender: TObject);
var
i:integer;
begin
cod_prg:='Pctb_docgen.exe';
cod_emp:=1;
cod_usu:='root';
ano_ing:=2002;
mes_ing:=2;
for i:= 0 to ParamCount do
begin
if i=0 then
begin
cod_prg:=ExtractFileName(LowerCase(ParamStr(i)));
fec_prg:=datetostr(FileDateToDateTime(FileAge(ParamStr(i))));
end
else
if i=1 then
cod_emp:=strtoint(ParamStr(i))
else
if i=2 then
cod_usu:=trim(ParamStr(i))
else
if i=3 then
ano_ing:=strtoint(ParamStr(i))
else
if i=4 then
mes_ing:=strtoint(ParamStr(i))
else
if i=5 then
nuevo:=trim(ParamStr(i))
else
if i=6 then
graba:=trim(ParamStr(i))
else
if i=7 then
elimin:=trim(ParamStr(i))
else
if i=8 then
imprim:=trim(ParamStr(i))
else
if i=9 then
excel:=trim(ParamStr(i))
else
if i=10 then
nivel:=strtoid(ParamStr(i));
end;
FDM1.database1.Connected:=true;
FDM1.database2.Connected:=true;
FDM1.database3.Connected:=true;
FDM1.tempresa.active:=true;
empresa;
FDM1.testado.active:=true;
FDM1.Testado.indexname:='PK_estado';
ex_estado:=FDM1.Testado.findkey([cod_emp,ano_ing,mes_ing]);
if not(ex_estado) then
begin
showmessage('No existe Estado para año '+inttostr(ano_ing) + ' mes ' + inttostr(mes_ing));
exit;
end;
FDM1.tclacta.Filter:='anopro_clacta='+inttostr(ano_ing);
FDM1.tclacta.Filtered:=true;
FDM1.tcuenta.active:=true;
FDM1.tdocgen.Filter:='tipiet_docgen = '+''''+Uctb_tipiet.docum+'''';
FDM1.tdocgen.Filtered:=true;
FDM1.tdocgen.active:=true;
FDM1.tdocdet.active:=true;
FDM1.tdocgen1.active:=true;
FDM1.tcencos.active:=true;
FDM1.ttipmov.active:=true;
FDM1.TConobj.active:=true;
FDM1.tclacta.active:=true;
FDM1.tconcep.active:=true;
FDM1.tproyec.active:=true;
FDM1.tsujeba.active:=true;
FDM1.testado.active:=true;
FDM1.ttipdoc.active:=true;
FDM1.Trectcp.active:=true;
FDM1.Tparanu.active:=true;
FDM1.Tparser.active:=true;
FDM1.Trecccp.active:=true;
FDM1.Trectcp.active:=true;
FDM1.Tbloqueo.active:=true;
FDM1.Tmnedia.active:=true;
FDM1.Tnumtra.active:=true;
end;
Gracias, espero esto puede servir en algo!