Ver Mensaje Individual
  #4  
Antiguo 22-08-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Reputación: 21
jmariano Va por buen camino
Saludos!

Para lo que quieres, entonces, tendrás que jugar con los eventos "OnChanging" y "OnChange" del TPageControl. Una forma que se me ocurre es guardar el índice de la pestaña actual en el evento "OnChanging" y despues comprobar el índice de la pestaña a la que se cambió en el "OnChange", si el índice es el de la pestaña a la que no quieres acceder, entonces, lo cambiarías al almacenado en el evento "OnChanging".

Por ejemplo, imaginemos un TPageControl con tres pestaña y no dejaremos acceso a la segunda pestaña:

Código Delphi [-]
var
  PagAct: Integer;
 
procedure TForm1.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  // Pestaña actual donde se encuentra el usuario
  PagAct := (Sender as TPageControl).ActivePageIndex;
end;
 
procedure TForm1.PageControl1Change(Sender: TObject);
begin
  // Si se accede a la segunda pestaña volvemos a donde estábamos
  if (Sender as TPageControl).ActivePageIndex = 1 then
    (Sender as TPageControl).ActivePageIndex := PagAct;
end;

(Si no quieres usar una variable podrías usar, entonces, la propiedad "Tag" del TPageControl para almacenar la pestaña donde se encontraba el usuario)

Última edición por jmariano fecha: 22-08-2005 a las 18:14:20.
Responder Con Cita