On-line: Dr. Oldwarez, гостей 1. Всего: 2 [подробнее..]
АвторСообщение



Пост N: 21
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 19.07.07 02:40. Заголовок: Некорректная работа функции row()


Пересобрал в терминальном режиме свою старую Clipper программу.
Все бы хорошо и счастью не видно конца, но заметил что время от времени исчезают куда-то всплывающие окошки.
И только прокрутив окошко вниз обнаружил что его размер вовсе не 80х25 как было задумано, а потерянные окна находятся как раз где-то в самом низу.
Как показало расследование функция row() время от времени выдает значение более 200.
Похоже от этого и функция wcenter() пляшет.
В чем проблема ? Можно-ли стабилизировать ситуацию ?
Почему при этом окно увеличивается ? Нельзя ли его задать из программы жестко ?




Спасибо: 0 
Профиль
Ответов - 6 [только новые]


постоянный участник


Пост N: 185
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 19.07.07 11:23. Заголовок: Re:


Вот так рождаются мифы..

Спасибо: 0 
Профиль



Пост N: 6
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 19.07.07 14:47. Заголовок: Re:


Попробуй создать ярлык для ехе-шника и во вкладке "Расположение" укажи нужные размеры.

Спасибо: 0 
Профиль



Пост N: 22
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 20.07.07 02:21. Заголовок: Re:


Размер окна стабилизировался, но row() все равно скачет. Одно и то же окно привязанное к текущим координатам выскакивает то в верху окна программы, то внизу.

И потом, ярлык это половинчатое решение вопроса - windows программа должна и без ярлыка работать корректно.
Как задать свойства окна уже в процессе компиляции ?

Спасибо: 0 
Профиль
Администратор




Пост N: 551
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.07.07 07:32. Заголовок: Re:


Терминал gtwin или gtwvt ?

Функция Row() возвращает физический размер экрана (обычно это константа) минус переменная ct_UFRow - это координата окна Tools, которая определяется функциями WSelect(), WMove, WFormat(). Может в них что-то неправильно ?

Если бы ты заметил, после каких действий получаются неправильные координаты, можно было бы что-то сказать

Спасибо: 0 
Профиль



Пост N: 25
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 20.07.07 11:22. Заголовок: Re:


С каких это пор row() стала размер экрана выдавать ?
В Сlipper row() всегда выдавала текущую координату курсора.
Я с помощью этой функции вывожу например выскакивающие окошки привязаные к координатам текущего пункта меню.
Для эксперимента многократно вызываю один и тот же пункт меню. При этом, окно может например 3 -6 раз выскакивать там где надо, потом один раз внизу окна и опять возвращается на место.
Думаю это связано с каким-нибудь приколом windows, например с обновлением экрана.
Т.е. если я попадаю с вызовом пункта меню именно в момент обновления то получаю текущее расположение курсора где-то внизу.
Но это всего-лишь предположение, а как проверить не знаю.
В тоже время функция WROW() применяемая параллельно работает всегда стабильно.

Спасибо: 0 
Профиль



Пост N: 27
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 20.07.07 11:36. Заголовок: Re:


А терминал я так понимаю тот который стандартный. Специально я ни чего не менял.

Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 76
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет