У кого какой размер ?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

У кого какой размер ?

Сообщение Игорь Столяров »

Привет всем !

C6 9059 & ABC. Решил сделать программку из 2-х окон: AppFrame и Windows одинакового размера.
Установил у обоих размер 300 на 300. И они получились разного размера. Совсем разного !

Размер я подогнал "на глаз", но осадок остался. Интересно почему возникает такой эффект ?!
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Re: У кого какой размер ?

Сообщение StillZero »

эээ..статус бар и меню?
Все сайты закрыты...
Аватара пользователя
Admin
Администратор
Сообщения: 3963
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 29 раз
Поблагодарили: 22 раза
Контактная информация:

Re: У кого какой размер ?

Сообщение Admin »

StillZero писал(а):эээ..статус бар и меню?
Думаю все проще. Установи у обоих одинаковый шрифт и его размер.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Re: У кого какой размер ?

Сообщение Игорь Столяров »

Admin писал(а):Думаю все проще. Установи у обоих одинаковый шрифт и его размер.
Блин ! В десятку ! Спасибо ! :)

P/S: Хотя то, что выставленный размер окна зависит от размера и наименования шрифта тупь жуткая ...
Никогда с этим не сталкивался, просто нужно сделать программу из одного окна, но в котором бы
работали вызовы MDI окон. Соответсвенно приходится делать пустой FRAME и в него максимально
вписывать MDI окно без заголовка и рамки. Еще раз спасибо - все получилось.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: У кого какой размер ?

Сообщение Andrew™ »

Игорь Столяров писал(а):
Admin писал(а):Думаю все проще. Установи у обоих одинаковый шрифт и его размер.
Блин ! В десятку ! Спасибо ! :)

P/S: Хотя то, что выставленный размер окна зависит от размера и наименования шрифта тупь жуткая ...
Никогда с этим не сталкивался, просто нужно сделать программу из одного окна, но в котором бы
работали вызовы MDI окон. Соответсвенно приходится делать пустой FRAME и в него максимально
вписывать MDI окно без заголовка и рамки. Еще раз спасибо - все получилось.
не надо так всё на глазок, задумляться о размере шрифта и т д и т п, не забываем что FRAME могут и ресайзнуть, есть у меня такие задачи, где некоторые MDI формы должны 1 - открываться на всю клиентскую часть фрейма, 2 - быть видимы в списке открытых окон для переключения между окнами. в аттаче классики которые давно юзаю, заводишь глобальный класс Glo_Frame COFRAME, в FRAME после открытия окна Glo_Frame.Init(AppFrame), в каждом требуемом MDI окне, после OPEN(Window) - Glo_Frame.AddWindow(Window), перед CLOSE(Window) - Glo_Frame.DelWindow(Window). ВСЁ

классики в аттаче
Вложения
mdi_frame.zip
(2.81 КБ) 139 скачиваний
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Re: У кого какой размер ?

Сообщение Игорь Столяров »

Спасибо - я попробую. Но в общем-то получилось все и штатными средствами.
В MDI окне убираем заголовок, рамку, иконку, System Menu, а также задаем начальный размер Maximize.
После открытия AppFrame, запускаем Start(MDI_Window ...).
Получается фрейм и в нем MDI окно, которое не имеет своих элементов управления окном и меняет размеры в соответсвии с изменением размеров AppFrame.
При закрытии MDI окна - посылаем событе на закрытие AppFrame или просто делаем CleanCloseDown().
Все прекрасно работает - пока косяков не заметил ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: У кого какой размер ?

Сообщение Andrew™ »

Игорь Столяров писал(а):Спасибо - я попробую. Но в общем-то получилось все и штатными средствами.
В MDI окне убираем заголовок, рамку, иконку, System Menu, а также задаем начальный размер Maximize.
После открытия AppFrame, запускаем Start(MDI_Window ...).
Получается фрейм и в нем MDI окно, которое не имеет своих элементов управления окном и меняет размеры в соответсвии с изменением размеров AppFrame.
При закрытии MDI окна - посылаем событе на закрытие AppFrame или просто делаем CleanCloseDown().
Все прекрасно работает - пока косяков не заметил ...
задачки немного у нас разные, я уже писал - таких окон может быть несколько заголовок имеется, чтобы он попадал в список окон для переключения между ними, ресайз FRAME разрешается, прорисовка в клиентскую часть (завтра появится статус бар или тулбар, ничего в плане прорисовки не изменится
) идёт тютелька в тютельку, заголовка не видать, как будто Frame это и есть обычное WINDOW (WIN API - игра со стилями окна - заголовка визуально нет, а он есть ;))

ЗЫ
размер клашиного пикселя, да, привязан в фонту, закреплённого за окном, кто мешает взвести PROP:Pixels в True и работать универсально с размерами, без привязки к фонтам. ;)

Изображение
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Re: У кого какой размер ?

Сообщение Игорь Столяров »

Да, я понял. У Вас более общее и красивое решение - позволяющее реализовать в рамке AppFrame полноценную программу с MDI окнами.
У меня все намного проще, хотя я напрмер не вижу проблемы добавить в FRAME меню с переключением окон или для вызова других окон.
Вложения
Пример MDI окна в AppFrame
Пример MDI окна в AppFrame
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: У кого какой размер ?

Сообщение Andrew™ »

Игорь Столяров писал(а):Да, я понял. У Вас более общее и красивое решение - позволяющее реализовать в рамке AppFrame полноценную программу с MDI окнами.
У меня все намного проще, хотя я напрмер не вижу проблемы добавить в FRAME меню с переключением окон или для вызова других окон.
если у окна нет заголовка, то оно не попадёт в стандартный Window List, можно конечно своё что то придумать, но это уже сложнее ;)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Re: У кого какой размер ?

Сообщение Игорь Столяров »

Andrew™ писал(а):если у окна нет заголовка, то оно не попадёт в стандартный Window List, можно конечно своё что то придумать, но это уже сложнее ;)
Да, согласен ... :(
Но пока в этом нет потребности - будем решать вопросы по мере их поступления ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: У кого какой размер ?

Сообщение Andrew™ »

а зачем для такой задачи Browse-Form нужен обязательно FRAME, сразу делай главной процедурой Browse без атрибута MDI ну и форму тоже без этого атрибута и не надо никакого фрейма.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Re: У кого какой размер ?

Сообщение Игорь Столяров »

Да, согласен, это первое, что приходит в голову, но ...

Окно выписки по штрих-кодам (см. рисунок) - это один из режимов работы программы.

1. При работе этого окна требуется вызывать другие общие компоненты программы (списки для выбора товаров, контрагентов, отчеты и т.д.) - которые имеют атрибут MDI.
Как-то глупо дублировать в коде программы окна, только из-за аттрибута MDI ...

2. Даже если бы атрибут MDI можно было динамически отключать у окна (а этого сделать нельзя), то все равно не хорошо, когда дочерние окна "вываливаются" за рамку основного окна приложения.

3. Из AppFrame удобней запускать некоторые фоновые процессы (например получение сообщений кассиром, некоторые процедуры сервисного обслуживания и т.д.)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить