Открытие окна

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Привет Всем!

Не пойму что за проблема с открытием окна.

В документации сказано:

Window Usage

OPEN activates an APPLICATION or WINDOW for processing. However, nothing is displayed until a DISPLAY statement or the ACCEPT loop is
encountered. This allows an opportunity to execute pre-display code to customize the display.
Но после применения свойства Prop:Maximize к окну (до DISPLAY или ACCEPT) оно показывается и тем самым не дает сделать "pre-display code". То есть поля показываются без ресандинга, а потом приводятся к нужному размеру/расположению. Тем самым получается дергание окна.

Ситуация: С55H

Игорь Веснин success@mail.iks.ru

(Добавление)

За присваиванием различным PROP-ам значений зачастую стоят вызовы функций из внутренней кухни клариона. Смею предположить, что W{Prop:Maximize} = 1 вызывает ShowWindow(W{PROP:Handle}, SW_SHOWMAXIMIZED).

--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836

Написал: ClaList(2)
Гость

Сообщение Гость »

А что ты хотел? PROP:Maximize ты сделал до входа в ACCEPT-цикл, тогда как ресайзинг, естественно, обрабатывается в ACEEPT-е по событию EVENT:Sized. Т.е. до DISPLAY/ACCEPT нужно вызвать метод ресайзера, приводящий к изменению положения/размеров контролов.

Алексей,
начальник отдела ПТО
ООО "ОРК"
mail: alex@jrcn.donetsk.ua, icq: 62605472
www: http://www.nikasoft.co.uk
http://www.clarionline.h1.ru (FAQ-онлайн)
origin: Я не злопамятный, но злой и память у меня хорошая!

(Добавление)

Беда в том что чтобы применить метод ресайзинга, надо сначала привести окно к нужному размеру, а потом уже под эти размеры изменять положения/размеры контролов. Так вот после применения PROP:Maximize окно показывается (о чем не сказано в документации) с необработанными контролами. Потом контролы обрабатываются и получается дергание экрана.

В принципе проблема "криво" решена тем что явно указано "Maximize" в окне и снята возможность "Сохранение расположения окна".

Игорь Веснин

ну сделай просто

просле OPEN(Window)
Window{PROP:hide} = True

а на событие EVENT:OpenWindow
Window{PROP:Hide} = False

и не будет моргания

Andrew Myalin
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
ICQ: 10659412
Yahoo group: clarion@yahoogroups.com
Написал: ClaList(2)
Гость

Сообщение Гость »

Я использую использую ШВС там эти строки как раз и прописаны, но они не помогают.
Причем, до "Window{PROP:Hide} = False" контролы не ресайзятся.

У меня стоит С55h. Может быть в других версиях эта проблема решена.

Игорь Веснин

смотря каким ресайзером пользоваться
У меня стоит С55h. Может быть в других версиях эта проблема решена.
С55G, на H есть кое какие проблемы с поточностью

Andrew Myalin
Написал: ClaList(2)
Ответить