:: Visual Foxpro, Foxpro for DOS
Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
Добрый день, ВСЕМ!
ЕСТЬ: форма с кучей объектов.
НАДО: развернуть Grid1 на две-трети формы и сделать его поверх всех объектов.
=============================================================================
Развернуть не проблема, а вот КАК вывести его (Grid1) на передний план..., подскажите, пожалуйста.


------------------
Человек умён, но ленив и жаден...
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
1793

Сообщений: 290
Откуда: Озерск
Дата регистрации: 17.10.2001
[Object.]ZOrder([nOrder]) посмотри
Ratings: 0 negative/1 positive
Re: Развернуть Grid...
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Добавлю
Выделяешь объект. Меню format-Bring to front
(или из тулбара Layot)


------------------
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Проще работать с контейнерами, объединяющими кучу совместно используемых (и совместно выводимых/скрываемых/сдвигаемых) объектов, чем с каждым объектом из этой "кучи" по отдельности. Вывод на передний план программно делает метод ZOrder. Правда в гриде есть свои кой какие глюки - например "просвечивающиеся" насквозь заголовки колонок. Поэтому я бы не советовал "просто" играться передним/задним планами.
Какие есть варианты:
1) использовать PageFrame - ярлычки листов можно убрать и переключать "активную" вкладку программно.
2) использовать контейнеры, но не "накладывать" их друг на друга, а "сдвигать" - например в область отрицательных координат.
3) упростить UI - разбить всё на несколько взаимодействующих форм (хотя в общем случае это гораздо сложнее сделать чем просто перераспределить кучу кнопок/полей/гридов по контейнерам или вкладкам pageframe).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
1793
[Object.]ZOrder([nOrder]) посмотри
======================================================.
Посмотрел. Помогло. СПАСИБО!
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
Аспид
Добавлю
Выделяешь объект. Меню format-Bring to front
(или из тулбара Layot)
============================================
СПАСИБО. С установкой порядка обхода объектов знаком...
В данном случае управление объектом происходит программно.
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
Igor Korolyov
Какие есть варианты:
1) использовать PageFrame - ярлычки листов можно убрать и переключать "активную" вкладку программно.
2) использовать контейнеры, но не "накладывать" их друг на друга, а "сдвигать" - например в область отрицательных координат.
3) упростить UI - разбить всё на несколько взаимодействующих форм (хотя в общем случае это гораздо сложнее сделать чем просто перераспределить кучу кнопок/полей/гридов по контейнерам или вкладкам pageframe).
====================================================================================================
Форма разбита на две области: доступ ко всей форме имеет привилегированный пользователь, а остальные лишь к левой её части. Работа обычного пользователя сводится к поиску нужного товара, выбора % скидки и количества товара, с последующим нажатием на кнопку "ПРОДАТЬ". ВСЁ! Решил "извратиться" и дать возможность распахивать/сворачивать GRID.
Спасибо за помощь: метода ZOrder за глаза хватит


1. В данном проекте разбиение на страницы не обоснованно;
2. Для обычного пользователя правая часть формы закрыта: выдвигается объект SHAPE;
3. !
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Aleksckjy
СПАСИБО. С установкой порядка обхода объектов знаком...
В данном случае управление объектом происходит программно.
Это не обход, это то что ты просил.
Вчитайся в слова)
Обход в том же тулбаре, понаводи на кнопочки)

Aleksckjy
Решил "извратиться" и дать возможность распахивать/сворачивать GRID.
Не совсем ясно, заем тут zorder.
Я где то делал класс сплитер.
Он как раз скрывал часть элементов формы.
Так он всю форму пересчитывал.
Наверное просто неверно выразился - "возможность распахивать/сворачивать GRID. "?
Не очень ясно что за этим кроется


