Ir ao conteúdo
  • Cadastre-se
winzero

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.

Compartilhar este post


Link para o post
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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Junte-se à conversa

Você pode postar agora e cadastrar-se depois. Se você tem uma conta, faça o login para postar.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restore formatting

  Só é possível ter até 75 emoticons.

×   O link foi automaticamente convertido para mostrar o conteúdo.   Clique aqui para mostrá-lo como link comum

×   Seu texto anterior foi restaurado.   Limpar o editor

×   You cannot paste images directly. Upload or insert images from URL.






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!