Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Como faço para referenciar botões no delphi?


Posts recomendados

Olá, sou novato no delphi e também não possuo muita experiência com programação. Fiz um código que, ao clicar no botão1, mostra algumas informações sobre ele, tais como: altura, largura, nome...

Fiz esse código para um botão, então quando clico nos outros eles não mostram as informações. Então minha dúvida é a seguinte, de que maneira posso fazer para "referenciar" os outros botões para que eles entrem na mesma função do botão1 sem eu precisar escrever todo aquele código novamente.

 

A seguir o código.

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls,
  StdCtrls, Types;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ControlBar2: TControlBar;
    GroupBox1: TGroupBox;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    ToggleBox1: TToggleBox;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
    procedure ToggleBox1Change(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);

  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (Sender is TButtom) then
  showmessage (
  'Nome original =' +
  Pchar(ActiveControl.Name) + #13 +
  'Nome atribuido =' +
  Pchar(ActiveControl.caption)+ #13  +
  'Posição no eixo x =' +
  inttostr(ActiveControl.Top)+ #13  +
  'Posição no eixo y =' +
  inttostr(ActiveControl.left)+ #13  +
  'Altura =' +
  inttostr(ActiveControl.Height)+ #13 +
  'Largura =' +
  inttostr(ActiveControl.Width)+ #13


  )  ;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin

end;

procedure TForm1.Button3Click(Sender: TObject);
begin

end;

procedure TForm1.PageControl1Change(Sender: TObject);
begin

end;

procedure TForm1.TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin

end;

procedure TForm1.ToggleBox1Change(Sender: TObject);
begin

end;

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  PageControl1.SelectNextPage(false);
end;

procedure TForm1.ToolButton2Click(Sender: TObject);
begin
  PageControl1.SelectNextPage(true);

end;

procedure TForm1.ToolButton4Click(Sender: TObject);
begin
  showmessage('Tchau!');
  Application.Terminate;
end;

end.

 

Desde já agradeço.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@winzero     você pode criar uma função ou pode ser também uma procedure ,  e coloque esse código que mostra os dados referentes ao botão clicado ,  e em cada botão que você queira saber esses dados dele você chama a função criada e ela mostra esses dados de cada botão ,  então para criar essa função você precisa declarar a função lá no início no  Type e depois de Private , e depois crie a função  que irá imprimir os dados referente aos botões ,  colocando ela lá depois do implementation

                                                                                     {$R *.dfm}

e depois coloque os botões no form e dê dois cliques em cada  botão e dentro do código criado automaticamente chame a função colocando o nome da função criada ,   então hum exemplo seria assim     :

 

unit funcao_Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;// button1 button2 button3 precisam ser criados lá no form
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
  function soma (a,b : integer) : integer;  //FUNÇÃO SOMA
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
  function Tform1.soma (a,b : integer) : integer;
  var
    c : integer;
  begin
      c := a+b;
      result := c;
      showmessage ('Nome original =' +
      Pchar(ActiveControl.Name) + #13 +
      'Nome atribuido =' +#13+
      //Pchar(ActiveControl.caption));//+ #13);//  +
      'Posição no eixo x =' +
      inttostr(ActiveControl.Top)+ #13  +
      'Posição no eixo y =' +
      inttostr(ActiveControl.left)+ #13  +
      'Altura =' +
      inttostr(ActiveControl.Height)+ #13 +
      'Largura =' +
      inttostr(ActiveControl.Width)+ #13);
  end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  soma(3,2);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  soma(3,2);  
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Close();
end;

end.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...