------------------
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
Аспид
Aleksckjy
СПАСИБО. С установкой порядка обхода объектов знаком...
В данном случае управление объектом происходит программно.
Это не обход, это то что ты просил.
Вчитайся в слова)
Обход в том же тулбаре, понаводи на кнопочки)
Прошу извинить за моё косноязычие, но изменять порядок очерёдности (скан прилагаю) объектов на форме не нужно (лень .
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
Aleksckjy
Решил "извратиться" и дать возможность распахивать/сворачивать GRID.
Цитата:
Не совсем ясно, заем тут zorder.
Я где то делал класс сплитер.
Он как раз скрывал часть элементов формы.
Так он всю форму пересчитывал.
Наверное просто неверно выразился - "возможность распахивать/сворачивать GRID. "?
Не очень ясно что за этим кроется

ZOrder помог сделать это (скан прилагаю). То что так сказать и заказывал



Исправлено 1 раз(а). Последнее : Aleksckjy, 15.06.17 01:02
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Aleksckjy
Для обычного пользователя правая часть формы закрыта: выдвигается объект SHAPE;

А разве "закрыть шейпом" делает правые объекты формы недоступными?
Ну, максимум от клика мышью.
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Aleksckjy
Прошу извинить за моё косноязычие, но изменять порядок очерёдности (скан прилагаю) объектов на форме не нужно (лень .
Увы, вы так и не поняли.
Еще раз. ТАМ ПОМИМО ПОРЯДКА ОБХОДА, ЕСТЬ "Bring to front" AND "Send to back"
Картинок прикладывать не буду)))
Aleksckjy
ZOrder помог сделать это (скан прилагаю). То что так сказать и заказывал
Ну каждому свое.
Не обижайтесь - мне не нравится.
Но теперь ясно что хотите.
Думаю это решается, полу-стандартными средствами.
Надо сохранять размеры формы, и настроек грида, у каждого пользователя.
Где - отдельный, не раз обсуждавшийся вопрос. Я храню в реестре.
Далее механизм простой.
У грида анкор - на ширину.
Все. Далее ваша форма, для одних с правой частью, все остается как есть.
Для тех у которых нет правой части, грид и так будет на всю форму. Ее надо просто сжать, убрав лишнее.

И ТУТ я все понял)))
Все предыдущее оставлю, но думаю стоит иначе.
У вас одна форма, для разных пользователей.
Сделайте простой вариант. Для урезаных.
В виде класса.
От нее унаследуйте, и сделайте более сложную форму, для других пользователей.
И запускать будет каждый свое.
Но если вы измените что то в логике 1й формы (класса), оно автоматом поменяется и во второй.


------------------
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
akvvohinc
Aleksckjy
Для обычного пользователя правая часть формы закрыта: выдвигается объект SHAPE;

А разве "закрыть шейпом" делает правые объекты формы недоступными?
Ну, максимум от клика мышью.


Доступ к объектам Определяет СТАТУС пользователя: обычный/привилегированный/"отец" создатель
А наезд шейпом... чисто декоративное действо - эдакая сетка рабицы наброшена на объекты -, да, и от случайного клика мышью предохраняет.
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
Аспид
Aleksckjy
Прошу извинить за моё косноязычие, но изменять порядок очерёдности (скан прилагаю) объектов на форме не нужно (лень .
Увы, вы так и не поняли.
Еще раз. ТАМ ПОМИМО ПОРЯДКА ОБХОДА, ЕСТЬ "Bring to front" AND "Send to back"
Картинок прикладывать не буду)))
Aleksckjy
ZOrder помог сделать это (скан прилагаю). То что так сказать и заказывал
Ну каждому свое.
Не обижайтесь - мне не нравится.
Но теперь ясно что хотите.
Думаю это решается, полу-стандартными средствами.
Надо сохранять размеры формы, и настроек грида, у каждого пользователя.
Где - отдельный, не раз обсуждавшийся вопрос. Я храню в реестре.
Далее механизм простой.
У грида анкор - на ширину.
Все. Далее ваша форма, для одних с правой частью, все остается как есть.
Для тех у которых нет правой части, грид и так будет на всю форму. Ее надо просто сжать, убрав лишнее.
Обычный пользователь работает, только с текущим днём. При выходе из проги запоминается состояние Grid-а - как это делается, не столь важно -, и восстанавливается при запуске проги.

Аспид
И ТУТ я все понял)))
Все предыдущее оставлю, но думаю стоит иначе.
У вас одна форма, для разных пользователей.
Сделайте простой вариант. Для урезаных.
В виде класса.
От нее унаследуйте, и сделайте более сложную форму, для других пользователей.
И запускать будет каждый свое.
Но если вы измените что то в логике 1й формы (класса), оно автоматом поменяется и во второй.
Сколько людей..., столько и мнений
"Урезанный" в правах пользователь допущен лишь к поисковой строке, перечню номенклатуры товаров, выбору % скидки и кол-ва товара - подытоживая свой выбор, жмёт на кнопку "ПРОДАТЬ".
У менее "урезанного": всё тоже самое... лишь итожная кнопка троится... - "ПРОДАТЬ"/"Брак"/"ВОЗВРАТ".
Привилегированный: хозяйничает по всей форме.
"Отец"-создатель, то бишь Я, воплощает СВОИ фантазии в силу СВОИХ познаний/умений и в минуты затруднений обращается в данное Сообщество Знающих людей за помощью... Ответ на свой вопрос ПОЛУЧИЛ - реализовал - СПАСИБО!

Плодить формы для разграниченных в правах доступа пользователей считаю лишним (в данном проекте).

