PDA

Ver la Versión Completa : Error al cargar datos en un formulario MDI hija


El_Chava
15-12-2008, 21:36:08
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 [-] (http://www.clubdelphi.com/foros/#)


---------------------------
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 [-] (http://www.clubdelphi.com/foros/#)

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 [-] (http://www.clubdelphi.com/foros/#)


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


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