Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.12;
Скачать: CL | DM;

Вниз

События OnEnter и OnExit.   Найти похожие ветки 

 
S7r   (2008-04-11 00:44) [0]

Здравствуйте. Возникла такая проблема: есть компонент скажем memo родителем которого также являеться memo:
Memo1.Parent:=Memo2
Теперь если например щелкнуть правой кнопкой мыши по memo1 то у memo1 сработает сначало OnExit а затем сразу OnEnter. Это крайне не желательное поведение. Можно ли каким-либо образом избавиться от потери и восстановления фокуса в данном случае? Или хотябы определить что это фиктивная его потеря (дело в том что даже в WndProc Memo2 управление передается только после OnExit у Memo1)
Дело в том что мне необходимо при выходе фокуса из Memo1 спрятать его и уничтожить т.к. это вспомогательный компонент, но из за подобного поведения при попытке открыть его контекстное меню все накрывается.
Заранее благодарен за совет.


 
Германн ©   (2008-04-11 00:59) [1]


> S7r   (11.04.08 00:44)

Memo, у которого Parent тоже Memo, кажется мне весьма надуманным примером. Может перейдешь к реальному примеру? Это во-первых. Во-вторых, зачем задал вопрос в WinAPI? Разве
> События OnEnter и OnExi
имеют какое-либо отношение к WinAPI?


 
S7r   (2008-04-11 01:11) [2]

Может перейдешь к реальному примеру?
Хорошо. Есть listview. у него есть поле появляющееся для редактирования caption item"a. Это поле я хочу заменить на memo. Суть вроде не сильно изменилась... З.ы. заменяю я его не просто так а потому что ListView в OwnerDraw и редактирование caption также реализовывалось вручную.

Во-вторых, зачем задал вопрос в WinAPI?
Мда. С этим вышла накладка. Стоит меня пнуть.


 
S7r   (2008-04-11 01:19) [3]

Да корни растут вот оттуда:
http://delphimaster.net/view/4-1206293624/


 
Германн ©   (2008-04-11 01:31) [4]


> S7r   (11.04.08 01:11) [2]
>
> Может перейдешь к реальному примеру?
> Хорошо. Есть listview. у него есть поле появляющееся для
> редактирования caption item"a. Это поле я хочу заменить
> на memo. Суть вроде не сильно изменилась...

Суть изменилась радикально. "поле появляющееся для
> редактирования caption" есть InplaceEditor. Именно его и нужно реализовать в наследнике TListView.


 
S7r   (2008-04-11 01:45) [5]

Такc.
>есть InplaceEditor. Именно его и нужно реализовать в наследнике TListView.
Беглый поиск по InplaceEditor что-то не дал серьезных результатов. Это какой-то стиль окон редактирования или я ошибаюсь?
Теперь известно какое поведение memo мне необходимо. Я так понимаю я копаю не в ту сторону удаляя свой мемо в OnExit?


 
Германн ©   (2008-04-11 02:04) [6]


> S7r   (11.04.08 01:45) [5]
>
> Такc.
> >есть InplaceEditor. Именно его и нужно реализовать в наследнике
> TListView.
> Беглый поиск по InplaceEditor что-то не дал серьезных результатов.
>  Это какой-то стиль окон редактирования или я ошибаюсь?

Ошибаешься. Для каждого свойства (property), которое допускает редактирование в рантайме и/или дизайнтайме, должен быть зарегистрирован свой редактор.


 
S7r   (2008-04-11 03:05) [7]

Итак временно решил проблему. Поставил Parent"ом моему Memo владельца listview. Теперь при открытии контекстного меню фокус не теряется. Но мне такое решение не очень нравится. Потому как этот memo я уничтожал в деструкторе listview. А так получаеться я оставляю это на совести владельца. Да и преобразования ClientToParent для позиционирования memo тоже напрягают.


 
Германн ©   (2008-04-11 03:13) [8]


> S7r   (11.04.08 03:05) [7]

Не тем путём идёте товарисчь!


 
S7r   (2008-04-11 18:28) [9]


> Не тем путём идёте товарисчь!


Так направте, не сочтите за труд.


 
Германн ©   (2008-04-11 21:37) [10]


> Так направте, не сочтите за труд.
>

Ну почитай хотя бы это:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=806#02


 
имя   (2008-04-14 19:58) [11]

Удалено модератором


 
S7r   (2008-04-14 20:01) [12]

Спасибо за ссылку. Но, к сожалению, там нет ничего нового. Родителем Inplace Editor там также является форма.


 
Семеныч   (2008-04-14 20:06) [13]

Почему бы не редактировать заголовок Item"а в отдельном многострочном редакторе с модальной формой? Делается за 15 минут и все проблемы сразу исчезают.


 
имя   (2008-04-16 05:44) [14]

Удалено модератором


 
имя   (2008-05-05 17:48) [15]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2009.04.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
15-1234287680
Маэстро
2009-02-10 20:41
2009.04.12
Сколько это будет стоить?


2-1235371106
Ryden
2009-02-23 09:38
2009.04.12
Как повернуть компанент TDBGrid


2-1234350269
dmitry1208197320
2009-02-11 14:04
2009.04.12
Как сделать в компоненте TTreeView элемент списка выделенным


15-1234284520
Finansist
2009-02-10 19:48
2009.04.12
Кризис


2-1235653246
ывывыв
2009-02-26 16:00
2009.04.12
перетаскивение нескольких файлов на форму