On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1929
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)


Всем привет.
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....

Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах)
Предложение Григорию:
Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ?

Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР
--------------------------------------------------------------------------------
Harbour MiniGUI Errorlog File
Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21
--------------------------------------------------------------------------------
Date: 11/15/2011 Time: 22:13:24
Error BASE/1124 Argument error: LEFT

Called from LEFT(0)
Called from SCANSOFT(195)
Called from MAIN(84)


Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается...
Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32
Harbour 3.1.0dev (Rev. 17042)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'demo.prg'...
Lines 20133, Functions/Procedures 30
Generating C source output to 'demo.c'... Done.
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
demo.c:
Error E2141 demo.prg 993: Declaration syntax error
*** 1 errors in Compile ***

C compile error.



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 230 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 All [только новые]





Пост N: 6
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 01.12.19 02:43. Заголовок: SergKis пишет: В мо..


SergKis пишет:

 цитата:
В моей сборки вправо и влево зажатый скролл работает по всей линейке и не виснет (hmg 19.09.2 сборка)
Если виснет у вас, то можно пробовать обработку сообщения WM_HSCROLL (цветом выделено)


у меня сборка Harbour MiniGUI Extended Edition 19.10 (Update 2), на ней не работает.
заработало только так.
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2983
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 11:45. Заголовок: kkg пишет заработало..


kkg пишет
 цитата:
заработало только так


hmg 19.09.2 сборка вашего примера скролл работает аналогично моего варианта, после двойных кликов по крайним кнопкам скролла (сообщения автоматом), при достижении крайних значений колонок, надо кликами на тсб активировать тсб работу.
Разваливается
- :nFreeze установленный (влево уходит на 1ю колонку) :nFreeze := 4
- Shift+End и Shift+Home (переход в конец\начало строки)
- врет с нумерацией SpecHeader, меняя нумерацию у :nFreeze колонок и соответсвенно у остальных

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2984
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 11:58. Заголовок: PS Надо отметить, чт..


PS
Надо отметить, что и в моем примере SpecHeader врет одинаково и Shift+Home уст. на 1ю колонку, но по -> правильно перепрыгивает на колонку с учетом :nFreeze. Это, наверно, общая неточность в тсб.

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



Пост N: 7
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 01.12.19 14:51. Заголовок: Ещё, после отпускани..


Ещё, после отпускания кнопки на скролбаре не сбрасывается сброс счётчика.
Допиливать нужно, но пока хоть не сваливается.
Уже приемлемо.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2985
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 18:07. Заголовок: kkg пишет Допиливать..


kkg пишет
 цитата:
Допиливать нужно, но пока хоть не сваливается


Что то допиливать надо, но у меня сборка hmg 19.10.2 на bcc 5.8 работает? не виснет по скроллу и клавишам.
Вот пример этой сборки https://TransFiles.ru/8n29c
Гонял туда-сюда работает и не виснет, так же как сборка bcc 5.5 hmg 19.09.2

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2986
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 23:57. Заголовок: Повторю ссылку https..


Повторю ссылку https://TransFiles.ru/bwhwh

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



Пост N: 8
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 02.12.19 01:47. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что то допиливать надо, но у меня сборка hmg 19.10.2 на bcc 5.8 работает? не виснет по скроллу и клавишам.


с oBrw:lLockFreeze := .F. на сборке 19.10.2 виснет + бегунок не дотягивает до последнего столбца

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2987
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.12.19 10:19. Заголовок: kkg пишет с oBrw:lLo..


kkg пишет
 цитата:
с oBrw:lLockFreeze := .F. на сборке 19.10.2 виснет


При :nFreeze := 4 задан, надо :lLockFreeze := .T., избегать прорисовки замороженных колонок
По примеру с :lLockFreeze := .F. видно, что при работе левой кнопки скроллбар курсор добегает до 1ой колнки, а должен остановиться на 4ой, что и происходит при :lLockFreeze := .T.. Уже видно рассогласование в прорисовке.

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



Пост N: 9
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 02.12.19 10:50. Заголовок: SergKis пишет: При ..


