PDA

Просмотр полной версии : [Помогите!] Программно узнать Name


Babls77
22.05.2012, 00:46
У меня есть 6 кнопок и при нажатии на одну из них должно отображаться Name в мемо1 нажатой кнопки . (Незная какая кнопка как называется)
Не подскажите как это можно реализовать (необязательно код можно просто свою какую нибудь идею которая пришла в голову).:notme:
В тему вложен пример программы.:agreed:
Спасибо заранее. :bow:

R.A.Z.O.R.
22.05.2012, 07:12
Небольшой пример:

unit Unit5;

interface

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

type
TForm5 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure click(sender: TObject);
public
{ Public declarations }
end;

var
Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.click(sender: TObject);
begin
Memo1.Lines.Add(TButton(Sender).Name); // Имя кнопки добавляется в memo
end;

procedure TForm5.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := 0 to Self.ComponentCount-1 do // Проходишься по списку компонент формы
if (Self.Components[i].ClassType = TButton) then // Если текущий компонент - кнопка
TButton(Self.Components[i]).OnClick := click; // присваиваешь событие onClick
end;

end.

J-Fobos
22.05.2012, 12:00
Зачем все так усложнять, есть же Sender.

R.A.Z.O.R.
22.05.2012, 20:24
Зачем все так усложнять, есть же Sender.

procedure TForm5.click(sender: TObject);
begin
Memo1.Lines.Add(TButton(Sender).Name); // Имя кнопки добавляется в memo
end;

Не понял суть твоего сообщения) Он тут и используется. Но к каждой кнопке на форме добавляется событие /problem

J-Fobos
22.05.2012, 22:23
Да. К каждой :) А надо только к 4 :)

Babls77
22.05.2012, 23:16
Да. К каждой :) А надо только к 4 :)

я уже код подправил и работает только у 4 :)