OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 17 Июнь, 2025 23:40

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Edit Field
СообщениеДобавлено: Воскресенье, 20 Май, 2007 22:08 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
В Edit Field не работает контекстное меню ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 29 Май, 2007 22:14 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Edit Field использует в качестве Frame HostCFrames, который использует стандартный контрол WinAPI. Интересно, а WinAPI Edit поддерживает сразу контекстное меню, или это уже библиотеки вроде VCL наслаивают его своими силами?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 29 Май, 2007 22:51 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Илья Ермаков писал(а):
Edit Field использует в качестве Frame HostCFrames, который использует стандартный контрол WinAPI. Интересно, а WinAPI Edit поддерживает сразу контекстное меню, или это уже библиотеки вроде VCL наслаивают его своими силами?

Конечно поддерживает.
Цитата:
With version 4.0 or later, an edit control includes a built in context menu that makes it easy for the user to move text between the edit control and the clipboard. The context menu appears when the user clicks the control using the right mouse button. The menu items in the context menu include Undo, Cut, Copy, Paste, Delete, and Select All.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 29 Май, 2007 23:42 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Тогда надо покопать в HostCFrames - реализация кадров под стандартные контролы. См. тип Field и особенно процедуру-обработчик событий CtrlHandler - вероятно, там чегой-то не дообрабатывается. У меня, к сожалению, сейчас времени нет копнуть это дело...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 00:56 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Там обработка событий мыши от всех контролов идет в одной процедуре HandleMouse. И события от правой и левой кнопок обрабатываются одинаково... Наверное, причину надо искать в другом модуле типа Controls.
-----
Документации нету ни на StdCFrames, ни на StdDialog, ни на Windows, ни на Documents, ... Это же не модули реализации типа Host'a и должны быть документированы :evil:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 02:50 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Есть предложение выкинуть в HostCFrames.Field.Restore из множества стилей стиль border. Тогда Edit в BB будет выглядеть так же, как и в других программах под Windows XP, а не с двойной рамкой.
Код:
...
style := {2, 6, 16, (*23,*) 30};   (* multiline, autovscroll, tabstop, border, child *)
...
style := {7, 16, (*23,*) 30}   (* autohscroll, tabstop, border, child *)
...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 03:46 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Получилось!!! :D
В HostCFrames.HandleMouse нужно исправить последний цикл:
Код:
  REPEAT
    res := USER32.GetMessageA(msg, 0, 0, 0);
    IF (msg.message >= USER32.WMMouseMove) & (msg.message <= USER32.WMMButtonDblClk) THEN
      b := msg.wParam
    END;
    (**** BEGIN ****)
    IF msg.message = USER32.WMRButtonUp THEN
      res := USER32.ClientToScreen(wnd, pt);
      res := USER32.SendMessageA(wnd, 007BH, b, pt.x + pt.y * 65536) (* WMContextMenu *)
    END;
    (**** END ****)
    res := USER32.TranslateMessage(msg);
    res := USER32.DispatchMessageA(msg)
  UNTIL b MOD 4 = 0;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 08:50 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2461
Откуда: Россия, Томск
Отличная работа, спасибо! :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 09:47 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну что, ребята, я пошлю новый апдейт в Оминк, пускай включают? :-)
Как подписать автора патча? :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 10:11 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
По поводу рамки - у меня на Wine разница мизерная, но ежли сейчас делают с таким стилем, то, возможно, стоит и исправить!
Может, Вы глянете острым глазом стили и у других контролов? В частности, с отметкой фокуса собака может быть здесь зарыта...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 12:15 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
При отключенных темах WinXP тоже разницы нет. :wink:
А вообще везде в style := {...} надо убрать 23 (border) -- в Edit Field, Time Field, Date Field, Up/Down Field, ...
Откопать "собаку фокусника" не получилось :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Edit Field
СообщениеДобавлено: Среда, 30 Май, 2007 13:03 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
PGR писал(а):
В Edit Field не работает контекстное меню ...


Все это следствие того, что обработка очереди сообщений
в BlackBox реализована, мягко говоря, плохо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 22:13 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Данный вопрос не к очереди сообщений Framework относится, а к внутренней реализации.... Framework спроектирован отлично, внутренняя реализация Host требует больших перетряхиваний...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 02:12 

Зарегистрирован: Среда, 17 Январь, 2007 03:59
Сообщения: 225
Илья Ермаков писал(а):
Данный вопрос не к очереди сообщений Framework относится, а к внутренней реализации.... Framework спроектирован отлично, внутренняя реализация Host требует больших перетряхиваний...


Я как раз и имел ввиду внутреннюю реализацию


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 12 Июнь, 2007 08:22 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Илья Ермаков писал(а):
Ну что, ребята, я пошлю новый апдейт в Оминк, пускай включают? :-)
Как подписать автора патча? :-)

Приняли патч?
И вообще, куда им посылать свои исправления?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 12 Июнь, 2007 11:36 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
У них на сайте есть е-майл техподдержки.
С нами обычно взаимодействует Марк Фрей.
Я отослал патч уже весьма давно, ответа нет, хотя на предыдущие он всегда отвечал, что весьма благодарны и примем, давайте еще :-)
Может, в отпуск ушел...
Перешлю еще раз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 12 Июнь, 2007 11:40 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да, прошлое письмо я отправлял 30 мая. Ответа не было.
Цитата:
Hello, Mark!

Member of russian community Yuriy Skalko did some corrections in HostCFrames.

At first, it is support for Windows context menus for controls:

PROCEDURE HandleMouse (wnd: WinApi.HANDLE; x, y: INTEGER; buttons: SET);
...
REPEAT
res := WinApi.GetMessageW(msg, 0, 0, 0);
IF (msg.message >= WinApi.WM_MOUSEMOVE) & (msg.message <= WinApi.WM_MBUTTONDBLCLK) THEN
b := msg.wParam
END;
(* CHANGES BEGIN *)
IF msg.message = WinApi.WM_RBUTTONUP THEN
res := WinApi.ClientToScreen(wnd, pt);
res := WinApi.SendMessageA(wnd, 007BH, b, pt.x + pt.y * 65536) (* WMContextMenu *)
END;
(* CHANGES END *)
res := WinApi.TranslateMessage(msg);
res := WinApi.DispatchMessageW(msg)
UNTIL b MOD 4 = 0;

At second, he introduce to change style of edit field and did it without double-frame, to be same to Windows XP default view:
in Field.Restore
style := style := {2, 6, 16 (*, 23 *), 30};
(* multiline, autovscroll, tabstop (*, border *), child *)

With best regards,
Ilya Ermakov.


Переслал еще раз. Уже бывало, что до них письма не доходили.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 15 Июнь, 2007 22:27 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Цитата:
...
sorry for this somewhat late reply. Yes, we have received your
suggestions. We will have a look at them while preparing the final
release of BlackBox 1.6.
Thanks a lot and with best regards...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 16 Июнь, 2007 19:47 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
А когда они собираются выпустить BB 1.6 что-нибудь известно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 16 Июнь, 2007 19:55 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Неа... Только шлю исправления, в ответ "спасибо, включим в 1.6, давайте еще!" :-) А когда - неизвестно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB