Автор | Сообщение |
|
| |
Пост N: 21
Зарегистрирован: 31.03.07
|
|
Отправлено: 19.07.07 02:40. Заголовок: Некорректная работа функции row()
Пересобрал в терминальном режиме свою старую Clipper программу. Все бы хорошо и счастью не видно конца, но заметил что время от времени исчезают куда-то всплывающие окошки. И только прокрутив окошко вниз обнаружил что его размер вовсе не 80х25 как было задумано, а потерянные окна находятся как раз где-то в самом низу. Как показало расследование функция row() время от времени выдает значение более 200. Похоже от этого и функция wcenter() пляшет. В чем проблема ? Можно-ли стабилизировать ситуацию ? Почему при этом окно увеличивается ? Нельзя ли его задать из программы жестко ?
|
|
|
Ответов - 6
[только новые]
|
|
|
| постоянный участник
|
Пост N: 185
Зарегистрирован: 09.10.06
|
|
Отправлено: 19.07.07 11:23. Заголовок: Re:
Вот так рождаются мифы..
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 10.07.07
|
|
Отправлено: 19.07.07 14:47. Заголовок: Re:
Попробуй создать ярлык для ехе-шника и во вкладке "Расположение" укажи нужные размеры.
|
|
|
|
| |
Пост N: 22
Зарегистрирован: 31.03.07
|
|
Отправлено: 20.07.07 02:21. Заголовок: Re:
Размер окна стабилизировался, но row() все равно скачет. Одно и то же окно привязанное к текущим координатам выскакивает то в верху окна программы, то внизу. И потом, ярлык это половинчатое решение вопроса - windows программа должна и без ярлыка работать корректно. Как задать свойства окна уже в процессе компиляции ?
|
|
|
|
| Администратор
|
Пост N: 551
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.07.07 07:32. Заголовок: Re:
Терминал gtwin или gtwvt ? Функция Row() возвращает физический размер экрана (обычно это константа) минус переменная ct_UFRow - это координата окна Tools, которая определяется функциями WSelect(), WMove, WFormat(). Может в них что-то неправильно ? Если бы ты заметил, после каких действий получаются неправильные координаты, можно было бы что-то сказать
|
|
|
|
| |
Пост N: 25
Зарегистрирован: 31.03.07
|
|
Отправлено: 20.07.07 11:22. Заголовок: Re:
С каких это пор row() стала размер экрана выдавать ? В Сlipper row() всегда выдавала текущую координату курсора. Я с помощью этой функции вывожу например выскакивающие окошки привязаные к координатам текущего пункта меню. Для эксперимента многократно вызываю один и тот же пункт меню. При этом, окно может например 3 -6 раз выскакивать там где надо, потом один раз внизу окна и опять возвращается на место. Думаю это связано с каким-нибудь приколом windows, например с обновлением экрана. Т.е. если я попадаю с вызовом пункта меню именно в момент обновления то получаю текущее расположение курсора где-то внизу. Но это всего-лишь предположение, а как проверить не знаю. В тоже время функция WROW() применяемая параллельно работает всегда стабильно.
|
|
|
|
| |
Пост N: 27
Зарегистрирован: 31.03.07
|
|
Отправлено: 20.07.07 11:36. Заголовок: Re:
А терминал я так понимаю тот который стандартный. Специально я ни чего не менял.
|
|
|
|