Проблема с MDI окнами
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Проблема с MDI окнами
Возможно эта проблема обсуждалась уже где-то, но я не нашел по форуму.
У меня Clarion 6.1 приложение на Clarion-шаблонах (не ABC). MDI.
Странное поведение дочерних окон - например открыто несколько дочерних окон и все miximize. Как только одно из окон сворачиваю в окно - сворачиваются и все остальные дочерние. Кто сталкивался?
Как это исправляется?
У меня Clarion 6.1 приложение на Clarion-шаблонах (не ABC). MDI.
Странное поведение дочерних окон - например открыто несколько дочерних окон и все miximize. Как только одно из окон сворачиваю в окно - сворачиваются и все остальные дочерние. Кто сталкивался?
Как это исправляется?
- Игорь Столяров
- Ветеран движения
- Сообщения: 8033
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Ну "масштабировалась" это сильно сказано, скорее просто растягивалась ...
А выход простой - просто добавь в ICO файл несколько размеров иконок (16x16, 24x24, 32x32, 48x48 ... 256x256 - для WinVista) и на
кнопке будет корректно отображен значек наиболее подходящего размера для текущего отображения, например - кнопки. Вот и все.
Программа IconWorkshop для работы с ICO файлами есть на FTP разделе форума.
А выход простой - просто добавь в ICO файл несколько размеров иконок (16x16, 24x24, 32x32, 48x48 ... 256x256 - для WinVista) и на
кнопке будет корректно отображен значек наиболее подходящего размера для текущего отображения, например - кнопки. Вот и все.
Программа IconWorkshop для работы с ICO файлами есть на FTP разделе форума.
А жаль... ломает меня раскадровку каждой иконки делать, просто много у меня их. Странно что в 5-ке ж все нормально было, удобно иконки сами сжимальсь-растягивались.Игорь Столяров писал(а):Ну "масштабировалась" это сильно сказано, скорее просто растягивалась ...
А выход простой - просто добавь в ICO файл несколько размеров иконок (16x16, 24x24, 32x32, 48x48 ... 256x256 - для WinVista) и на
кнопке будет корректно отображен значек наиболее подходящего размера для текущего отображения, например - кнопки. Вот и все.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8033
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Опять таки - плохо отображаются не сами кнопки, а значки на них при включении Disable ... Можешь попробовать использовать вместо ICO файлов GIF или BMP - с ними отображение лучше, да и растягивание работает. Или проще: вместе с Disable кнопки выключать ее иконку, что-нибудь вроде:
?Button{Prop:Icon} = Choose(?Button{Prop:Disable} = True,Icon:None,'~myfile.ico') ....
?Button{Prop:Icon} = Choose(?Button{Prop:Disable} = True,Icon:None,'~myfile.ico') ....
Крепко жму вам руку, Игорь!Игорь Столяров писал(а):Опять таки - плохо отображаются не сами кнопки, а значки на них при включении Disable ... Можешь попробовать использовать вместо ICO файлов GIF или BMP - с ними отображение лучше, да и растягивание работает. Или проще: вместе с Disable кнопки выключать ее иконку, что-нибудь вроде:
?Button{Prop:Icon} = Choose(?Button{Prop:Disable} = True,Icon:None,'~myfile.ico') ....
Выход конечно... хоть и проблемный. Перевожу большой проект с С5.5 на С6.3. Иконок очень много. Конвертить их в GIF или BMP не радует. Буду пробовать второй вариант.
- Игорь Столяров
- Ветеран движения
- Сообщения: 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} - наименование контролла я уже не помню. Попробуй !
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 раза
- Контактная информация:
Существует способ получить метку контрола. Но придется пользоваться недокументированными функциями Clarionmike_ch писал(а):Существует ли функция что-то наподобие DYRECTORY, которая возвращала бы список use-переменных всех контролов в окне?
А также былоб неплохо знать тип контрола - button, spin или ...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Код: Выделить всё
MAP
MODULE('CAPI')
ClaFieldName(LONG),NAME('Cla$FieldName'),CSTRING,PROC
END
END
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- StillZero
- Ветеран
- Сообщения: 458
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Поблагодарили: 1 раз
- Контактная информация:
а вот так http://www.clarionlife.net/index.php?op ... view&id=63
и еще есть вариант попроще...
надо в каждом MDI окне при отрытии сделать типо
.AddWindow(параметры)
а при закрытии окна сделать
.DeleteWindow()
а на тулбаре показывать сформированную таким образом очередь
и еще есть вариант попроще...
надо в каждом MDI окне при отрытии сделать типо
.AddWindow(параметры)
а при закрытии окна сделать
.DeleteWindow()
а на тулбаре показывать сформированную таким образом очередь