PDA

Ver la Versión Completa : Desabilitar un TabSheet


jmlifi
08-11-2005, 09:15:43
Como puedo desabilitar un Tabsheet de un PageControl?
Lo siguiente no va:
1º nombreTabSheet.enabled := false;

2º PageControl.Pages[index].enabled := false;

ContraVeneno
08-11-2005, 18:41:58
¿y porque no va?

¿te funciona hacerla invisible?

dmassive
22-03-2008, 21:56:01
Estoy en un problema similar, me gustaria que no se pueda hacer click sobre las tabsheet desactivadas, pero si que sea vean, es decir, hacerlas invisibles no me sirve.

¿Que aplicacion tiene esto? pues si estas realizando alguna entrada de texto en la tabsheet actual, que no se puede cambiar a otra.

Muchas Gracias!

MaMu
22-03-2008, 22:46:41
Y porque no controlar los TabSheets desde el evento OnChange del PageControl???
Por ejemplo:

if PageControl1.ActivePageIndex=0
then begin
//lo que sea
end;

if PageControl1.ActivePageIndex=1 // No quiero que se use
then begin
if (condiciones_para_usarse)=True
then begin
//la uso
end
else beginç
//no la uso y me voy a otra
PageContr0l1.ActivePageIndex:=0;
end;
end;

if PageControl1.ActivePageIndex=2
then begin
//lo que sea
end;

Podes hacer esto mismo con un Case

Saludos

dmassive
24-03-2008, 12:51:28
Muchas gracias, estoy intentando usar un case, pero en vez de usar los indices, utilizar los nombre de las paginas. Esto es por si luego decido agregar o quitar pestañas, cambiar posicion, etc.

Aun estoy pensando como hacerlo para que funcione mas o menos asi:

case PageControl1.ActivePage of
tabsheet_mia: form1.caption := 'funciona!'
end;

ContraVeneno
24-03-2008, 15:29:54
Estoy en un problema similar, me gustaria que no se pueda hacer click sobre las tabsheet desactivadas, pero si que sea vean

Yo creo que aquí tu mismo te contestaste, pero:
¿Ya probaste la propiedad "Enabled" de la hoja?
Si lo pones en falso, la hoja sí se ve, pero no pueden hacer nada sobre ella.

dmassive
24-03-2008, 19:16:35
No, porque se sigue permitiendo cambiar de hoja. Que es lo que mencione al decir para que la necesitaba, es decir, no quiero que se vea la hoja, pero si la pestaña.

ContraVeneno
24-03-2008, 22:37:51
la hoja y la pestaña son la misma cosa.

corrijo, si son cosas diferentes, porque puedo ver la hoja pero no la pestaña...

pero eso de que se vea la pestaña pero no la hoja, no se como se pueda hacer...

solo que vayas controlando el evento onshow de la hoja y la cambies por otra, es decir, sí se va a ver la pestaña, pero no podrán ver su contenido...

fuera de eso, pues no sabría como.

keyboy
25-03-2008, 00:38:47
Yo lo que entiendo es que quiere impedir que se pueda cambiar de pestaña cuando se esté editando en una. Yo esto lo haría con el evento OnChanging (no confundir con el OnChange) ajustando el valor del parámetro AllowChange según sea el caso.


procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean);
begin
if (Sender as TPageControl).ActivePage = ElTabSheet then
AllowChange := not ElTabSheet.EnEdicion
end;


Bye