PDA

Ver la Versión Completa : Deshabilitar una solapa de TPageControl


reina
22-08-2005, 17:11:27
Holas como va? quisiera saber como puedo hacer para deshabilitar una solapa del componente TPagecontrol, ya que si utilizo la propiedad enabled en ejecucion lo que esta inhabilitado es todo el contenido..pero puedo clickear en la solapa y ver que tiene, lo que quiero es que no se pueda clickear que la solapa este inhablitada y hablitarla por medio de un boton.
Si me pueden ayudar se los agradeceria saludosssssss

Lepe
22-08-2005, 17:38:51
pagecontrol1.pages[2].Visible := false;

o bien
TabSheet2.Visible := false;

Un saludo.

reina
22-08-2005, 17:45:09
la verdad..que eso ya me lo dijeron incluso lo pense, pero no quiero eso, simplemente quiero no poder acceder a la solapa

jmariano
22-08-2005, 18:07:14
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:


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)

reina
22-08-2005, 18:14:10
tksss amiguis los voy a probar, gracias por tu tiempo.

byee saludos

dec
23-08-2005, 01:16:39
Hola,

Cada pestaña de un "TPageControl" cuenta con una propiedad "TabVisible" de tipo booleano: si le das el valor "false" a dicha propiedad la página en cuestión no podrá ser seleccionada, porque su pestaña no será visible para el usuario. ¿Vale algo así? ;)