как сделать StayOnTop формы в мсе ???

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

как сделать StayOnTop формы в мсе ???

Сообщение amateur » 22.12.2010 18:35:46

В лазаре все просто: создал форму и св-ве FormStyle указал StayOnTop. И висит себе форма поверх главной. В мсе добился желаемого "результата" только когда вывел окно в виде модальной формы (при этом саму форму нужно свернуть развернуть - тогда есть доступ к главной форме).
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: как сделать StayOnTop формы в мсе ???

Сообщение coyot.rush » 22.12.2010 20:02:05

В лазаре все просто: создал форму и св-ве FormStyle указал StayOnTop

И корректно работает под любым дистрибутивом Linux, с любым оконным менеджером???
Хотя вот тут говорится о смене фокуса http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html
Но как устоновить "всегда наверху" нет :?:
_NET_ACTIVE_WINDOW

_NET_ACTIVE_WINDOW, WINDOW/32

The window ID of the currently active window or None if no window has the focus. This is a read-only property set by the Window Manager. If a Client wants to activate another window, it MUST send a _NET_ACTIVE_WINDOW client message to the root window:

_NET_ACTIVE_WINDOW
window = window to activate
message_type = _NET_ACTIVE_WINDOW
format = 32
data.l[0] = source indication
data.l[1] = timestamp
data.l[2] = requestor's currently active window, 0 if none
other data.l[] elements = 0

Source indication should be 1 when the request comes from an application, and 2 when it comes from a pager. Clients using older version of this spec use 0 as source indication, see the section called “Source indication in requests” for details. The timestamp is Client's last user activity timestamp (see _NET_WM_USER_TIME) at the time of the request, and the currently active window is the Client's active toplevel window, if any (the Window Manager may be e.g. more likely to obey the request if it will mean transferring focus from one active window to another).

Depending on the information provided with the message, the Window Manager may decide to refuse the request (either completely ignore it, or e.g. use _NET_WM_STATE_DEMANDS_ATTENTION).


Добавлено спустя 35 минут 59 секунд:
XRaiseWindow - разместить окно поверх остальных

http://www.asvcorp.ru/tech/linux/xwinprg/functions/XRaiseWindow.html
Код: Выделить всё
test(const sender: TObject);
var
prDisplay: PDisplay;
begin
prDisplay := XOpenDisplay ( nil );
if prDisplay = nil  then
begin
  writeln('Can not connect to the X server!');
exit;
end;
XRaiseWindow(prDisplay,mainfo.window.winid);   
XCloseDisplay ( prDisplay );
end;

не работает :(
OS : Mint 9

Добавлено спустя 3 минуты 24 секунды:
Показать Qt окно в X11 поверх всех http://blog.netstream.ru/2008/12/raise_x11_window/
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: как сделать StayOnTop формы в мсе ???

Сообщение debi12345 » 22.12.2010 23:28:46

На MSE-формах есть даже кнопочка "оставаться наверху". То есть фишка предусмотренная.

Добавлено спустя 10 минут 49 секунд:
<form>.frame.grip.options+= go_topbutton и другие для оперативного перключения Z-порядка
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: как сделать StayOnTop формы в мсе ???

Сообщение amateur » 23.12.2010 17:04:12

мдя и эт есть ток в tdockform в простой форме нет...
Ладно попробую дома поиграть.

Дело в том что форму для поиска нужно держать всегда сверху (такое желание не у меня) кому угодно, мона посмотреть http://fayloobmennik.net/270787 (первый попавшийся обменник, не очень, но потянет). Все пока сыровато, но это дело поправимо :). Да и пока меня интересует вин версия а не лин. Ммм. Если я форму для поиска свернул а потом развернул и появился доступ к основному окну это баг.?

debi12345 - не досмотрело я :)


Попутно: как относится к кросс отчетам мсе репорт?
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: как сделать StayOnTop формы в мсе ???

Сообщение debi12345 » 23.12.2010 18:04:58

как относится к кросс отчетам мсе репорт

Не знаю, что такое "кросс-отчеты" :)
МСЕ-репорт позволяет комбинировать GUI с кодом, перезапускать генерацию с новой порцией данных в том же отчете - короче все,что душе угодно.

( есть у меня проектик PODPISKA, который часто фигурирует в ньюс-конфе - в нем все это безобразие интенсивно применяется )
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: как сделать StayOnTop формы в мсе ???

Сообщение amateur » 23.12.2010 18:46:44

debi12345 немного лазил по Вашим исходникам да и не только :) Иванков (кажись). Тока лазил я по формам а не отчетам. Ну не удобен генератор отчетов в мсе (просто есть фас репорт - лицензия. После фаста мало что взлетало). Компилить не пытался по двум причинам (для проверки в действии):
1. Постер, я с ним не дружу :(
2. Там столько "юмора" что изучать и изучать (типа пособие для начинающих :))

