Пробежался по ClarionLife - примеров не нашел.
Такое:
wnd &= NEW(WINDOW)
не прокатывает.

А хочется.

Модератор: Дед Пахом
А зачем?AnDS писал(а):А вот как динамически окна создавать?
Заранее не известно, какие контролы будут в окне и сколько окон вообще будет открыто.Олег писал(а):А зачем?
Вот приблизительно это и хочется наверно.Олег писал(а):А если для создания полноценного окна, то только через RTL с использованием недокументированных структур - описываешь в глобальных данных пустое окно, а где необходимо - создаешь его копию в памяти и "натравливаешь" на эту область памяти обычный реферал типа &WINDOW.
Описываю:Олег писал(а): Вообщем, опиши более конкретно свою задачу. Возможно найдется более простое решение.
Хмм... И как ты себе это представляешь? Я имею в виду одновременное открытие нескольких окон в ОДНОЙ процедуре! Одна процедура - один поток. В потоке может быть только ОДНО активное окно. Т.е., ты можешь, конечно, делать вложенные ACCEPT-циклы, но работать сможешь только в последнем. И пока его не закроешь - не сможешь работать в другом. Таким образом, получается - понасоздаешь несколько окон, а работать сможешь только в последнем! При этом, переключать фокус между ними не сможешь! И пока не закроешь текущее активное окно - не получишь доступ к предыдущему! Ну, и какой при этом смысл в открытии нескольких окон?AnDS писал(а): Т.е. одновременно открывается несколько окон в одной процедуре.
В том примере используется вариант создания контролов, которых нет в самом Кларионе. И, естественно, они создаются через WinAPI.AnDS писал(а):PS. Кстати, пример CCTRL мне очень понравился.
Два вопроса:
Почему никто это не использует?
Список контролов, которые можно создать, полный или можно еще какие-нибудь создавать?
Легко! Форма, в форме много кнопочек - выбор из справочника. Ну например.Олег писал(а):Хмм... И как ты себе это представляешь?AnDS писал(а): Т.е. одновременно открывается несколько окон в одной процедуре.
Я уже написал -- вложенные формы. Мне и не нужно одновременно работать в них.Олег писал(а): Я имею в виду одновременное открытие нескольких окон в ОДНОЙ процедуре! Одна процедура - один поток. В потоке может быть только ОДНО активное окно. Т.е., ты можешь, конечно, делать вложенные ACCEPT-циклы, но работать сможешь только в последнем. И пока его не закроешь - не сможешь работать в другом. Таким образом, получается - понасоздаешь несколько окон, а работать сможешь только в последнем! При этом, переключать фокус между ними не сможешь! И пока не закроешь текущее активное окно - не получишь доступ к предыдущему! Ну, и какой при этом смысл в открытии нескольких окон?
Да это все понятно. Я как раз и имел ввиду -- что еще может понадобится из контролов WinAPI?Олег писал(а): В том примере используется вариант создания контролов, которых нет в самом Кларионе. И, естественно, они создаются через WinAPI.
Но большинство контролов, которые используются для работы пользователя, реализованы в Кларионе и для их создания нет необходимости в довольно сложных манипуляциях с WinAPI - достаточно обычного оператора CREATE!
Т.е., с помощью этого оператора можно создавать ВСЕ контролы, которые доступны для окна в Кларионе. А те контролы, которых нет в арсенале Клариона, можно создать с помощью WinAPI. Таким образом можно создать практически любой контрол, доступный для Windows.
Тогда - какие проблемы?!AnDS писал(а):Легко! Форма, в форме много кнопочек - выбор из справочника. Ну например.
Я уже написал -- вложенные формы. Мне и не нужно одновременно работать в них.
Вроде-бы ограничений нет.AnDS писал(а):Да это все понятно. Я как раз и имел ввиду -- что еще может понадобится из контролов WinAPI?
Вот выбор даты, например, мне понравился -- оно всегда работает? Или ограничения какие есть?