Ver Mensaje Individual
  #6  
Antiguo 26-11-2010
LiAnTe- LiAnTe- is offline
Miembro
 
Registrado: oct 2007
Posts: 47
Reputación: 0
LiAnTe- Va por buen camino
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;     // Inicio
      vBotonPersonal.Top     := vTop;     // Altura
      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.
Responder Con Cita