![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Typecasting [D6, XP]
Magedon © (2009-03-24 17:40:00)Доброе время суток уважаемые.
Вразумите или подскажите где по-русски можна вразумиться какая разница между TEdit(Sender) и (TEdit as Sender) ?
Спасибо
clickmaker (2009-03-25 08:13:00) [1]- официант, это чай или кофе?
- а вы не можете разобрать?
- нет...
- тогда какая вам разница?
Немо (2009-03-24 18:34:00) [2]проверяем
procedure TForm1.Button1Click(Sender: TObject);
begin
if Sender is TEdit then TEdit(Sender).Text:='wewew';
(Sender as TEdit).Text:='wewew'; //invalid class typecast
end;
Palladin (2009-03-24 18:19:00) [3]здрасте.. а исключение?
Magedon (2009-03-24 18:17:00) [4]Тоесть между
if Sender is TEdit then
TEdit(Sender)
и
(TEdit as Sender)
нет никакой разницы?
Немо (2009-03-24 18:16:00) [5]брекуем и смотрим разницу
tButton(sender).Caption:='wewe';
0044D947 BA74D94400 mov edx,$0044d974
0044D94C 8BC3 mov eax,ebx
0044D94E E829F5FDFF call TControl.SetText
(sender as tButton).Caption:='wewe';
0044D953 8BC3 mov eax,ebx
0044D955 8B1584624200 mov edx,[$00426284]
0044D95B E82859FBFF call @AsClass
0044D960 BA74D94400 mov edx,$0044d974
0044D965 E812F5FDFF call TControl.SetText
Плохиш (2009-03-24 18:05:00) [6]
> какая разница между TEdit(Sender) и (TEdit as Sender) ?
Первое, просто приведение типа, второе, приведение типа с предварительной проверкой на возможность оного и подъёмом исключения при недопустимости приведения.