TWinControl.SelectNext

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dmitry
Сообщения: 8
Зарегистрирован: 22 июн 2004, 15:47

13 июл 2004, 15:28

Где я туплю?:
есть класс TEditEx = class(TCustomEdit), в нем пишу в KeyPress:

Код: Выделить всё

...
Parent.SelectNext(Self, true, true);
...
Этот код даже не хочет компилироваться :?:
Parent is TWinControl, TWinControl имеет метод SelectNext
В чем проблемы?
Dmitry
Сообщения: 8
Зарегистрирован: 22 июн 2004, 15:47

13 июл 2004, 15:32

Забыл сказать, что сейчас работает такой код:
if (Owner is TCustomForm) then (Owner as TCustomForm).Perform(WM_NEXTDLGCTL, 0, 0);
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

13 июл 2004, 17:24

К сожалению, метод SelectNext объявлен как protected и поэтому не может быть квалифицирован именем объекта за пределами области видимости (в данном случае, самого класса TWinControl и его наследников). Пользуйтесь WM_NEXTDLGCTL.
Dmitry
Сообщения: 8
Зарегистрирован: 22 июн 2004, 15:47

13 июл 2004, 18:04

"Догадался" посмотреть Controls.pas, действительно все правильно. Но из каких соображений они не поставили этому методу тип virtual?
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

13 июл 2004, 18:21

При чем здесь virtual? А почему не объявили public-ом, не знаю.
Ответить