Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.07.2011, 02:33
Fox Mulder Fox Mulder вне форума
Прохожий
 
Регистрация: 19.01.2011
Сообщения: 16
Репутация: 10
По умолчанию создание компонента на основе TImage с SetFocus

создаю компонент на основе Image. идея компонента - табличный редактор, берет из фаила данные и представляет в виде таблицы. Примерно тот же StringGrid только вся отрисовка данных сделана вручную. Примерно все представляю как и что, но есть и загвоздки. Мне нужно чтобы моему компоненту можно было передать фокус, как Edit'у или Memo. Чтобы можно было написать NewComponent.SetFocus. и после этого он обрабатывал бы все нажатия кнопок и тд. к примеру мне нужно чтобы он реагировал на прокрутку колесика мыши. если я правильно понимаю то после передачи ему фокуса это не составит труда, а так пробовал хуки, но все они либо вообще не работаю либо работают в какой то определенный момент. стоит мне шелкнуть на FileListBox например и все, мой компонент уже не ловит события от мыши. Но как создать свойство SetFocus у компонента. который отродясь им не обладает, я понятия не имею. Если кто знает подскажите плиз.
Ответить с цитированием
  #2  
Старый 08.07.2011, 02:50
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Посмотри как реализовано это свойство у TWinControl и по аналогии создай своё.
Ответить с цитированием
  #3  
Старый 08.07.2011, 09:34
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

наследуйся от TCustomControl - как раз для таких целей. может и фокус получать и Paint с Canvas есть.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 10.07.2011, 23:51
Fox Mulder Fox Mulder вне форума
Прохожий
 
Регистрация: 19.01.2011
Сообщения: 16
Репутация: 10
По умолчанию

спасибо за ответы. попробовал TCustomControl, вроде бы подходит. только ни одного события, все надо прописывать
Ответить с цитированием
  #5  
Старый 11.07.2011, 09:38
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну естественно нужные тебе методы переопределить.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 31.07.2011, 02:33
Fox Mulder Fox Mulder вне форума
Прохожий
 
Регистрация: 19.01.2011
Сообщения: 16
Репутация: 10
По умолчанию

Конечно мне этот TCustomControl решив проблемы с фокусом создал много других проблем. Ему нельзя задать Popumenu. Как создать это свойство у него?
Прописал ему событие OnMouseDown, но без координат.
У меня :
Код:
procedure TForm1.MyComponent1MouseDown(Sender: TObject);
а должно быть соответствено:
Код:
procedure TForm1.MyComponent1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
как добавить x,y, button ?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter