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

Вниз

Чем отличается (Sender as TLabel) и TLabel(Sender)?   Найти похожие ветки 

 
Павел_   (2004-07-23 13:43) [0]

Subj. TLabel - это пример. Интуиция подсказывает, что ничем, однако хотелось бы знать точно. Заранее благодарен.


 
Anatoly Podgoretsky ©   (2004-07-23 13:46) [1]

Интуиция тебя подвела, первый с проверкой допустимости приведения, а второе метод грубой силы.


 
Fay ©   (2004-07-23 13:48) [2]

Угадай, где оно сдохнет?

var
 b1, b2 : TButton;
begin
 b1 := TButton(Form1);
 b2 := Form1 as TButton
 ShowMessage(b1.Caption+b2.Caption);
end;  


 
Subdigger ©   (2004-07-23 13:50) [3]

Па моему привильно так
if sender is TLabel then... а дальше  (Sender as TLabel) и TLabel(Sender) не имеет значения


 
ИдиотЪ   (2004-07-23 13:53) [4]

Fay ©
по любому не откомпилится)


 
DiamondShark ©   (2004-07-23 13:58) [5]


> Угадай, где оно сдохнет?

При компиляции ;)


 
VMcL ©   (2004-07-23 14:02) [6]

>>Павел_  (23.07.04 13:43)

"(Sender as TLabel).SetFocus;" эквивалентно след. псевдокоду:
if not (Sender is TLabel) then
 raise Exception.Create("Вы лопухнулись!");
TLabel(Sender).SetFocus;


>>Subdigger ©  (23.07.04 13:50) [3]

>а дальше  (Sender as TLabel) и TLabel(Sender) не имеет значения

Если уже выполнена проверка "is", то зачем выполнять её еще раз в "as"? См. начало поста.


 
Павел_   (2004-07-23 14:49) [7]

2 All

Вообщем-то разобрался. Т.е в случае когда совершенно точно известно, что Sender есть TLabel, лучше сразу использовать TLabel(Sender)?


 
Sandman25 ©   (2004-07-23 14:49) [8]

Ага.


 
Павел_   (2004-07-23 15:02) [9]

Понял. Спасибо всем за ответы.



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

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

Наверх




Память: 0.48 MB
Время: 0.041 c
1-1090476209
Form
2004-07-22 10:03
2004.08.08
Дамп памяти процесса


14-1089639086
Piter
2004-07-12 17:31
2004.08.08
Создание форм в MDI приложении


4-1088340190
Agent[007]
2004-06-27 16:43
2004.08.08
Пуск


3-1089285208
VadimKV
2004-07-08 15:13
2004.08.08
Простой запрос из MSSQL2000 не работает в FireBerd1.5


6-1086519798
valex1
2004-06-06 15:03
2004.08.08
Имя хоста по IPшнику