Olá galera, nesta Quick Tips, irei mostra como podemos habilitar ou desabilitar componentes dentro de uma TabSheet vejamos então como fazer este feito. Para isso vamos adicionar :

 

2 TButton(BtnAtivar, BtnDesativar)

1 TPageControl

1 TTabSheet ( dentro do PageControl vamos incluir um TabSheet)

1 TEdit

1 TCombobox

1 TMemo

1 TMaskEdit

 

unit uFrmPrincipal;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Mask, Buttons, ExtCtrls;

type

TFrmPrincipal = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Edit1: TEdit;

ComboBox1: TComboBox;

Memo1: TMemo;

MaskEdit1: TMaskEdit;

Panel1: TPanel;

BtnAtivar: TBitBtn;

BtnDesativar: TBitBtn;

procedure BtnAtivarClick(Sender: TObject);

procedure BtnDesativarClick(Sender: TObject);

private

procedure HabFieldsTabSheet(xTabSheet: TTabSheet; Hab: Boolean);

{ Private declarations }

public

{ Public declarations }

end;

var

FrmPrincipal: TFrmPrincipal;

implementation

{$R *.dfm}

 

{ Vejamos a procedure para Habilitar os componentes que estão dentro de um determinado TabSheet, para isso precisamos informar qual é o TabSheet e se vamos ou não habilitar os controles  }

procedure TFrmPrincipal.HabFieldsTabSheet(xTabSheet: TTabSheet; Hab: Boolean);

var

   x: integer;

begin

   for x := 0 to xTabSheet.ControlCount - 1 do

      if (xTabSheet.Controls[x] is TEdit) or

         (xTabSheet.Controls[x] is TComboBox) or

          (xTabSheet.Controls[x] is TMemo) or

          (xTabSheet.Controls[x] is TMaskEdit) then

         xTabSheet.Controls[x].Enabled := Hab;

end;

end.

 

{ Vemos aqui a implementação do BtnAtivar, no qual irá habilitar os componentes dentro do TabSheet, e logo em seguida irá desativar ele mesmo e ativar o BtnDesativar }

procedure TFrmPrincipal.BtnAtivarClick(Sender: TObject);

begin

   HabFieldsTabSheet(TabSheet1,True);

   BtnAtivar.Enabled := BtnDesativar.Enabled;

   BtnDesativar.Enabled := Not BtnAtivar.Enabled;

end;

 

{ Vemos aqui a implementação do BtnDesativar, no qual irá desabilitar os componentes dentro do TabSheet, e logo em seguida irá desativar ele mesmo e ativar o BtnAtivar }

 

procedure TFrmPrincipal.BtnDesativarClick(Sender: TObject);

begin

   HabFieldsTabSheet(TabSheet1,False);

   BtnAtivar.Enabled := BtnDesativar.Enabled;

   BtnDesativar.Enabled := Not BtnAtivar.Enabled;

end;

Fico por aqui ate à próxima Quick Tips.

Um abraço

Wesley Y

wyamazack@rwsolution.com.br