|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
создание компонента на основе TImage с SetFocus
создаю компонент на основе Image. идея компонента - табличный редактор, берет из фаила данные и представляет в виде таблицы. Примерно тот же StringGrid только вся отрисовка данных сделана вручную. Примерно все представляю как и что, но есть и загвоздки. Мне нужно чтобы моему компоненту можно было передать фокус, как Edit'у или Memo. Чтобы можно было написать NewComponent.SetFocus. и после этого он обрабатывал бы все нажатия кнопок и тд. к примеру мне нужно чтобы он реагировал на прокрутку колесика мыши. если я правильно понимаю то после передачи ему фокуса это не составит труда, а так пробовал хуки, но все они либо вообще не работаю либо работают в какой то определенный момент. стоит мне шелкнуть на FileListBox например и все, мой компонент уже не ловит события от мыши. Но как создать свойство SetFocus у компонента. который отродясь им не обладает, я понятия не имею. Если кто знает подскажите плиз.
|
#2
|
||||
|
||||
Посмотри как реализовано это свойство у TWinControl и по аналогии создай своё.
|
#3
|
||||
|
||||
наследуйся от TCustomControl - как раз для таких целей. может и фокус получать и Paint с Canvas есть.
Пишу программы за еду. __________________ |
#4
|
|||
|
|||
спасибо за ответы. попробовал TCustomControl, вроде бы подходит. только ни одного события, все надо прописывать
|
#5
|
||||
|
||||
ну естественно нужные тебе методы переопределить.
Пишу программы за еду. __________________ |
#6
|
|||
|
|||
Конечно мне этот TCustomControl решив проблемы с фокусом создал много других проблем. Ему нельзя задать Popumenu. Как создать это свойство у него?
Прописал ему событие OnMouseDown, но без координат. У меня : Код:
procedure TForm1.MyComponent1MouseDown(Sender: TObject); Код:
procedure TForm1.MyComponent1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |