Recent

Author Topic: PageControl e TabSheet  (Read 5387 times)

BraveDOG

  • New member
  • *
  • Posts: 7
PageControl e TabSheet
« on: July 13, 2018, 03:45:46 pm »
Ola,

Tenho um Formulário contendo um PageControl (pgcAbas) e 4 TabSheets (tab1, tab2...).  Dentro de cada TabSheet, tenho componentes do tipo TEdit. O que não estou conseguindo é: Quando clico no Tab1, o foco passe para o primeiro campo, que seria txtCNPJ, quando clicasse em Tab2, o foco fosse parar no primeiro campo que é txtDataContrato, e por ai vai.

Já tentei os eventos OnChange, OnCanging, OnEnter, OnMouseEnter do PageControl e nada deu certo.

Handoko

  • Hero Member
  • *****
  • Posts: 5130
  • My goal: build my own game engine using Lazarus
Re: PageControl e TabSheet
« Reply #1 on: July 13, 2018, 06:37:35 pm »
Translated using Google Translate:
Quote
Hello,

I have a Form containing a PageControl (pgcAbas) and 4 TabSheets (tab1, tab2 ...). Within each TabSheet, I have components of type TEdit. What I'm not getting is: When I click on Tab1, the focus goes to the first field, which would be txtCNPJ, when I clicked on Tab2, the focus would be on the first field that is txtDataContract, and so on.

I've tried the OnChange, OnCanging, OnEnter, OnMouseEnter events of PageControl and nothing worked.

We need more information. What is the component type of txtCNPJ and txtDataContract? Are they TEdit?

I use TPageControl, so far never have any serious issue. There must be something wrong in your code. Can you show us your code?

To do it:
Create a new folder and copy all the necessary files into it except: the binary (*.exe), *.bak and the lib folder. Compress the folder and send it to the forum. If it uses any database, please also include them.

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1106
Re: PageControl e TabSheet
« Reply #2 on: July 13, 2018, 08:50:32 pm »
Ola,

Tenho um Formulário contendo um PageControl (pgcAbas) e 4 TabSheets (tab1, tab2...).  Dentro de cada TabSheet, tenho componentes do tipo TEdit. O que não estou conseguindo é: Quando clico no Tab1, o foco passe para o primeiro campo, que seria txtCNPJ, quando clicasse em Tab2, o foco fosse parar no primeiro campo que é txtDataContrato, e por ai vai.

Já tentei os eventos OnChange, OnCanging, OnEnter, OnMouseEnter do PageControl e nada deu certo.
Brazilian Portuguese:
Eu anexei um exemplo bem simples que funciona.

English:
I have attached a very simple example that just works.

wp

  • Hero Member
  • *****
  • Posts: 11854
Re: PageControl e TabSheet
« Reply #3 on: July 13, 2018, 09:02:14 pm »
Seems to work correctly for me (Windows 10/64 bit, Laz trunk/FPC 3.0.4 32 bit). What is your operating system? Which Lazarus/FPC version? Which Bitness?

BraveDOG

  • New member
  • *
  • Posts: 7
Re: PageControl e TabSheet
« Reply #4 on: July 13, 2018, 09:16:55 pm »
Obrigado a todos por responderem.

valdir.marcos: olhei seu código aqui e funcionou ( o seu exemplo) vou olhar o que fiz de errado no meu !!!

Super Obrigado !!!

BraveDOG

  • New member
  • *
  • Posts: 7
Re: PageControl e TabSheet
« Reply #5 on: July 14, 2018, 12:58:13 pm »
Descobri onde estava o problema.  Na primeira Aba o componente que tentei colocar o foco foi um TLabelEdit e que não consegue receber o foco através do Evento OnChange do Controle TPageControl (Um bug talvez ??) e na segunda aba, é um ComboBox, mas com a propriedade ReadOnly, por isso não batia o foco nele. O segundo foi mais fácil de resolver, bastou mudar a propriedade ReadOnly antes de colocar o foco e depois voltar com o ReadOnly.  Já o primeiro irei substituir por um Label e um TEdit.

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1106
Re: PageControl e TabSheet
« Reply #6 on: July 14, 2018, 08:00:29 pm »
Descobri onde estava o problema.  Na primeira Aba o componente que tentei colocar o foco foi um TLabelEdit e que não consegue receber o foco através do Evento OnChange do Controle TPageControl (Um bug talvez ??) e na segunda aba, é um ComboBox, mas com a propriedade ReadOnly, por isso não batia o foco nele. O segundo foi mais fácil de resolver, bastou mudar a propriedade ReadOnly antes de colocar o foco e depois voltar com o ReadOnly.  Já o primeiro irei substituir por um Label e um TEdit.
Brazilian Portuguese:
Acabei de alterar o exemplo para usar o TLabeledEdit e o funcionamento continua correto. Por favor, veja novo anexo.
English:
I have just changed the previous example to use TLabeledEdit and it still works correctly. Please, take another look on the attached example.

 

TinyPortal © 2005-2018