powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / MDI и w_sheet
24 сообщений из 24, страница 1 из 1
MDI и w_sheet
    #32361568
Andry_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

Вы знаете что при открытии какого-либо окна w_sheet в рамке MDI его Title записывается в меню в пункт Window и помечается галочкой, как активный. Если открыть другой w_sheet, то он также будет помещен в пункт window и пометится галкой, а с неактивного галочка снимется.
При закрытии всех окон w_sheet - все Title из пункта меню window исчезнут.

Внимание! Вопрос!
Где скрипт, который определяет title активируемого листа и помещает его в пункт меню window?

Перерыл все. Но ничего не нашел.
Заранее спасибо.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32361638
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что происходит, когда пишем: OpenSheet(w_1, w_2, 4 , Layered! )? Наверное именно эта функция OpenSheet и делает всё это.
А по закрытию MDI разве нет скрипта, который закрывает все Sheet? Ну хотя бы такого:

window activesheet
activesheet = This.GetActiveSheet()
DO WHILE IsValid(activesheet)
Close(activesheet)
activesheet = This.GetActiveSheet()
LOOP
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32361663
Andry_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен!
Возможно добавление Title окна происходит в ф-ии Opensheet и удаление в Close.
Но ведь при активации окна ставится галочка! А в каком скрипте или ф-ии она ставится?
И что будет, если в меню не будет пункта m_window.

Может в виртуальной машине Билдера уже зашито управление этими галочками и добавлением/удалением Title для пункта меню m_window?
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32361769
Moiseeff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andry_KМожет в виртуальной машине Билдера уже зашито управление этими галочками и добавлением/удалением Title для пункта меню m_window?
Нет. См. Help по OpenSheet.
Код: plaintext
1.
2.
3.
position (optional) - The number of the menu item (in the menu associated
with the sheet) to which you want to append the names of the open sheets.
Menu bar menu items are numbered from the left, beginning with  1 .
The default value of  0  lists the open sheets under the next-to-last menu item.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32361775
Winnie-the-Pooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO, билдер здесть вообще не у дел - это стандартная функциональность MDI. За подробностями - в MSDN. "Отсебятина" билдера в работе с MDI - только стиль Layered!. Опять же - IMHO.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32361792
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, собственно, зачем это надо знать где у кого что в каком скрипте зарыто? Спортивный интерес? Или личные корыстные цели?
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32361814
Andry_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто была задача поставлена, управлять этими названиями.
Например:
Открываются несколько экземпляров одного окна с разной функциональностью, отличающейся незначительно. Ну соответственно и назвать эти окна надо по разному в пункте меню m_window.
Городить новые окна - увеличение трудозатрат.

В общем я пришёл к тому же мнению, что вы и написали.
Спасибо.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32362363
cbusel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В любом скрипте меняешь title, автоматом меняется текст в меню.
А если приперло из внешнего скрипта, можно поизвращаться так:
Код: plaintext
1.
2.
3.
w_mysheet lw
Opensheet(lw,'w_mysheet',...)
lw.title =  "Че надо" 
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32362526
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и не в тему ...
А можно ли заделать так, что бы один из открываемых sheet-ов не появлялся в этом меню ?
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32362592
Winnie-the-Pooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2PaulJB
Штатными средствами PB, IMHO - никак.
AFAIK, без трюков и средствами Win32 - никак.

MSDNWhenever a child window is created, the system automatically appends a new menu item to the window menu. The text of the menu item is the same as the text on the menu bar of the new child window. By clicking the menu item, the user can activate the corresponding child window. When a child window is destroyed, the system automatically removes the corresponding menu item from the window menu.

С интересом послушаю тех, кто это делал. С неменьшим интересом узнаю - зачем.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32363027
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJBА можно ли заделать так, что бы один из открываемых sheet-ов не появлялся в этом меню ?

Недавно Филипп отвечал на такой вопрос:
надо сделать Enabled = False для sheet
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32363190
Andry_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Whenever a child window is created, the system automatically appends a new menu item to the window menu
...
from the window menu.

Вот такого ответа я ждал. Спасибо огромное!
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32363243
Winnie-the-Pooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Anatoly Moskovsky
Всё, как вы говорили. Но как только я включаю enabled, пусть даже после открытия, пункты добавляются в меню. Без enabled окно неработоспособно. Вы сами пользовались этим апроарчем или "за что купил..."? Если пользовались, то расскажите подробнее..
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32363432
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык вопрос был как спрятать,
а про то, что его и использовать при этом надо, речи не было :))

Я сам не пользовался - ни разу не приходило в голову так делать.

Встречный вопрос - а зачем все это? Ведь пользователь ожидает от MDI другого поведения (того что в MSDN описано), и будет попросту путаться.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32363613
Winnie-the-Pooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Anatoly Moskovsky
Сам я MDI-окна от меню не прячу, не дошел ишшо до такой мудрости... :-))

Но предложенный вами способ меня заинтересовал и попытался прикинуть, как это будет работать. Почему не добавляет в меню при enabled = false мне, IMHO, понятно - видимо "сказать" MDI client'у "добавить пункт в меню, включить в список окрытых MDI-окон" должна функция окна MDI child, а управление ей не передаётся... Что-то типа этого...

