Re: Восстановить цепочку форм | |
---|---|
lulgu Автор Сообщений: 1838 Дата регистрации: 30.11.2016 |
Все верно. В хелпе речь идет о "коллекции форм объекта _SCREEN", т.е. о коллекции _SCREEN.FORMS и об удалении форм из этой коллекции, которая специфична тем, что не имеет обычных для коллекций методов ADD() и REMOVE(). |
Re: Восстановить цепочку форм | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Про то и речь ------------------ WBR, Igor |
Re: Восстановить цепочку форм | |
---|---|
lulgu Автор Сообщений: 1838 Дата регистрации: 30.11.2016 |
И что было ясно с самого начала. Непонятно, зачем нужно было городить эту "этажерку", если можно использовать класс Collection и цикл FOR EACH ...ENDFOR. |
Re: Восстановить цепочку форм | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Ниче так и не ясно, и желаемого видеоэффекта (цепочки-задачи, где фокус) так и не понял. Эти циклы (1:много ?) почему оказались проблемные - не ясно. Пока реальный проект в руки не возьмешь, то все кажется банальным. А ведь каждый проект несчастен по своему )
|
Re: Восстановить цепочку форм | |
---|---|
lulgu Автор Сообщений: 1838 Дата регистрации: 30.11.2016 |
А зачем нужно создавать такие "цепочки", это занятие для новичков. Сделать видимыми формы можно в цикле. Их можно выложить "каскадом" или "черепицей". Нужные формы можно пометить в свойствах формы. В качестве метки я предложил Аспиду формы раскрашивать (уж больно он любит раскраски, словно ребенок). Определенную последовательность имен форм через разделители можно сохранять тоже в свойствах. Также для этой цели можно использовать меню "Окна", ini-файлы и др. Что касается проектов, то в данном случае сохранение открытых форм как объектов в Collection или в массиве это типовая задача для любого проекта. |
Re: Восстановить цепочку форм | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Не Игорь, если решать не абстрактно (для все, и навсегда), а конкретно. То не особо и сильно гиморно. Просто, видимо, юзеры не пользуются почти возможностью вызова множества форм. (потому что, там изначальный косяк с псевдо- модальностью) А потому и нет нужды решать задачу. Потому отложил) Был бы год 2000й, решил бы ради интереса, на будущее) ------------------ |
Re: Восстановить цепочку форм | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Решений несколько: 1. Если Дочерняя форма может существовать без родительской (каждая форма имеет свою сессию данных, например: форма списка документов - форма редактирования документа), в этом случае: в дочернюю форму передаю PK-документа, hnd окна родительской формы, таким образом отвязываюсь от "висящих" ссылок, профит: -) можно "убить" родителя без закрытия дочерней формы. -) можно из одной родительской вызвать неограниченное кол-во дочерних (например форм редактирования), более того для одного документа можно иметь несколько форм редактирования. hnd окна родительской формы нужен для того, что бы найти родителя, например для того, что бы обновить данные в родительской форме после редактирования. 2. Если Дочерняя форма не может существовать без родительской (контекст/сессия данных должна быть общая), то через свойство (не коллекция) вяжу по CreateObject('ChildForm'). У самой ChildForm так же могут быть вызовы 2-х типов. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Восстановить цепочку форм | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Пашь, у нас разный подход.
Мне хотелось абстрактное решение, которое бы годилось для всех и всегда. Уже писал, конкретную ситуацию, всегда не сложно разрулить. Поэтому однозначно, любая форма - независима. (на самом деле это не форма, а некая связка объектов, у нас термин - домен) И всегда, в своей сессии. ВРУ. Есть формы редактирования, именно формы, которые в той же сессии, и даже принадлежат этой же связке, домену. Вызов другого объекта, достаточно сложен. Интерфейс такой LPARAMETERS tContext, toCtrl,tTip Где toCtrl - ссылка на вызвавший домен. Я такого не могу, для меня это вредно. Это как раз и было основным предметом обсуждения.))) Это специфичные формы, у которых есть свой, дополнительный тулбар. А о чем это мы?))) ------------------ |
Re: Восстановить цепочку форм | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
А-а-а, если разговор про нескольких однотипных форм управляемых одним и тем же тулбаром (именно тулбар как глобальный обьект, типа "Создать запись/документ/справочник", "Редактировать запись/документ/справочник"), то у меня сделано так (могу в деталях забыть): -) При Activate формы, она запоминает состояние тулбара и выставляет Enabled/Disabled/Visible кнопкам/объектам "общего" тулбара для себя. -) При LostFocus, Resize форма запоминает состояние тулбара, что бы при Activate "выставить" тулбар в то состояние когда форма была активной. -) В QueryUnload форма восстанавливает состояние тулбара до своего Activate, это нужно если в главном окне не осталось активных окон данного класса. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Восстановить цепочку форм | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Не Пашь. Проблема описана в 3 сообщении.
Есть несколько приложений, они сведены в одно... и т.д. Все написал раньше. Всю задачу. Восстановление, имеется ввиду визуальное ------------------ |
Re: Восстановить цепочку форм | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Не понимаю зачем чего-то в этом случае "запоминать" и тем более "восстанавливать". Если не осталось активных окон, то тулбар либо убирается, либо полностью блокируется. Иначе что делать от кнопки будут? Куда "добавлять", что "удалять" А так - да, по Activate тулбар привязывается к активной форме и адаптируется к её состоянию (какие кнопки доступны, какие нет). По Deactivate отвязывается и, соответственно, всё блокируется.
------------------ WBR, Igor |
Re: Восстановить цепочку форм | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
В 4м сообщении, в этой теме описал причину вопроса. Просто в мозгах неукладка была) Теперь все уложилось. Тулбар тут вообще не причем. Он есть на все приложение. И есть объекты, которые отвечают за свою область. Они по определению синглтон. И вот они из общего тулбара вызываются. Некоторые объекты, вызывают свой тулбар. ЗЫ. Пардон. Невнимателен был) Ты Паше отвечал) ------------------ Исправлено 1 раз(а). Последнее : Аспид, 25.10.17 14:17 |
Re: Восстановить цепочку форм | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Говорю же: "если правильно помню", оказалось не фига не помню (действительно предыдущее состояние форма не запоминает, тупо перерисовывает тулбар под себя, а в QueryUnloan дисейблит тулбар, а уж если есть активная форма она под себя перерисует) ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Восстановить цепочку форм | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
QueryUnload? Так что все формы модальные что-ли Или это про код "последнего отвязывания" У меня активно задействованы Got/LostFocus для "подхвата" тулбара - при том не только формы, но и специальных контейнеров. Т.е. "контекстом" в котором тулбар хулиганит является не только форма, но и иногда её отдельная часть (те же мастер-дитэйл формы). Соответственно отслеживается активация/деактивация и этих контейнеров. Тулбар связан с формой/контейнером через класс-посредник (по сути именно посредник то и знает какой тулбар нужен, и как на его кнопки реагировать), соответственно поиск/создание тулбара в Init этого посредника, а "окончательное отвязывание" в Destroy. Собственно же привязка/отвязка (надо ж тулбару сообщить, методы какого объекта ему дёргать при нажатии кнопок, ну и какими "свойствами" определяется доступность этих кнопок) в своих методах activate/deactivate...
Правда ноги у системы растут со времён 7-го и даже частично 6-го фокса, потому многих полезных фишек сильно упрощающих жизнь там, увы, не сделано... Тех же BINDEVENTS сейчас напихал бы немеряно, а то приходится через SetAllX "рассылать спам" - т.е. уведомления об изменении состояний и т.п. ------------------ WBR, Igor |
Re: Восстановить цепочку форм | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Неа, формы "нормальные". Угу, "захлопывание двери"
У моей "ноги" от 5-ки ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Восстановить цепочку форм | |
---|---|
lulgu Автор Сообщений: 1838 Дата регистрации: 30.11.2016 |
7-ка, 6-ка, 5-ка - нашли чем хвастаться.
На 9-ку пора переходить. |
© 2000-2024 Fox Club  |