Вывести картинку в клиентской области Frame?

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 464
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 123 раза
Поблагодарили: 6 раз

Вывести картинку в клиентской области Frame?

Сообщение ingasoftplus »

Вывести картинку в клиентской области Frame

Собственно как? Есть Frame, нужно в нижний правый угол клиентской области вывести лого из граф файла. И чтоб при ресайзе окна (главного фрейма) лого оставалось на месте.

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

Вывести картинку в клиентской области Frame?

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

Был давным-давно шаблон, который открывал безрамочное MDI окно внутри Frame с Resize FullSize.
Это нужно смотреть программы у которых внутри Frame выводятся поля и кнопки.
Может кто-то помнит его название и автора ?
Make Clarion Great Again ! 😎
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 464
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 123 раза
Поблагодарили: 6 раз

Вывести картинку в клиентской области Frame?

Сообщение ingasoftplus »

вот шаблон в аттаче - окно выводит. но как сделать все остальное? (нужно в нижний правый угол клиентской области вывести лого из граф файла и чтоб при ресайзе окна (главного фрейма) лого оставалось на месте :roll: )
Вложения
tpl_ext1.tpw
(3.59 КБ) 97 скачиваний
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

Вывести картинку в клиентской области Frame?

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

Вы всегда можете послать в окно Notify и заставить его изменить размер (в т.ч. и с условиями RESIZE).
Но дело в том, что если Вы окрыли развёрнутое MDI окно окно внури FRAME - оно и так изменит размер.

И Вы всегда можете обработать в окне событие DoResize (например что бы изменить размер картинки)
или выполнить:

Код: Выделить всё

  Resizer.Resize()  ! Изменить расположение контролов в окне
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

Вывести картинку в клиентской области Frame?

Сообщение finsoftrz »

ingasoftplus писал(а): 22 Май 2025, 13:40 вот шаблон в аттаче - окно выводит. но как сделать все остальное? (нужно в нижний правый угол клиентской области вывести лого из граф файла и чтоб при ресайзе окна (главного фрейма) лого оставалось на месте :roll: )
Сохранить в глобальных переменных номер потока, в котором запущено окно, а также высоту и ширину фрейма. Затем на фрейме по событию EVENT:Sized послать в этот поток пользовательское событие типа post(4004,,MySaveThread). А в окне по этому событию изменить PROP:Ypos и PROP:Xpos окна с учетом размеров фрейма и самого окна.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 464
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 123 раза
Поблагодарили: 6 раз

Вывести картинку в клиентской области Frame?

Сообщение ingasoftplus »

finsoftrz писал(а): 22 Май 2025, 14:14 Сохранить в глобальных переменных номер потока, в котором запущено окно, а также высоту и ширину фрейма. Затем на фрейме по событию EVENT:Sized послать в этот поток пользовательское событие типа post(4004,,MySaveThread). А в окне по этому событию изменить PROP:Ypos и PROP:Xpos окна с учетом размеров фрейма и самого окна.
отлично! номер потока уже есть в том шаблоне. Осталось разобраться с позиционированием окна. Т.е. наше окно надо переместить, но я думаю что нужно работать с Клиентской областью Фрейма. есть примеры?
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

Вывести картинку в клиентской области Frame?

Сообщение finsoftrz »

Да ничего там специфического не надо, только изменить prop:xPos и prop:yPos у окна. А они, соответственно, вычисляются как ширина фрейма минус ширина окна, высота фрейма минус высота окна, если просто в нижнем правом углу.
C6/C12, ШВС, tps/btrieve.
Ал
✯ Ветеран ✯
Сообщения: 1038
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Вывести картинку в клиентской области Frame?

Сообщение Ал »

может всё проще - нарисовать картинку во весь фрейм с лого в правом нижнем углу подходящего качества и штатным полем wallpaper вывести + Stretched чтобы при изменении размера пересчитывал сам?
Последний раз редактировалось Ал 22 Май 2025, 15:11, всего редактировалось 1 раз.
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 464
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 123 раза
Поблагодарили: 6 раз

Вывести картинку в клиентской области Frame?

Сообщение ingasoftplus »

Ал писал(а): 22 Май 2025, 15:02 может всё проще - нарисовать картинку во весь фрейм с лого в правом нижнем углу подходящего качества и штатным полем вывести + Stretched?
ну это совсем не гибко....
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 464
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 123 раза
Поблагодарили: 6 раз

Вывести картинку в клиентской области Frame?

Сообщение ingasoftplus »

кстати, а почему нет эмбеда для EVENT:Sized и самого события нет в главном FRAME?

IMM для окна надо
Ал
✯ Ветеран ✯
Сообщения: 1038
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Вывести картинку в клиентской области Frame?

Сообщение Ал »

ingasoftplus писал(а): 22 Май 2025, 15:10
Ал писал(а): 22 Май 2025, 15:02 может всё проще - нарисовать картинку во весь фрейм с лого в правом нижнем углу подходящего качества и штатным полем вывести + Stretched?
ну это совсем не гибко....
Снимок экрана 2025-05-22 151333.png
Снимок экрана 2025-05-22 151413.png
Снимок экрана 2025-05-22 151510.png
https://www.odata.de/Clarion/colored_ba ... _appframe/
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 464
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 123 раза
Поблагодарили: 6 раз

Вывести картинку в клиентской области Frame?

Сообщение ingasoftplus »

кстати, а как из MDI окна узнать размеры клиентской области главного FRAME???

если я делаю

Код: Выделить всё

XPos = 0{PROP:ClientX}; YPos = 0{PROP:ClientY}; Width = 0{PROP:ClientWidth} ; Height = 0{PROP:ClientHeight}
то мне дает размеры текущего окна...

собственно, как "А в окне изменить PROP:Ypos и PROP:Xpos окна с учетом размеров фрейма и самого окна."
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5226
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 63 раза

Вывести картинку в клиентской области Frame?

Сообщение finsoftrz »

Я сохраняю размеры фрейма в глобальных переменных, они для разных целей используются потом.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3284
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 48 раз
Контактная информация:

Вывести картинку в клиентской области Frame?

Сообщение Дед Пахом »

Сообщение WM_ERASEBKGND в клиентской области самое то.
С уважением, ДП
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 464
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 123 раза
Поблагодарили: 6 раз

Вывести картинку в клиентской области Frame?

Сообщение ingasoftplus »

finsoftrz писал(а): 22 Май 2025, 17:15 Я сохраняю размеры фрейма в глобальных переменных, они для разных целей используются потом.
так если в рантайм изменим его размеры - то сохраненные будут особо не актуальные...

как знать актуальные размеры фрейма в текущий момент?
Ответить