![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Rian |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
пробую сделать объект с наследованием от Tpanel
и передавать ссылку от одного объекта другому, по драг дроп ток не срабатывает метод dragover почему-то
и как перемещать Tperson обрабатывая img.mousemove ЗЫ это понял procedure Tperson.imageMouseMove(Sender: TObject; Shift: TShiftState; X, Сообщение отредактировано: Rian - 31.05.2011 19:22 -------------------- Objective-C, Unity3d
|
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
На сообщения компилятора внимательно смотрел? То, что твой метод DragOver скрывает виртуальный метод предка - тебе по барабану? Вот компилятору, как видно, нет. Объяви его как override (для этого придется поставить правильную сигнатуру)...
|
Rian |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
На сообщения компилятора внимательно смотрел? То, что твой метод DragOver скрывает виртуальный метод предка - тебе по барабану? Вот компилятору, как видно, нет. Объяви его как override (для этого придется поставить правильную сигнатуру)... ну создание это обходит... как это правильную? -------------------- Objective-C, Unity3d
|
Rian |
![]()
Сообщение
#4
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
... сделал обходным путем
OnDragOver:=DragOver2; OnDragDrop:=DragDrop2; а как все таки по нормальному? -------------------- Objective-C, Unity3d
|
IUnknown |
![]()
Сообщение
#5
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата ну создание это обходит... И создание тоже, кстати, надо Override-ить. Смотри: ты наследуешься от чего? От TPanel, так? То есть, в наследнике должен быть такой же метод DragOver, как и в предке. Какой он в предке? Вот такой:, то есть, Sender-ом там даже и не пахнет. Сендер появляется, когда ты начинаешь писать обработчик события OnDragOver. Чувствуешь, где ты путаешься? Ты пишешь свой компонент. Напишешь, зарегистрируешь, положишь на форму - вот тогда при выборе в Инспекторе Объектов этого события у тебя первым параметром добавится Sender. А реализовывать сам метод DragOver в потомке, извини, придется без Sender-а. |
Rian |
![]()
Сообщение
#6
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сендер появляется, когда ты начинаешь писать обработчик события OnDragOver. Чувствуешь, где ты путаешься? не уверен... а где я буду писать обратчик OnDragOver? Когда я написал так пишет неизвестная директива procedure DragOver(Source: TObject; X, Y: Integer; куда-то не туда иду? смотрел по ссылке property OnDragOver: TDragOverEvent; это куда? -------------------- Objective-C, Unity3d
|
IUnknown |
![]()
Сообщение
#7
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Стоп... Что значит "неизвестная"? Вот так:
![]() очень даже известная, компилируется без вопросов... Цитата а где я буду писать обратчик OnDragOver? Обработчик события - это не метод. Ты в классе реализуешь метод DragOver. Создаешь компонент. Пользователь хочет работать с Drag-n-Drop. Его устраивает от функционал, который ты заложил в компонент - ничего не надо делать, все работает по умолчанию (при наступлении события). Не устраивает - он дабл-кликает на нужное событие, и пишет обработчик OnDragOver...Еще раз: не путай метод и событие. Когда наступает событие. Когда наступает событие OnSomething выстреливается метод Something. Вот тебе пример. Знаешь, что такое Interceptor-класс, да? Это тот класс, который пишется перед классом формы для "открытия" каких-то частных или защищенных свойств/методов. Очень частая практика. Вот смотри: unit Unit1;И теперь, не назначая никаких обработчиков событий OnClick, ничего вообще не делаем, сразу запускаем код на выполнение и жмем кнопку. Что произошло? Ага!!! Событие OnClick наступило, и сработал метод Click... Чувствуешь разницу? |
Rian |
![]()
Сообщение
#8
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
ну понятно...наверно...
я overrride в interface и implementation сразу написал, оно ругалось.. -------------------- Objective-C, Unity3d
|
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 0:57 |