Текущий архив: 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.46 MB
Время: 0.008 c