ЗЫ: все советы услышал - переварю - решу.
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Aleksckjy
Плодить формы для разграниченных в правах доступа пользователей считаю лишним (в данном проекте).
Можно и не плодить формы (хотя ООП позволяет с помощью классов решить всё достаточно красиво - уж точно без дублирования кода и/или размещения самих контролов по формам), но выставлять напоказ недоступные элементы (при том что их ещё и нужно делать недоступными - простое накрытие шейпом никак не помешает зайти с помощью клавиатуры в "накрытый" контрол) - по меньшей мере странное решение. Такое применяют иногда в trial/demo версиях программы - чтобы пользователь посмотрел на это и пожелал "купить полную версию". Для обычных рабочих программ если целый блок элементов пользователю "недоступен по правам", то его вообще убирают с глаз долой (куча разных способов есть - от просто прятания до полноценного RemoveObject() ). Заодно подтягивая/перераспределяя другие элементы управления по экрану (большие "пустые места" на форме - тоже убожество).
Приложенные картинки готовой формы весьма наглядно показывают ущербность подхода...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Aleksckjy
Автор

Сообщений: 75
Откуда: Москва
Дата регистрации: 09.10.2011
Igor Korolyov
Aleksckjy
Плодить формы для разграниченных в правах доступа пользователей считаю лишним (в данном проекте).
Можно и не плодить формы (хотя ООП позволяет с помощью классов решить всё достаточно красиво - уж точно без дублирования кода и/или размещения самих контролов по формам), но выставлять напоказ недоступные элементы (при том что их ещё и нужно делать недоступными - простое накрытие шейпом никак не помешает зайти с помощью клавиатуры в "накрытый" контрол) - по меньшей мере странное решение. Такое применяют иногда в trial/demo версиях программы - чтобы пользователь посмотрел на это и пожелал "купить полную версию". Для обычных рабочих программ если целый блок элементов пользователю "недоступен по правам", то его вообще убирают с глаз долой (куча разных способов есть - от просто прятания до полноценного RemoveObject() ). Заодно подтягивая/перераспределяя другие элементы управления по экрану (большие "пустые места" на форме - тоже убожество).
Приложенные картинки готовой формы весьма наглядно показывают ущербность подхода...

1. На сканах запечатлена demo версия программы;
2. Для "урезанного" в правах пользователя форма трансформируется (изменяется в размерах) и отображает, только доступные для его статуса объекты. При "распахивании" GRID-а изменяется и размер формы. Недоступным объектам присваивается .Enabled = .F.

ЗЫ: обычных пользователей вполне устраивает усечённый GRID, начальник захотел иметь возможность увидеть дополнительную информацию, что я с Вашей помощью и сделал


"...убожество", "...ущербность подхода..."
==========================================
Пусть будет так. Я задал вопрос - Вы помогли: СПАСИБО!
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Aleksckjy
Пусть будет так. Я задал вопрос - Вы помогли: СПАСИБО!

Все верно. Разобрался заработало.
Тут просто яркий пример, когда по делу, можно разобраться с ООП.
Возможно сейчас некогда, неохота.
Но возьми себе на заметку)


------------------
Ratings: 0 negative/1 positive
Re: Развернуть Grid...
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Aleksckjy
2. Для "урезанного" в правах пользователя форма трансформируется (изменяется в размерах) и отображает, только доступные для его статуса объекты.
Так и надо делать. Не "штриховать" то что недоступно, а делать чтобы этого вообще не было видно.
Aleksckjy
При "распахивании" GRID-а изменяется и размер формы.
Опять же это тоже правильное решение - при том в нормальных программах делают либо на якорях (anchor) либо на "ручном" коде (якоря хороши для "статических" случаев - если часть контролов нужно убирать или наоборот добавлять в форму, они уже несколько неудобны становятся) подгонку контролов к текущему размеру формы - чтобы пользователь мог спокойно растянуть форму до удобных ему размеров. Формы с неизменяемыми размерами в большинстве случаев это убогость реализации - особенно если там есть те или иные "списки" или просто "большие" объекты (grid, listbox, дерево, editbox с большим объёмом текста - всё то что сильно выигрывает от "увеличения размера").
Следующим логическим шагом является "запоминание" размеров и положения формы чтобы при очередном вызове всё показалось так "как было прошлый раз", и пользователю не пришлось заново растягивать/перемещать эту форму.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
of63

Сообщений: 25240
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() Растягивать форму оказалось неприменимо на практике, без увеличения шрифтов. Полезно было бы как в планшетах, увеличивать форму как под лупой, или как в браузерах - увеличение с автоперемещением контролов... В реалии пока еще в фоксовой проге формы, рожденные под 800x600, и переделать их - дорогое удовольствие... Не понятно, почему господа в МС не сделали увеличялку (как Ctrl-+ в баузерах) хотя-бы для виндовых прог, вроде просто (со шрифтами м.б. проблемы, но решаемые вроде!)...
Ratings: 0 negative/0 positive
Re: Развернуть Grid...
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
of63
() Растягивать форму оказалось неприменимо на практике, без увеличения шрифтов.
Хм, а почему к меня все ровно наоборот? ЧЯДНТ?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 21 (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика