Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Вниз

Нажатие кнопки   Найти похожие ветки 

 
Knob   (2009-05-05 17:00) [0]

На форме есть очень много кнопок, как сделать единую процедуру для всех В процедуре обязательно нужно знать какую именно кнопку нажали. Как определить её?


 
Игорь Шевченко ©   (2009-05-05 17:01) [1]

Sender


 
sniknik ©   (2009-05-05 17:01) [2]

> Как определить её?
Sender


 
Knob   (2009-05-05 17:03) [3]

Сколько раз пробывал, разве в Sender можно узнать название её?


 
Palladin ©   (2009-05-05 17:05) [4]

сколько раз пробовал чего? и где вы такой язык берете...

ShowMessage(TComponent(Sender).Name);


 
Knob   (2009-05-05 17:07) [5]

Спасибо за помощь


 
Amoeba ©   (2009-05-05 17:36) [6]

Эффективнее идентифицировать кнопки не по
TComponent(Sender).Name
а по
TComponent(Sender).Tag

Тогда можно применить в коде оператор Case.

Естественно, каждой кнопке нужно задать свое уникальное значение Tag.


 
Knob   (2009-05-05 17:45) [7]

И вам спасибо


 
Игорь Шевченко ©   (2009-05-05 18:27) [8]

Amoeba ©   (05.05.09 17:36) [6]


> Эффективнее идентифицировать кнопки не по


И забыть этот Tag присвоить


> Тогда можно применить в коде оператор Case.


И сделать совершенно нечитабельный код.

Я конечно сильно извиняюсь, тезка, но о какой эффективности может идти речь в коде, связанном с интерфейсом пользователя ? Об эффективности по времени выполнения в этом случае говорить не приходится, об эффективности по использованию кодом памяти в Windows вообще очень трудно говорить, так как в память он попадает порциями.

На самом деле полезнее, раз уж назначаются одинаковые события на срабатывание кнопки, делать эти события независимыми от того, на какую кнопку нажали. А если они зависят, то назначать каждое событие конкретной кнопке.


 
Palladin ©   (2009-05-05 18:58) [9]

Ну иногда случаются такие вещи, как 95% кода одинаковы, а 5% зависят от источника... а мы же не китайцы )
tag, конечно, штука полезная, но, согласен с Игорем, применение его для идентификации довольно сомнительно.


 
Германн ©   (2009-05-05 19:19) [10]


> tag, конечно, штука полезная, но, согласен с Игорем, применение
> его для идентификации довольно сомнительно.
>

На вкус и цвет...
:)


 
Denis__ ©   (2009-05-05 23:24) [11]

Сделать целочисленные константы, присвоить их значения тагу %) Код станет читабельным) *CRAZY*


 
Германн ©   (2009-05-06 02:09) [12]


> Denis__ ©   (05.05.09 23:24) [11]
>
> Сделать целочисленные константы, присвоить их значения тагу
> %) Код станет читабельным) *CRAZY*
>

???


 
Германн ©   (2009-05-06 02:17) [13]

Имхо.
При использовании тэгов (свойство Tag в Дельфи), для "удобочитаемости" кода ,достаточно привести комментарии, которые нужно приводить всегда!


 
Игорь Шевченко ©   (2009-05-06 02:28) [14]

Германн ©   (06.05.09 02:17) [13]


> При использовании тэгов (свойство Tag в Дельфи), для "удобочитаемости"
> кода ,достаточно привести комментарии, которые нужно приводить
> всегда!


"Штирлиц — добрая душа, — вздохнул второй фронтовик, — я помню, три дня назад тут били японского шпиона, так все били ногами, а Штирлиц — нет" (с)



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

Форум: "Начинающим";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
15-1239829821
dmk
2009-04-16 01:10
2009.06.21
Совместный доступ


2-1241037428
бульдозер
2009-04-30 00:37
2009.06.21
как зная ID процесса получить хендл окна этого процесса


6-1203935494
manarov
2008-02-25 13:31
2009.06.21
Navigate неверно работает?


15-1239620213
ZeroDivide
2009-04-13 14:56
2009.06.21
Лицензионные фильмы


15-1239446512
Копир
2009-04-11 14:41
2009.06.21
А вот вопрос про принтер?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский