Buenas a tod@s!! Vereis tengo un treeview en el que tengo 4 items,son los nombres de 4 tablas que tengo en paradox.
Cuando le doy a la 1º tabla quiero cree Tchecks en tiempo de ejecucion para cada campo de la tabla, hasta ahi todo bien, tengo otro procedimiento que libera de memoria todos los checks de el srollbox para que cuando le de a otro item(nombre de otra tabla) libere de memoria el srollbox y pueda crear los nuevos Tchecks de esta tabla elegida, entonces cuando ejecuto y le doy a una tabla(la 2º que elija) me genera un errror : 'Acces violation at address 0041E23E in module PVideo.exe' . Hago un try except para controlar este error y quito de tools/debugger Options/language Exception/Stop on delphi Exception. y el error ya no da. Pero no me libera todos los componentes bien y al crear nuevos tampoco lo hace bien. Pongo el codigo a ver si alguien sabe que estoy haciendo mal.
Código Delphi
[-]
LiberarChecks();
if Node.Text = 'Socios' then
begin
MostrarTabla('Socios'); CargarCampos(DM.TblSocios); end
else
if Node.Text = 'Peliculas' then
begin
MostrarTabla('Peliculas');
CargarCampos(DM.TblPelis);
end
else
if Node.Text = 'Provincias' then
begin
MostrarTabla('Provincia');
CargarCampos(DM.TblProvin);
end
else
if Node.Text = 'Alquileres' then
begin
MostrarTabla('Alquileres');
CargarCampos(DM.TblAlquileres);
end;
end;
procedure TFrmConsultas.CrearCheckBox(p : integer; Campo : String );
begin
ChckBxCampo := TCheckBox.Create(self);
ChckBxCampo.Parent := SrBxCampos; ChckBxCampo.Top := p;
ChckBxCampo.Width := 120;
ChckBxCampo.Left := 15;
ChckBxCampo.Caption :=Campo;
end;
procedure TFrmConsultas.LiberarChecks();
var
i : integer;
begin
try
try
for i := 0 to SrBxCampos.ControlCount do
SrBxCampos.Controls[i].Free;
except
end;
finally
end;
end;
Gracias de antemano
