![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Корректно ли такое приведение типов?
kull © (2002-06-20 00:27:00)Привет народ!
Наткнулся на следующую проблемму:
В мою процедуру передается некий контрол,о котором я знаю только что он - TWinControl. И мне надо присвоить protected свойству нужное значение. Но так как свойство protected на прямую к нему не доступиться. Так вот: корректно ли следующее приведение типов?
type
TMyWinControl = class(TWinControl)
end;
procedure TForm1.MyClick(Sender: TObject);
begin
Beep;
end;
procedure TForm1.SetHandlers(AWinControl: TWinControl);
begin
//можно ли так доступаться к protected свойству?
TMyWinControl(AWinControl).OnClick := MyClick;
end;
Проект компиляется и работает, но правильно ли так делать и не грозит ли это глюками в дальнейшем?
Cobalt (2002-06-20 01:28:00) [21]>В мою процедуру передается некий контрол,о котором я знаю только что он - TWinControl.
В свете вышесказанного - приведение типов абсолютно некорректно, делать так - неправильно, грозит глюками и Access Violation.
Если вы планируете передавать в процедуру контролы различных типов, то проверяйте, являются ли они теми контролами, которые вы знаете (напр. стандартные, типа TEdit, TButton и др.).
З.Ы. OnClick - Это же не protected свойство (впрочем, неважно)