Иногда в мсе вроде мелочь, а лопатить приходится...


Кросс, пивор как там ее еще "обзывают"... Уменя на работе куды не плюнь там кросс "закопан" да и не только в отчетах (благо грид в мсе ппц., в хорошем смысле слова)
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: как сделать StayOnTop формы в мсе ???

Сообщение debi12345 » 23.12.2010 19:26:40

Иногда в мсе вроде мелочь, а лопатить приходится...

Это вопрос документирования.
Мартин просит за написание доки им самим 60.000 евро :)

Ну не удобен генератор отчетов в мсе

Задача удобства и не ставилась.
А ставилась - возможность создать ЛЮБОЙ отчет.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: как сделать StayOnTop формы в мсе ???

Сообщение amateur » 24.12.2010 10:58:05

я бы больше взял :) (сколько копеек, эхх)

Гдет пол года назад пытался сделать тулбар (аля офис). Было все красиво до максимизации главного окна. Т.е. дочерняя форма висит сверху главной пока не максимизируется окно. Тогда решил отказаться от данного "юмора". На данный момент ситуация не изменилась. Кстати в иде (по крайней мере в винде), если нажать "заветную" кнопку результат фиговенький... Т.е., как я понял, StayOnTop как таковой есть, но чет не доработано.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: как сделать StayOnTop формы в мсе ???

Сообщение debi12345 » 24.12.2010 11:09:47

Т.е., как я понял, StayOnTop как таковой есть, но чет не доработано.

Отпишите по пунктам, что не нравится. Я передам Мартину в ньюс-конфу.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: как сделать StayOnTop формы в мсе ???

Сообщение amateur » 24.12.2010 14:12:04

1. Делаем 2 формы (одна главная, вторая док);
2. Создаем из главной док форму;
3. Проверяем находится она сверху (просто клацнул на главную, для простоты мона еще контролы повесить на главную);
4. Проверка показала: работает форма висит поверх главной;
5. А теперь максимизируем главную форму и... оппа где док форма делась.?

Попутно, еще баг:
Есть хорошая функция для показа доп. меню. Т.е. взял кнопку, popupmenu. В обработчике кнопки написал показать меню под кнопкой (не помню название процедуры, да это и не важно, она работает и отображает все правильно). Во время исполнения нажимаем кнопку, а потом максимизуруем окно. В результате popupmenu висит где первоначально создавалось.

Все это относиться к винде в лине не тестил.


Если Вам не сложно и понятно из это хоть что-то задайте Мартину, если нет то сам разберусь как "донести" ему в уши. Токо пожже.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: как сделать StayOnTop формы в мсе ???

Сообщение debi12345 » 24.12.2010 15:36:18

Во время исполнения нажимаем кнопку, а потом максимизуруем окно. В результате popupmenu висит где первоначально создавалось.

А куда оно (меню) должно уйти ?
Думаю, что здесь нужен скриншот со стрелками-указателями что не так.

Добавлено спустя 49 минут 54 секунды:
1. Делаем 2 формы (одна главная, вторая док);
[..]

Здесь Мартин просит тесткэйс
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: как сделать StayOnTop формы в мсе ???

Сообщение amateur » 29.12.2010 11:50:26

Вопрос решил "модальностью", через док - лажа. У него срабатывает как - то по верх окон странно. А для теста можна и в иде галочку поставить и посмотреть: как док держиться сверху...
По поводу меню: http://depositfiles.com/files/nkpuvmpfc
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: как сделать StayOnTop формы в мсе ???

Сообщение debi12345 » 05.01.2011 13:25:22

Попутно, еще баг:
Есть хорошая функция для показа доп. меню. Т.е. взял кнопку, popupmenu. В обработчике кнопки написал показать меню под кнопкой (не помню название процедуры, да это и не важно, она работает и отображает все правильно). Во время исполнения нажимаем кнопку, а потом максимизуруем окно. В результате popupmenu висит где первоначально создавалось.

И ответ:
As designed, popup menus are normally triggered by RighClick and therefore
not anchored to a base widget. Please use tmainmenuwidget (tab 'Widget')
instead.

PS:
То есть функцию поп-апа может выполнять также виджет, предназначенный для основного меню.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: как сделать StayOnTop формы в мсе ???

Сообщение amateur » 17.01.2011 11:58:20

tmainmenuwidget
- имеет фокус ??? (работа с клавиатурой, без мыши)

Т.е. - это не баг. И краше использовать другой компонент. А если нужно именно так. Ведь существуют подобные реализации. Т.е. кнопка - popup.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: как сделать StayOnTop формы в мсе ???

Сообщение amateur » 19.01.2011 16:44:13

кстати сам popup реагирует подобным образом:нажимаем правую клавищу, вылазит меню, потом максимизируем окно и :) прикольно однако.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

След.

Вернуться в MSEide + MSEgui

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Рейтинг@Mail.ru