Автор | Сообщение |
|
| |
Пост N: 64
Зарегистрирован: 31.05.07
|
|
Отправлено: 18.05.10 10:29. Заголовок: listbox в режиме полного экрана
Столкнулся с проблемой отображения содержимого LISTBOX DROPDOWN если окно не стандартногоразмера (80х25). Т.е. в стандартном режиме, если количество строк превышает размер раскрываемого списка, то курсор оказавшись на границах остается видимым. При перемещении вижу курсор на границе списка, записи пролистываются если двинут курсор за границы листа. Тут все в норме... Ситуация меняется, если окну задать нестандартный размер. В моем случае это 160х46 (FAR в полный экран Alt+F9) Курсор на границах списка пропадает, если перейти на строку ниже, и тоже самое происходит, в любую сторону.... К тому же, отображение обновленного списка становится очень странным... Эту "багу" я заметил как в Harbour 2.01 так и в xHarbour 1.20 Кто-нибудь сталкивался с такой штуковиной? Есть ли другой способ кроме создание своих контролов?
|
|
|
Ответов - 8
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1287
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.05.10 11:32. Заголовок: Давай самодостаточны..
Давай самодостаточный пример ! Будем тогда смотреть !
|
|
|
|
| |
Пост N: 65
Зарегистрирован: 31.05.07
|
|
Отправлено: 24.05.10 10:16. Заголовок: пример режимов отображения
Вот ссылка на архив с примером таблицы и режимов отображения LISTBOX listbox_test список режимов взят из мануала к xHarbour
|
|
|
|
| постоянный участник
|
Пост N: 399
Зарегистрирован: 27.01.07
|
|
Отправлено: 24.05.10 10:28. Заголовок: Сейчас собрал с Harb..
Сейчас собрал с Harbour 2.0.0 Вроде LISTBOX на всех режимах одинаков и нормально работает.
|
|
|
|
| |
Пост N: 66
Зарегистрирован: 31.05.07
|
|
Отправлено: 24.05.10 10:40. Заголовок: а что может быть не ..
а что может быть не так у меня? в режимах где строк 50, 60 у меня возникают клюки описанные в первом посте...
|
|
|
|
| |
Пост N: 1653
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.05.10 10:44. Заголовок: PSP пишет: Сейчас с..
PSP пишет: цитата: | Сейчас собрал с Harbour 2.0.0 Вроде LISTBOX на всех режимах одинаков и нормально работает. |
| У меня те же проблемы что и у spair2k
|
|
|
|
| постоянный участник
|
Пост N: 400
Зарегистрирован: 27.01.07
|
|
Отправлено: 24.05.10 10:54. Заголовок: Да. Прошу прощения. ..
Да. Прошу прощения. "Эффект" есть.
|
|
|
|
| Администратор
|
Пост N: 1451
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.05.10 14:05. Заголовок: Глюк имеет место быт..
Глюк имеет место быть только под gtwin, под gtwvt его нет. Причина глюка в этом операторе: function getListPos( nWidth, nTop, nLeft ) nTop := maxrow()/2 nLeft := int(maxcol()/2-nWidth/2) return nil Значит, терминал gtwin где-то неверно обрабатывает дробное значение позиции курсора Достаточно заменить этот оператор на: nTop := Int(maxrow()/2) и глюк пропадает
|
|
|
|
| |
Пост N: 67
Зарегистрирован: 31.05.07
|
|
Отправлено: 26.05.10 14:30. Заголовок: Pasha Спасибо за под..
Pasha Спасибо за подсказку... правда я нашел еще подин глюк, возможно это тоже связано с выводом через gtwin: Если код немного изменить вот так Скрытый текст #include 'box.ch' function main() local aList := {} local nListWidth := 40 local nListRows := 10 //для наглядности вида local nTop, nLeft local cCode := '000' local aModes := { {25, 80}, {43, 80}, {50, 80}, {60, 80}, {25, 132}, {43, 132}, {50, 132}, {60, 132} } local nRows, nCols local nOldRows := maxrow() local nOldCols := maxcol() local i //--- use spr05 new index on code to spr05 temporary dbeval( { ||aadd( aList, { spr05->name, spr05->code } ) } ) aSort( aList,,, { |x,y| x[1] < y[1] } ) for i=1 to len(aModes) nRows := aModes[i,1] nCols := aModes[i,2] cls setmode( nRows, nCols ) @ 0,0 say 'rows:'+alltrim(str(nRows))+' cols:'+alltrim(str(nCols)) getListPos( nListWidth, @nTop, @nLeft ) @ nTop, nLeft, nTop + nListRows, nLeft + nListWidth get cCode ; listbox aList dropdown guisend hotBox := B_SINGLE read alert(cCode) next i cls setmode( nOldRows, nOldCols ) return function getListPos( nWidth, nTop, nLeft ) nTop := int(maxrow()/2) //fix by:Pasha nLeft := int(maxcol()/2-nWidth/2) return nil
| то во всех режимах курсор тонет в последних двух строках, вверх идет нормально, а вниз утопает...
|
|
|
|