Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error al cargar datos en un formulario MDI hija (https://www.clubdelphi.com/foros/showthread.php?t=62295)

El_Chava 15-12-2008 21:36:08

Error al cargar datos en un formulario MDI hija
 
hola amigos del foro esperando que se encuentren bien vengo de nuevo en su ayuda con un problema que tengo y es el siguiente.
actualmente estoy desarrollando un sistema en el cual utilizo firebird 1.5 + delphi 7 y tengo mi formulario padre y sus hijas respectivamente debo aclarar que anteriormente no venia trabajando con MDI si no como SDI. bueno el caso es que al momento de querer visualizar una form hija en este caso el catalogo de articulos me muestra el siguiente error:


Código Delphi [-]
Código Delphi [-]

---------------------------
Debugger Exception Notification
---------------------------
Project Sistema.exe raised exception class EAccessViolation with message 'Access violation at address 0056A582 in module 'Sistema.exe'. Read of address 00000330'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help 
---------------------------




ese error me lo muestra al tratar de cargar los datos el cual utilizo el siguiente procedimiento para visualizarlos


Código Delphi [-]
Código Delphi [-]
procedure llenar_campos;
begin
FrmCatalogoArticulos.txtCodigo.Text := dm.taArticulos.fieldByName('CODIGO').AsString;
FrmCatalogoArticulos.txtDescripcion.Text := dm.taArticulos.fieldByName('DESCRIPCION').AsString;
FrmCatalogoArticulos.txtPrecio.Text := FormatCurr('"$ " ###,###,##0.00',dm.taArticulos.fieldByName('PRECIO').AsCurrency);
FrmCatalogoArticulos.txtCantidadMin.Text := dm.taArticulos.fieldbyname('CANTIDADMIN').AsString;
FrmCatalogoArticulos.txtCantidadMinimp.Text :=dm.taArticulos.fieldbyname('CANTIDADMINIMP').AsString;
FrmCatalogoArticulos.txtPagina.Text := dm.taArticulos.fieldbyname('PAGINA').AsString;
FrmCatalogoArticulos.statusbar.Panels[1].Text := 'Registro '+IntTostr(dm.taArticulos.RecNo)+ ' de ' + IntToStr(dm.taArticulos.RecordCount);
FrmCatalogoArticulos.statusbar.Panels[2].Text := dm.taArticulos.FieldByName('codigo').AsString;
end;



este procedimiento lo mando llamar en el evento onshow de la forma



Código Delphi [-]
Código Delphi [-]
 
procedure TFrmCatalogoArticulos.FormShow(Sender: TObject);
begin
dm.taArticulos.Active := true;
statusbar.Panels[0].Text :='Consultando';
dm.taArticulos.Last;
dm.taArticulos.First;
if dm.taArticulos.RecordCount > 0 then
begin
statusbar.Panels[1].Text := 'Registro '+IntTostr(dm.taArticulos.RecNo)+ ' de ' + IntToStr(dm.taArticulos.RecordCount);
statusbar.Panels[2].Text := dm.taArticulos.FieldByName('codigo').AsString;
llenar_campos;
end
else
begin
statusbar.Panels[1].Text := '0 de 0';
statusbar.Panels[2].Text := 'El catalgo no contiene registro de articulos';
end;
end;


antes de trabajar con MDI no me arrojaba ningun error al visualizar el formulario. ojala me puedan ayudar y de antemano muchas gracias por tomarse el tiempo de leerlo.

El_Chava 16-12-2008 00:15:19

Que onda amigos del foro tratando de resolver el problema que se presenta hice una prueba la cual lo que hice fue que en vez de llamar al procedimiento de llenar campos en el evento OnShow del formulario probe lo siguiente

Código Delphi [-]
procedure TFrmCatalogoArticulos.FormShow(Sender: TObject);
begin
dm.taArticulos.Active := true;
statusbar.Panels[0].Text :='Consultando';
dm.taArticulos.Last;
dm.taArticulos.First;
if dm.taArticulos.RecordCount > 0 then
begin
statusbar.Panels[1].Text := 'Registro '+IntTostr(dm.taArticulos.RecNo)+ ' de ' + IntToStr(dm.taArticulos.RecordCount);
statusbar.Panels[2].Text := dm.taArticulos.FieldByName('codigo').AsString;
//llenar_campos;
txtCodigo.Text := dm.taArticulos.fieldByName('CODIGO').AsString;
txtDescripcion.Text := dm.taArticulos.fieldByName('DESCRIPCION').AsString;
txtPrecio.Text := FormatCurr('"$ " ###,###,##0.00',dm.taArticulos.fieldByName('PRECIO').AsCurrency);
txtCantidadMin.Text := dm.taArticulos.fieldbyname('CANTIDADMIN').AsString;
txtCantidadMinimp.Text :=dm.taArticulos.fieldbyname('CANTIDADMINIMP').AsString;
txtPagina.Text := dm.taArticulos.fieldbyname('PAGINA').AsString;
end
else
begin
statusbar.Panels[1].Text := '0 de 0';
statusbar.Panels[2].Text := 'El catalgo no contiene registro de articulos';
end;
end;
lo cual no me manda el mensaje de error antes mencionado y ya que se termina de cargar el formulario y utilizo el procedimiento llenar_campos mas adelante ya no me da ningun error creo que esa seria la solucion por el momento de todas maneras muchas gracias por leer mi mensaje bye


La franja horaria es GMT +2. Ahora son las 23:51:49.

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