Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.03;
Скачать: CL | DM;

Вниз

Много кнопок, один event   Найти похожие ветки 

 
DenKop ©   (2003-03-17 18:30) [0]

Имею много кнопок и назначил им один OnClick. Как узнать по передаваемому сендеру какая кнопка сгенерировала событие?


 
Anatoly Podgoretsky ©   (2003-03-17 18:30) [1]

Sender оно и есть


 
DenKop ©   (2003-03-17 18:33) [2]

procedure TMainForm.Button1Click(Sender: TObject);
var Str:string;
begin
{Как в Str получить TButton.Name}
end;


 
Dona ©   (2003-03-17 18:41) [3]

Str:= (Sender As TButton).Name ?

или
if (Sender AS TButton) is Button1 then Str:= "Button1";
if (Sender AS TButton) is Button2 then Str:= "Button2"; ...


 
Anatoly Podgoretsky ©   (2003-03-17 18:48) [4]

TButton(Sender).Name}
При необходимости сделать проверку на принадлежность к TButton


 
DenKop ©   (2003-03-17 22:44) [5]

Спасибо, врубился


 
Vasily_ ©   (2003-03-17 23:07) [6]

Я делаю так:
Назначаю разные свойства Tag для кнопок отличные от нуля ( нуль присвоен по умолчанию), а затем:

Case TButton(Sender).Tag of
1:begin
end;
2:begin
end;
3:begin
end;
.
.
.
n:begin
end;
end;

По моему проще запомнить номер TButton.Tag, чем его Name.


 
DenKop ©   (2003-03-18 23:00) [7]

>Vasily_

Согласен. Этот вариант мне больше нравится.


 
Anatoly Podgoretsky ©   (2003-03-18 23:29) [8]

Вариант с тегами грешит возможностями ошибки, а для того, что бы получить имя вообще ни теги не нужны, ни какие нибудь проверки, кроме соответстся Sender TButton и то не обязательно, можно генерировать ошибку.
Пример Dona © (17.03.03 18:41)



 
DenKop ©   (2003-03-19 21:08) [9]

>Anatoly Podgoretsky
Будем стараться следить за тегами. Кнопок очень много и проверять каждую очень громоздко, а с тегами это всего один Case of и всё.


 
VD601   (2003-03-19 22:00) [10]

А не думал о том, чтобы сравниваит указатели?

var
PBtn: ^TButton;
begin
PBtn := Sender as TButton;
if (PBtn = Button1) //просто беззнаковые целые!
...


 
DenKop ©   (2003-03-21 21:09) [11]

>VD601
Опять это громоздкий if...


 
Hecker ©   (2003-03-22 01:54) [12]

Как говорит Anatoly Podgoretsky - это оптимальный вариант в любом случае. Я таким образом проверял 101 кнопочку! :) и быстро и качественно!

С уважением, Hecker



Страницы: 1 вся ветка

Текущий архив: 2003.04.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
14-6721
WMag
2003-03-16 01:00
2003.04.03
Необычный Grid


3-6318
galexis
2003-03-17 14:22
2003.04.03
Ошибка XSQLDA index out of range


7-6827
pfar
2003-02-08 08:36
2003.04.03
Как выгрузить любую DLL-ку в windows?


14-6785
les
2003-03-17 12:56
2003.04.03
Можна ли ставить D5 и D7 на один компьютер?


1-6593
Grey
2003-03-22 12:46
2003.04.03
Орфография...