Главная страница
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.014 c
1-6424
Intell
2003-03-22 19:35
2003.04.03
Как в TMemo найти знак


7-6821
Mr. Iv@n
2003-02-10 21:57
2003.04.03
Рабта с хардом


1-6473
SeNtiMeL
2003-03-22 22:05
2003.04.03
Как поменять стиль формы ?


3-6325
PrettyFly
2003-03-17 14:59
2003.04.03
Отфильтрованный базар...


1-6558
Kaser
2003-03-21 16:48
2003.04.03
Позиционирование курсора в произвольную позицию dbGrid