Bien ahora me borra y me crea, pero me sigue dando el acces violation...
te pego el ultimo codigo....
Lo que hace el programa es crear un menu de personas al inicio cuando pulsas en una persona pues borra las personas y pone las opciones de la persona pulsada...
pero al destruir y dibujar de nuevo me va saliendo un Access Violation... y ando muy loco buscando el problema...
Ya agradecerte la ayuda que me estas prestando...
este es el ultimo codigo que se utiliza.... es como un bucle pulso se crea formulario crea personal, pulsas sobre el y destruye botones de personal y crea los nuevo botones de opciones... retrocedes y creas de nuevo las opciones de personal. ( gente ).
Código Delphi
[-]procedure TGesVentasBar.vPersonalBotonOnClick(Sender: TObject);
var
vVentasOpcionesCodigo : Integer;
vVentasOpcionesNombre : String;
vTop : Integer;
vInicio : Integer;
QOpcionesPersonal : TIBSQL;
vBotonPersonal : TSpeedButton;
Begin
vendedor.text := inttostr(Tbutton(sender).tag);
VendedorExit;
BorrarPanelPersonal;
vTop := 1;
vInicio := 1;
Btt_AnteriorRegistroPersonal.Enabled := True;
Btt_SiguienteRegistroPersonal.Enabled := False;
QOpcionesPersonal := TibSql.create(NIL);
QOpcionesPersonal.Database := BDades.IBDatabase1;
Try
QOpcionesPersonal.SQL.Text := 'Select * from VentasOpciones where tienda = ' + '''' + BDades.TConfigTIENDA.Text + '''';
QOpcionesPersonal.ExecQuery;
While QOpcionesPersonal.Eof = False do
Begin
vVentasOpcionesCodigo := QOpcionesPersonal.FieldByName('CODIGO').AsInteger;
vVentasOpcionesNombre := QOpcionesPersonal.FieldByName('NOMBRE').AsString;
vBotonPersonal := TSpeedButton.create(Personal);
vBotonPersonal.Parent := Personal;
vBotonPersonal.Caption := vVentasOpcionesNombre;
vBotonPersonal.Height := 69;
vBotonPersonal.Width := 108;
vBotonPersonal.Left := vInicio; vBotonPersonal.Top := vTop; vBotonPersonal.Enabled := True;
vBotonPersonal.visible := True;
vBotonPersonal.Tag := vVentasOpcionesCodigo;
vBotonPersonal.OnClick := vOpcionesVentasBotonOnClick;
vBotonPersonal.Show;
QOpcionesPersonal.Next;
vTop := vTop + 70;
end;
BDades.IBTransaction1.CommitRetaining;
finally
QOpcionesPersonal.Close;
FreeandNil(QOpcionesPersonal);
end;
end;
no se si sera importante pero el panel de personal esta encima de un componente TPageControl y el panel persona es un TTabSheet.
Saludos.