GARANTIR DESCONTO

Fórum acesso a uma aba especifica do pagecontrol #588641

09/11/2017

0

Pessoal, td bem?

Seguinte, não manjo muito de desenvolvimento, minha área é de infra, mas eu as vezes gosto de inventar alguma coisa, desenvolvi uma agenda telefônica com banco access, e em uma das consultas, eu usei esse PageControl com duas abas, ocorre que não sei como fazer, para que quando clicar no botão "buscar por empresa" e "buscar por profissão", ele possa ir direto a aba da qual se refere, no meu caso, ele abre uma aba, geralmente a que vi por ultimo, dai tenho de escolher a aba, eu queria que fosse direto na aba especifica, tem jeito? é possível.
desde já agradeço todas as dicas..
abraço..
Deuzenildo Nascimento

Deuzenildo Nascimento

Responder

Post mais votado

09/11/2017

Para setar a aba especifica você pode usar a propriedade ActivePage do PageControl.
Supondo que o seu TabSheet de empresa chama-se TabSheet1 e o TabSheet de profissão é o TabSheet2.
Na primeira linha do Onclick do botão do buscar empresa você coloca:
PageControl1.ActivePage:= TabSheet1;

Na primeira linha do Onclick do botão do buscar profissão você coloca:
PageControl1.ActivePage:= TabSheet2;

Natanael Ferreira

Natanael Ferreira
Responder

Gostei + 1

Mais Posts

09/11/2017

Deuzenildo Nascimento

Olá amigo, fiz o teste como me falou, no botao no qual clica para fazer a pesquisa, inseri esse codigo, mas fica sublinhado em vermelho (erro) como mostrado no codigo a partir da palavra Activepage...:

consmais.ActivePage:= TabSheet1;
Responder

Gostei + 0

10/11/2017

Raimundo Pereira

consmais.ActivePageindex:= 0;Para aba 1
consmais.ActivePageindex:= 1;Para aba 2

E assim por diante
Responder

Gostei + 0

10/11/2017

Deuzenildo Nascimento

Ok. Mas ele ja mostra erro na linha bem embaixo da palavra Active, eu acho que tem que declarar alguma coisa na uses, pq ele diz que não reconhece .. Eu ainda to aprendendo .

Valeu..
Responder

Gostei + 0

10/11/2017

Natanael Ferreira

"consMais" é o um componente PageControl? Se for está correto.

"TabSheet1" eu coloquei como exemplo. Troque pelo nome do TabSheet que você quer mostrar.

Ou faça como o P2 citou, use ActivePageIndex para setar o índice da Tabsheet ativa.

Lembrando que o índice começa do 0 (zero).
Responder

Gostei + 0

10/11/2017

Deuzenildo Nascimento

Pessoal, veja, eu fiz dois modos sugeridos acima, nao deu erros, mas o botao nao tem ação. Desculpa, segue o codigo inteiro da unit onde estão os botoes.

unit consul;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Data.DB,
  Vcl.Mask, Vcl.DBCtrls, Data.Win.ADODB, Vcl.Grids, Vcl.DBGrids, Vcl.Buttons;

type
  Tpesquisa = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    DBNavigator1: TDBNavigator;
    ADOTable1: TADOTable;
    ADOTable1Nome: TWideStringField;
    ADOTable1Endereco: TWideStringField;
    ADOTable1Bairro: TWideStringField;
    ADOTable1cidade: TWideStringField;
    ADOTable1cep: TWideStringField;
    ADOTable1estado: TWideStringField;
    ADOTable1FoneResidencia: TWideStringField;
    ADOTable1FoneComecrial: TWideStringField;
    ADOTable1Empresa: TWideStringField;
    ADOTable1Profissão: TWideStringField;
    ADOTable1Celular1: TWideStringField;
    ADOTable1Celular2: TWideStringField;
    ADOTable1Email: TWideStringField;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    DataSource1: TDataSource;
    Label3: TLabel;
    DBEdit2: TDBEdit;
    Label4: TLabel;
    DBEdit3: TDBEdit;
    Label5: TLabel;
    DBEdit4: TDBEdit;
    Label6: TLabel;
    DBEdit5: TDBEdit;
    Label7: TLabel;
    DBEdit6: TDBEdit;
    Label8: TLabel;
    DBEdit7: TDBEdit;
    Label9: TLabel;
    DBEdit8: TDBEdit;
    Label10: TLabel;
    DBEdit9: TDBEdit;
    Label11: TLabel;
    DBEdit10: TDBEdit;
    Label12: TLabel;
    DBEdit11: TDBEdit;
    Label13: TLabel;
    DBEdit12: TDBEdit;
    Label14: TLabel;
    DBEdit13: TDBEdit;
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
   // procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  pesquisa: Tpesquisa;

implementation

{$R *.dfm}

uses cadastr, about, consulmais ;

procedure Tpesquisa.BitBtn1Click(Sender: TObject);
begin
    consmais.pesqmais.ActivePage := consmais.TabSheet1;  // nao da erro, mas o botao fica sem ação..
end;

procedure Tpesquisa.BitBtn2Click(Sender: TObject);
begin
  //consmais.pesqmais.ActivePageIndex:= 1;  // nao da erro, mas tambem o botao fica sem ação.
