Проблема с MDI окнами

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Проблема с MDI окнами

Сообщение mike_ch »

Возможно эта проблема обсуждалась уже где-то, но я не нашел по форуму.
У меня Clarion 6.1 приложение на Clarion-шаблонах (не ABC). MDI.
Странное поведение дочерних окон - например открыто несколько дочерних окон и все miximize. Как только одно из окон сворачиваю в окно - сворачиваются и все остальные дочерние. Кто сталкивался?
Как это исправляется?
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

По моему не лечится ... не используй Maximize
или используй только для одного окна.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Сообщение mike_ch »

И еще такой вопросик...
В С5.5 иконки на кнопках сами маштабировались. В 6-ке же в окне проекта они нормально отображаются, а в скомпилированном приложении иконки не маштабируются, т.е. если она по пикселям больше то и отображается она коряво большой. Может настройка какая есть в Clarion'е?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8033
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Ну "масштабировалась" это сильно сказано, скорее просто растягивалась ...

А выход простой - просто добавь в ICO файл несколько размеров иконок (16x16, 24x24, 32x32, 48x48 ... 256x256 - для WinVista) и на
кнопке будет корректно отображен значек наиболее подходящего размера для текущего отображения, например - кнопки. Вот и все.

Программа IconWorkshop для работы с ICO файлами есть на FTP разделе форума.
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Сообщение mike_ch »

Игорь Столяров писал(а):Ну "масштабировалась" это сильно сказано, скорее просто растягивалась ...

А выход простой - просто добавь в ICO файл несколько размеров иконок (16x16, 24x24, 32x32, 48x48 ... 256x256 - для WinVista) и на
кнопке будет корректно отображен значек наиболее подходящего размера для текущего отображения, например - кнопки. Вот и все.
А жаль... ломает меня раскадровку каждой иконки делать, просто много у меня их. Странно что в 5-ке ж все нормально было, удобно иконки сами сжимальсь-растягивались.
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Сообщение mike_ch »

Еще одна беда...
Почему так коряво в 6-ке отображаются кнопки которые disable. Мне то и в 5-ке не очень нравилось, но в 6-том вообще кошмар. Это тоже нельзя никак поменять?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8033
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Опять таки - плохо отображаются не сами кнопки, а значки на них при включении Disable ... Можешь попробовать использовать вместо ICO файлов GIF или BMP - с ними отображение лучше, да и растягивание работает. Или проще: вместе с Disable кнопки выключать ее иконку, что-нибудь вроде:
?Button{Prop:Icon} = Choose(?Button{Prop:Disable} = True,Icon:None,'~myfile.ico') ....
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Сообщение mike_ch »

Игорь Столяров писал(а):Опять таки - плохо отображаются не сами кнопки, а значки на них при включении Disable ... Можешь попробовать использовать вместо ICO файлов GIF или BMP - с ними отображение лучше, да и растягивание работает. Или проще: вместе с Disable кнопки выключать ее иконку, что-нибудь вроде:
?Button{Prop:Icon} = Choose(?Button{Prop:Disable} = True,Icon:None,'~myfile.ico') ....
Крепко жму вам руку, Игорь!
Выход конечно... хоть и проблемный. Перевожу большой проект с С5.5 на С6.3. Иконок очень много. Конвертить их в GIF или BMP не радует. Буду пробовать второй вариант.
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Сообщение mike_ch »

Существует ли функция что-то наподобие DYRECTORY, которая возвращала бы список use-переменных всех контролов в окне?
А также былоб неплохо знать тип контрола - button, spin или ...
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8033
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Гм. В ообщем-то получить список контролов в структуре Window (или Report) проблем нет:

Loop F# = FIRSTFIELD() to LASTFIELD()

If (F#{Prop:Type} = Create:Check)

... Это CheckBox

elsIf (F#{Prop:Type} = Create:Button)

.... это кнопка

elsIf

и т.д.

end
end

Вот. Но это номера контроллов в окне и по ним доступны все их данные. Вернет ли F#{Prop:Use} - наименование контролла я уже не помню. Попробуй ! ;)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

mike_ch писал(а):Существует ли функция что-то наподобие DYRECTORY, которая возвращала бы список use-переменных всех контролов в окне?
А также былоб неплохо знать тип контрола - button, spin или ...
Существует способ получить метку контрола. Но придется пользоваться недокументированными функциями Clarion
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Сообщение mike_ch »

Игорь Столяров писал(а):Гм. В ообщем-то получить список контролов в структуре Window (или Report) проблем нет:

Loop F# = FIRSTFIELD() to LASTFIELD()

If (F#{Prop:Type} = Create:Check)

... Это CheckBox
Все отлично работает!
Спасибо!
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

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

        MAP
          MODULE('CAPI')
            ClaFieldName(LONG),NAME('Cla$FieldName'),CSTRING,PROC
          END
        END
Возвращает имя поля по его Feq
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Сообщение mike_ch »

Еще вопросик, если можно :)
как получить список открытых дочерних окон?. Идея сделать тулбар, в котором динамически создавать кнопки с названиями открытых дочерних окон. И таким образом через этот тулбар переключаться между окнами. Почитал про STD:xxx (STD:WindowList) - не помогло ...
Аватара пользователя
StillZero
Ветеран
Сообщения: 458
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Поблагодарили: 1 раз
Контактная информация:

Сообщение StillZero »

а вот так http://www.clarionlife.net/index.php?op ... view&id=63

и еще есть вариант попроще...
надо в каждом MDI окне при отрытии сделать типо
.AddWindow(параметры)
а при закрытии окна сделать
.DeleteWindow()

а на тулбаре показывать сформированную таким образом очередь
Ответить