SergKis пишет:

 цитата:
При :nFreeze := 4 задан, надо :lLockFreeze := .F., избегать прорисовки замороженных колонок


На тяжёлых многоуровневых формах (много колонок) nFreeze нужен для замораживания ключевой информации,
а lLockFreeze := .F. нужен чтобы передать на следующий уровень строку с данными и номер (имя) кликнутой колонки,
но зачастую необходимая колонка находится в замороженной зоне поэтому и нужно чтобы курсор в неё заходил.

Для наглядности можно переставить местами
oBrw:lLockFreeze:=.f.
oBrw:nFreeze:=4

Ещё бывает необходимость редактировать данные в замороженной области

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2988
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.12.19 11:27. Заголовок: kkg пишет На тяжёлых..


kkg пишет
 цитата:
На тяжёлых многоуровневых формах (много колонок) nFreeze нужен для замораживания ключевой информации,
а lLockFreeze := .F. нужен чтобы передать на следующий уровень строку с данными и номер (имя) кликнутой колонки,
но зачастую необходимая колонка находится в замороженной зоне поэтому и нужно чтобы курсор в неё заходил.


OK!
Попробуйте добавить в h_tbrowse.prg
 
METHOD DrawLine( xRow ) CLASS TSBrowse
...
Next

DoEvents()

EndIf

Return Self
...
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
If lDraw
AAdd( ::aDrawCols, nJ )
EndIf

Next

DoEvents()

EndIf

If ::bOnDraw != Nil
...

и пересобрать либу MakeLib.bat
Пример с :lLockFreeze := .F. мой вариант, вроде не виснет, покрутил туда-сюда какое то время.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2989
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.12.19 11:49. Заголовок: SergKis пишет вроде ..


SergKis пишет
 цитата:
вроде не виснет, покрутил туда-сюда какое то время


Стало обвисать перемещение клавишами, к сожалению, а скроллбар нет.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2990
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.12.19 16:35. Заголовок: kkg Попробуйте вари..


kkg
Попробуйте вариант, вроде работаеат, не обвисает у меня Скрытый текст


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



Пост N: 10
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 04.12.19 17:48. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуйте вариант, вроде работаеат


я уже два дня на юзерах проверяю, вот такой вариант
Скрытый текст



но чтоб избежать лишнего Refresh пришлось поправить, h_tbrowse.prg

METHOD GoRight( lRefresh ) CLASS TSBrowse

Local nTxtWid, nWidth, nCell, nSkip //,
default lRefresh := ( ::lCanAppend .or. ::lIsArr )
.
.
.
if !Empty(lRefresh)
// lRefresh := ( ::lCanAppend .or. ::lIsArr )

While ! ::IsColVisible( ::nCell ) .and. ::nColPos < ::nCell
::nColPos ++
lRefresh := .T.
EndDo
endif

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

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



Пост N: 11
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 04.12.19 18:02. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуйте вариант, вроде работаеат



спасибо, у меня не подвисает

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2991
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.12.19 18:20. Заголовок: kkg Используйте в р..


kkg
Используйте в редакторе для сохранения отступов моноширинный шрифт - левая, первая кнопка с 123. т.е.
[ more ][ pre2 ]
тут текст
[ /pre2 ][ /more ]
очень трудно смотреть выложенный текст без выравнивания

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



Пост N: 12
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 04.12.19 19:35. Заголовок: SergKis пишет: Испо..


SergKis пишет:

 цитата:
Используйте в редакторе для сохранения отступов моноширинный шрифт


ок

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6547
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.12.19 12:07. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуйте вариант, вроде работаеат, не обвисает у меня



Тоже столкнулся с таким же повисанием.
У меня таблица из 46 столбцов, вешает прогу наглухо.

Я так понял что достаточно добавить
oBrw:bEvents := {|ob,nm,np,nl| tsb_events(ob,nm,np,nl) } и саму функцию обработки ?
У меня нет клавиш :bUserKeys