end;

procedure Tpesquisa.BitBtn3Click(Sender: TObject);
begin
  cadast.show;
  cadast.Edit1.SetFocus;
end;

procedure Tpesquisa.BitBtn4Click(Sender: TObject);
begin
  close;
end;

procedure Tpesquisa.BitBtn5Click(Sender: TObject);
begin
  sobre.show;
end;

procedure Tpesquisa.Button1Click(Sender: TObject);
begin
  cadast.show;
  cadast.Edit1.SetFocus;
end;

procedure Tpesquisa.Button2Click(Sender: TObject);
begin
  close;
end;

procedure Tpesquisa.Button3Click(Sender: TObject);
begin
  sobre.show;
end;

procedure Tpesquisa.Edit1Change(Sender: TObject);
begin
  edit1.SetFocus;
  adotable1.Locate('Nome', trim(edit1.Text), [lopartialkey]);
end;

procedure Tpesquisa.Edit2Change(Sender: TObject);
begin
adotable1.Locate('Empresa', trim(edit1.Text), [lopartialkey]);
end;

end.
Responder

Gostei + 0

10/11/2017

Deuzenildo Nascimento

Ninguem pediu, mas pra adiantar, segue o cod da outra unit onde estao as tabsheets..

unit consulmais;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.StdCtrls,
  Vcl.Grids, Vcl.DBGrids, Vcl.Buttons, Data.DB, Data.Win.ADODB;

type
  Tconsmais = class(TForm)
    pesqmais: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    Edit1: TEdit;
    Panel2: TPanel;
    Edit2: TEdit;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ADOTable1: TADOTable;
    ADOTable2: TADOTable;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    ADOTable1Nome: TWideStringField;
    ADOTable1Endereco: TWideStringField;
    ADOTable1Bairro: TWideStringField;
    ADOTable1cidade: TWideStringField;
    ADOTable1cep: TWideStringField;
    ADOTable1estado: TWideStringField;
    ADOTable1FoneResidencia: TWideStringField;
    ADOTable1FoneComecrial: TWideStringField;
    ADOTable1Empresa: TWideStringField;
    ADOTable1Profissão: TWideStringField;
    ADOTable1Celular1: TWideStringField;
    ADOTable1Celular2: TWideStringField;
    ADOTable1Email: TWideStringField;
    ADOTable2Nome: TWideStringField;
    ADOTable2Endereco: TWideStringField;
    ADOTable2Bairro: TWideStringField;
    ADOTable2cidade: TWideStringField;
    ADOTable2cep: TWideStringField;
    ADOTable2estado: TWideStringField;
    ADOTable2FoneResidencia: TWideStringField;
    ADOTable2FoneComecrial: TWideStringField;
    ADOTable2Empresa: TWideStringField;
    ADOTable2Profissão: TWideStringField;
    ADOTable2Celular1: TWideStringField;
    ADOTable2Celular2: TWideStringField;
    ADOTable2Email: TWideStringField;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  consmais: Tconsmais;

implementation

{$R *.dfm}

procedure Tconsmais.BitBtn1Click(Sender: TObject);
begin
  close;
end;

procedure Tconsmais.BitBtn2Click(Sender: TObject);
begin
  close;
end;

procedure Tconsmais.Edit1Change(Sender: TObject);
begin
  //edit1.SetFocus;
  adotable1.Locate('Empresa', trim(edit1.Text), [lopartialkey]);
end;

procedure Tconsmais.Edit2Change(Sender: TObject);
begin
  //edit1.SetFocus;
  adotable2.Locate('Profissão', trim(edit2.Text), [lopartialkey]);
end;

end.
Responder

Gostei + 0

11/11/2017

Raimundo Pereira

Veja um exemplo
Link do exemplo

Observe que no meu exemplo os buttons estão fora da page
Responder

Gostei + 0

11/11/2017

Deuzenildo Nascimento

Olá P2, fiz esse teste, deu certo em um novo projeto, apesar de ser um teste apenas, pra uso nao vejo muito sentido, se os botoes estão logo acima das abas das tabs, pode clicar nas tabs, mas de qqer forma, agradeço o interesse em ajudar.

Minha ideia é estando no form com name Principal, e clicar no botao empresa, ele abrir o outro form com name consmais na tabsheet1, e tabsheet2 se clicar no outro botao profissão. Tambem nao sei se isso funciona ou daria certo desse jeito q quero fazer.
Responder

Gostei + 0

12/11/2017

Raimundo Pereira

Boa noite.

Crie uma varial global no seu form Principal.

Var Call_Page:integer;
No click do button você passa a page index

Exemplo empresas está localizado na primeira aba 1.
no click do button
Call_Page:=0;
Prossegue com abertura do form consmais
no oncreat do consmais

informo que pagcontrol.activepageindex:=Call_Pag;

Assim apenas set o valor da pageindex previamente nos buttons

Call_Page:=0;
Call_Page:=1;
Call_Page:=2;
Responder

Gostei + 0

12/11/2017

Raimundo Pereira

Outra coisa, renomeia a pagina e as abas, pois acredito que
pagecontrol = PG
Aba 1, cadastro de empresas = PG_EMPRESAS
E assim por diante
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar