terça-feira, 19 de novembro de 2019

Trabalhando String AddObject

Este exemplo requer vou usar estamos usando os componentes, adicionar um TPageControl já esteja no formulário.

Além disso, você deve adicionar páginas ao TPageControl clicando com o botão direito do mouse e selecionando Nova página. 
O código de exemplo permite selecionar a propriedade ActivePage através da seleção de um item ComboBox. 
Enquanto o formulário é criado, o controle ComboBox é carregado com os nomes de cada uma das guias, bem como os ponteiros da instância para a guia correspondente. 
Quando você seleciona o item ComboBox, o objeto TTabSheet associado contido na matriz Objetos ComboBox é usado para definir a propriedade ActivePage. 

Distribuem-se os componentes como mostra a figura.


Figura 1

procedure Form1.FormCreate(sender: TObject);
var
  i: Integer;
begin
  for i := 0 to PageControl1.PageCount - 1 do
    begin
       ComboBox1.Items.AddObject(PageControl1.Pages[i].Name,
       PageControl1.Pages[i]);
    end;
  ComboBox1.ItemIndex := 0;
  PageControl1.ActivePage := TTabSheet(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
end;

Depois de Adicionar este código acima, segue a figura abaixo.


Figura 2

Selecione o ComboBox,  no object Inspector selecione o evento OnChange, é digite o código abaixo.

procedure TForm1.ComboBox1Change(Sender : TObject)
begin 
   if (Sender is TComboBox) then 
    With (Sender as TComboBox) do 
      PageControl1.ActivePage := TTabSheet(Items.Objects[ItemIndex]);
end;

Depois de digitar este código executa a projeto, assim conseguirá manipular os object da aba do PageControl, através do ComboBox. 

Espero que goste de Dicas.





Usando ActiveControl no delphi Delphi

Descrição


Vamos criar uma aplicação VCL, no delphi e depois coloque um objeto TTimer no formulário e insira Timer1Timer no evento OnTimer. 
Coloque outros controles no formulário e altere o controle ativo em tempo de execução. 
O manipulador de eventos a seguir responde aos eventos do timer, movendo o controle ativo um pixel para a direita a cada 100 milissegundos.

Código


Procedure TForm1.Timer1Timer(Sender: TObject);
begin 

  Timer1.Interval := 100;
  if ActiveControl < > null then 
    ActiveControl.Left := ActiveControl.Left + 1;
end;

Este Exemplo e simples, só que fiz uma modificação, adicionei ao formulário, um componente Listbox, para realizar este teste.

Print do Formulário





Agora estarei colocando o código da modificação e simples, mas neste caso terá uma idéias do que estou falando.


Código do Formulário

Procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Interval := 100;
  if ActiveControl < > null then
    if ActiveControle.left >= 651 then
       activeControl.Left := 0
  else
      ActiveControl.Left := ActiveControl.Left + 3;

end;


Espero que ajude vocês na manipulação de seus controle.