PS Попробовал, не собирается, выдаёт ошибку:
Harbour 3.2.0dev (r1909261630)
Copyright (c) 1999-2019, https://harbour.github.io/
tsb_prnExp.prg(462) Warning W0003 Variable 'NLPARAM' declared but not used in function 'TSB_EVENTS(399)'
hbmk2[5Tbrw_table]: Error: Running Harbour compiler (built-in). 1


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2993
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.12.19 16:24. Заголовок: Andrey Попробовал, н..


Andrey
 цитата:
Попробовал, не собирается, выдаёт ошибку:


Посмотреть и исправить (или сменить режим компилятора на не строгий), наверно, ни как ?
 

nCol := oBrw:nCell
nFrez := oBrw:nFreeze + 1
nKey := Loword( nWParam )
nFlag := HiWord( nWParamnLParam )

If lCtrl .or. lShift .or. lAlt


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6548
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.12.19 16:50. Заголовок: SergKis пишет: Посм..


SergKis пишет:

 цитата:
Посмотреть и исправить (или сменить режим компилятора на не строгий), наверно, ни как ?


Не могу. Контроль нужен.

Спасибо ! Заработало !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2994
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.12.19 17:34. Заголовок: Andrey пишет Заработ..


Andrey пишет
 цитата:
Заработало !


В своей версии сделал
 
CLASS TSBrowse FROM TControl
...
DATA lMoreFields AS LOGICAL INIT .F.
DATA nCntKeysLR AS NUMERIC INIT 0
DATA nMaxKeysLR AS NUMERIC INIT 3
DATA nCntScroll AS NUMERIC INIT 0
DATA nMaxScroll AS NUMERIC INIT 3

...
METHOD MoreFields( nMsg, nWParam, nLParam ) CLASS TSBrowse
Local nRet := 0, nCol, nFrez, nKey, nPos
Local lCtrl := _GetKeyState( VK_CONTROL )
Local lShift := _GetKeyState( VK_SHIFT )
Local lAlt := _GetKeyState( VK_MENU )

If lCtrl .or. lShift .or. lAlt ; RETURN nRet
EndIf

nCol := ::nCell
nFrez := ::nFreeze + 1
nKey := Loword( nWParam )
nPos := HiWord( nLParam )

If nMsg == WM_KEYDOWN
If nKey == VK_LEFT .and. nCol > nFrez
::nCntKeysLR ++
If ::nCntKeysLR >= ::nMaxKeysLR
nRet := 1
::nCntKeysLR := 0
EndIf
DO EVENTS
ElseIf nKey == VK_RIGHT .and. nCol < ::nColCount()
::nCntKeysLR ++
If ::nCntKeysLR >= ::nMaxKeysLR
nRet := 1
::nCntKeysLR := 0
EndIf
DO EVENTS
EndIf
ElseIf nMsg == WM_KEYUP
::nCntKeysLR := 0
Elseif nMsg == WM_HSCROLL
If ! ::lDontchange .and. ::lEnabled
IF nKey == SB_LINEUP ; ::nCntScroll ++
ELSEIF nKey == SB_LINEDOWN ; ::nCntScroll ++
ELSE ; ::nCntScroll := 0
ENDIF
IF ::nCntScroll >= ::nMaxScroll
nRet := 1
::nCntScroll := 0
ENDIF
EndIf
EndIf

RETURN nRet

...
METHOD HandleEvent( nMsg, nWParam, nLParam ) CLASS TSBrowse
...
IF ::lMoreFields
IF ! Empty( ::MoreFields( nMsg, nWParam, nLParam ) )
RETURN 1
ENDIF
ENDIF

If hb_IsBlock( ::bEvents )
If ! Empty( ar := EVal( ::bEvents, Self, nMsg, nWParam, nLParam ) )
Return 1
EndIf
EndIf
...
тогда в примере
oBrw:nFreeze := 4
oBrw:lLockFreeze := .F.
oBrw:lMoreFields := .T.
// oBrw:bEvents := {|ob,nm,np,nl| tsb_events(ob,nm,np,nl) }

oBrw:nCell := oBrw:nFreeze + 1
oBrw:lAdjColumn := .T.
...


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

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