Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чем отличается (Sender as TLabel) и TLabel(Sender)? [D7, Win95/98]


Павел_ ©   (2004-07-23 13:43:00) 

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


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

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


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

2 All

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


Sandman25   (2004-07-23 14:49:00) [3]

Ага.


VMcL   (2004-07-23 14:02:00) [4]

>> Павел_  (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"? См. начало поста.


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


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

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


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

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


Subdigger   (2004-07-23 13:50:00) [7]

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


Fay   (2004-07-23 13:48:00) [8]

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

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


Anatoly Podgoretsky   (2004-07-23 13:46:00) [9]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо