On-line: tnsr2, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
Администратор




Пост N: 966
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 21.08.08 15:13. Заголовок: Harbour TBrowse


Если собрать xHarbour с использованием класса TBrowse из Harbour
(в xHarbour его можно взять из tests\tbrowse.prg), то не работают
методы перемещения вниз: tbrowse:down() и tbrowse:pagedown()

При нажатии down-pagedown окно просто очищается
При этом :up(), :pageup(), :goTop(), goBottom() работают

Это у меня одного так ?
ЗЫ можно не пересобирать xHarbour, а прилинковать к программе этот модуль, tests\tbrowse.prg

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





Пост N: 52
Зарегистрирован: 27.04.06
ссылка на сообщение  Отправлено: 21.08.08 16:12. Заголовок: Да, дело в строках т..


Да, дело в строках типа
FOR EACH lStat, lDisp IN ::aCellStatus, ::aDispStatus [DESCEND]
Замените на Clipper конструкции
FOR i := 1 TO Len(::aCellStatus)
и
FOR i := Len(::aCellStatus) TO 1 STEP -1


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




Пост N: 967
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.08.08 09:26. Заголовок: Спасибо ! После заме..


Спасибо !
После замены этого цикла, строки 800-810, на

FOR i := len(::aCellStatus) TO 1 STEP -1
lStat := ::aCellStatus
IF !lStat
IF lRead
RETURN .F.
ENDIF
lRead := ::readRecord( i )
ENDIF
lDisp := ::aDispStatus
IF lDisp
::dispRow( i )
ENDIF
NEXT

все работает замечательно
На первый взгляд несовместимостей я не заметил, все работает быстро
Если кеширование данных, все как в клиппере
Отличная работа Przemyslaw Czerpak

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




Пост N: 968
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.08.08 09:27. Заголовок: Форум немножно покоц..


Форум немножно покоцал код, но думаю понятно

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




Пост N: 970
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.09.08 16:15. Заголовок: Обнаружилась еще неб..


Обнаружилась еще небольшая несовместимость с клиппером у Harbour TBrowse.
Если не задавать заголовок у TColumn, все равно для заголовка резервируется одна строка, и данные выводятся со 2-й строки.
Чтобы пофиксить, надо в функции _DECODE_FH добавить дополнительное условие:

...
#ifndef HB_C52_STRICT
/* CA-Cl*per bug, it accepts non character values though cannot
* display them properly
*/
if cName != nil
nHeight := 1
endif
#else
...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 56
Зарегистрирован: 27.04.06
ссылка на сообщение  Отправлено: 25.09.08 09:10. Заголовок: Да, написал в форуме..


Да, написал в форуме
"TBROWSE column heading", Wed Jul 9 05:17:32 EDT 2008
но Przemyslaw Czerpak не откликнулся...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 937
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.10.08 12:58. Заголовок: Pasha Проверь почту..


Pasha
Проверь почту !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 939
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.10.08 14:43. Заголовок: Pasha пишет: FOR i ..


Pasha пишет:

 цитата:
FOR i := len(::aCellStatus) TO 1 STEP -1
lStat := ::aCellStatus
IF !lStat // тут падает
IF lRead
RETURN .F.
ENDIF
lRead := ::readRecord( i )
ENDIF
lDisp := ::aDispStatus
IF lDisp
::dispRow( i )
ENDIF
NEXT



Заменил , теперь бьет ошибку в 3 строке
Subsystem Call ....: BASE
System Code .......: 1066
Default Status ....: .F.
Description .......: Неверный аргумент
Operation .........: сравнение

В браузере у меня помещается скажем 15 строк на экране , как только еду ниже 15 , тут и падает.
Где копать ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 940
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.10.08 14:47. Заголовок: Сам въехал ;))) Вот ..


Сам въехал ;)))
Вот так должно быть
 
FOR i := len(::aCellStatus) TO 1 STEP -1
lStat := : : aCellStatus
IF !lStat
IF lRead
RETURN .F.
ENDIF
lRead := ::readRecord( i )
ENDIF
lDisp := : : aDispStatus
IF lDisp
::dispRow( i )
ENDIF
NEXT

и так ;)
FOR i := 1 TO Len(::aCellStatus)
lStat := : : aCellStatus
IF !lStat
IF lRead
RETURN .F.
ENDIF
lRead := ::readRecord( i )
ENDIF
lDisp := : : aDispStatus
IF lDisp
::dispRow( i )
ENDIF
next



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 941
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.10.08 14:50. Заголовок: Что то форум сжирает..


Что то форум сжирает символы
У Паши все верно если его месагу смотреть в режиме редактирования.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

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