Я думал, вы мне объясните как заставить MDI child после этого нормально работать и чем это может быть полезно...
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32364296
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Встречный вопрос - а зачем все это? Ведь пользователь ожидает от MDI
>> другого поведения (того что в MSDN описано), и будет попросту путаться.

Отвечу. Только ногами не бить плз. :))
Создается приложение в стиле MDI. В процессе создания выясняется, что лучше переделать его под стиль а-ля OutLook. Переделал. Все гуд, но единственное что мне не понравилось - это меню.
Да и у MDIFrameWindow есть пару полезных ф-ций присущих только ему.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32364343
Winnie-the-Pooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2PaulJB
Как нас учил великий Филипп, можно пристрелить MDI client и наслаждаться остальными удобствами frame - ковбойский такой подход. :-))

Пару раз я видел, как народ назначает MDI меню на первый пункт окна (&Files) и не заморачиваются. Расклад устанавливают "ручками".

PS Коллег вообще не бьём, тем более ногами. ;-))
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32364466
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Whenever a child window is created, the system automatically appends a new menu item to the window menu

А что, нельзя выделить специальный фиктивный пункт меню для того, чтобы в него все эти заголовки открытых окон помещались и его спрятать? Тогда их и видно не будет. Или надо не все прятать?
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32365126
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСоздается приложение в стиле MDI. В процессе создания выясняется, что лучше переделать его под стиль а-ля OutLook. Переделал. Все гуд, но единственное что мне не понравилось - это меню.

Да зря Вы так. Сдвинте MDIClient Object вправо, а в левой части своего MDI - окна (вне mdi_1), разместите свой объект - панель в стиле outlook. Между панелью и MDIClient object можите установить свой splitbar и таким образом сможите менять ширину панели и клиенской области mdi.

В листах, которы будут открываться в клиентской области установите следующие свойства:
Код: plaintext
1.
ControlMenu = false
WindowState = maximazed!

Открывайте листы так
Код: plaintext
openSheet(w_mySheet,w_mdi, 1 ,original!)

Тогда Ваши листы будут появляться в mdi окне без titlrbar, занимая всю область mdi_1, но в меню будет всегда виден список открытых листов, и по моему это совершенно замечательно, т.к пользователь сможет переключаться между ними как по <Ctrl>+<tab>, так и через меню.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32365931
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От всей души поздравляю все обчество с наступающим Новым Годом !!!
Желаю что-б клиенты вас уважали и хорошо платили за нелегкий наш труд.
Здоровья побольше и никакой головной боли !!!


2Ermak
Дык так именно и делаем. Точка в точку
Хочеться что-бы юзер мог перекючаться между окнами с только с помощью кнопок OutLook-bar.

2Andyn
Если я правильно понял - они открывают окно, а затем пункт, который отвечает за это окно прибивают ?
Если да, то как на этот пункт выйтить ?
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32366115
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 PaulJB:
Если я правильно понял - они открывают окно, а затем пункт, который отвечает за это окно прибивают ?
Если да, то как на этот пункт выйтить ?
Назначаете какой либо пункт меню в качестве winmenu , все шиты ложаться туда. А потом после открытия главного окна (а может быть и сразу при разработке) этот пункт меню делаете невидимым. Открываете шиты в "развернутом" виде. Ну а переключение между листами - с помощью собственных кнопок собственной панели...
ИМХО, самый простой вариант...

2 ALL:
Присоединяюсь к поздравлению уважаемого коллеги PaulJB .
Хочу пожелать вам всем, чтобы в новом году ваши желания офигели от ваших возможностей !
---
С уважением, IKAR
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32366546
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХочеться что-бы юзер мог перекючаться между окнами с только с помощью кнопок OutLook-bar.

Это как-то не гуманно по отношению к пользователю - лишить его возможности просмотреть список уже открытых им окон.

Может он хочет закрыть 2-3 уже не нужных? А как он это сделает? Где он сможет увидеть какие окна уже открыты?
То, что пользователь кроме стандартных способов переключения между открытыми окнами получает ещё и возможность выбора через нажатие кнопок на outlook-bar'e - это здорово, но зачем обрезать остальные способы?

2All
Присоединяюсь к пожеланиям PaulJB и Ikar.
Хочу пожелать всем в новом 2004 году - по настоящему больших творческих удач!
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32366560
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присоединяюсь к мнению Ermak - если не будет принудительного закрытия окон при переключении между режимами, т.е. окна будут оставаться в фоновом режиме, то пользователь должен их видеть и переключаться между ними не только через панельку слева, иначе действительно догадаться будет просто не возможно, что окно уже открыто. Насколько я понимаю переключение между окнами самим пользователем, минуя панель режимов, чревато тем, что сама панель может оказаться не синхронизированной с текущим активным окном. Для этой цели можно в событиях главного окна перехватывать переключение между дочерними MDI окнами и синхронизировать панель.

All
Поздравляю всех с наступающим Новым Годом. Желаю всем в Новом году здоровья и благополучия в семье, граммотных работодателей, достойных зарплат и профессионального роста.
...
Рейтинг: 0 / 0
MDI и w_sheet
    #32370044
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот если кому интересно, одно из моих упражнений с MDI

http://powerbuilder.codexchange.sybase.com/files/documents/67/1178/cwinmdi.zip
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / MDI и w_sheet
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]