Автор | Сообщение |
gfilatov
|
| модератор
|
Пост N: 699
Зарегистрирован: 25.05.05
|
|
Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)
Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Haz
|
| |
Пост N: 1361
Зарегистрирован: 20.02.11
|
|
Отправлено: 16.10.18 13:00. Заголовок: SergKis пишет: лома..
SergKis пишет: цитата: | ломает фокус на др. контролах, при работе в событии CHANGE ... У себяубрал, т.к. сломались подводы на getbox-ах, с них фокус улетал на тсб |
| Да, сразу не обратил внимания. В остальном без фокуса есть замечания ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2092
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.10.18 14:03. Заголовок: Haz пишет В остально..
Haz пишет цитата: | В остальном без фокуса есть замечания ? |
| Собрал реальный проект сегодня, отдал в работу. Будем посмотреть Фокус вылез на однотипных подводах, поправил, у меня ok!, остальное подождем ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2093
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.10.18 20:00. Заголовок: gfilatov2002 Что то..
gfilatov2002 Что то сломалось в применении This для Domethod(...) // ошибка везде лезет (пример C:\MiniGui\SAMPLES\BASIC\BUTTON_1>call ..\..\..\batch\compile.bat demo) This.Button_4.SetFocus() demo.prg(154) Error E0030 Syntax error "syntax error at '.'" ставлю сюда (но не важно в др. событиях так же) This.Button_4.SetFocus() END WINDOW ... This.Button_4.Height This.Button_4.Index работают
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1374
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.10.18 14:37. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Может тут слегка поправить ? |
| Принято Благодарю за помощь
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1375
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.10.18 14:40. Заголовок: SergKis пишет: В ме..
SergKis пишет: цитата: | В методе GotoRec(...) надо убрать строку |
| Пока вернулся к старой редакции этого метода, которая работает медленнее, но стабильнее
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1376
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.10.18 14:41. Заголовок: SergKis пишет: слом..
SergKis пишет: цитата: | сломалось в применении This для Domethod(...) |
| Уже поправил - это был мой "косяк" Благодарю за подсказку
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2098
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.10.18 16:11. Заголовок: gfilatov2002 пишет П..
gfilatov2002 пишет цитата: | Пока вернулся к старой редакции этого метода |
| Может новый метод назвать :GoRec( nRecNo, nRowPos), потом можно совместить, если что. По мне он и сейчас хорош и требует небольшой доводки. Как метод, наверно, только у меня крутится. Если будет у большего числа пользователей, быстрее отладится
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2104
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.10.18 21:33. Заголовок: gfilatov2002 Игорь ..
gfilatov2002 Игорь поправил :GotoRec(...). Пример для проверки (функ. myGotoRow(...) с галочками работает функция) https://my-files.ru/gwnw6t Текст метода Скрытый текст
METHOD GotoRec( nRec, nRowPos ) CLASS TSBrowse LOCAL cAlias LOCAL nSkip := 0 LOCAL n := 0 LOCAL nRecSave := 0 LOCAL lMore := .T. LOCAL lSkip := .F. LOCAL lRet := .F. LOCAL lReCount := .F. If ::lIsDbf lRet := .T. cAlias := ::cAlias ::nLastPos := (cAlias)->( RecNo() ) hb_default( @nRowPos, ::nRowPos ) (cAlias)->( dbGoto(nRec) ) n := 0 DO WHILE (cAlias)->( !BOF() ) .and. n < nRowPos - 1 (cAlias)->( dbSkip(-1) ) If !(cAlias)->( BOF() ) n ++ EndIf ENDDO nSkip := n (cAlias)->( dbGoto(nRec) ) (cAlias)->( dbSkip( -nSkip ) ) nRecSave := (cAlias)->( Recno() ) nRowPos := Min( nSkip + 1, nRowPos ) (cAlias)->( dbGoto(nRec) ) n := 0 DO WHILE (cAlias)->( !EOF() ) .and. n < ( ::nRowCount() - nRowPos ) (cAlias)->( dbSkip(1) ) If !(cAlias)->( EOF() ) n ++ EndIf ENDDO If n < ( ::nRowCount() - nRowPos ) lReCount := .T. EndIf (cAlias)->( dbGoto(nRecSave) ) ::nRowPos := nRowPos ::Refresh( lReCount, lReCount ) ::Skip( nSkip ) ::ResetVscroll() If ::bChange != Nil Eval( ::bChange, Self, 0 ) EndIf ::lHitTop := ::lHitBottom := .F. DO EVENTS EndIf RETURN lRet
| Пример для проверки работы метода https://my-files.ru/e0jvqq
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6082
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.10.18 21:50. Заголовок: SergKis пишет: Прим..
SergKis пишет: цитата: | Пример для проверки работы метода |
| Что-то на Down давишь и запись никуда не двигается... Или это только у меня так ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2105
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.10.18 21:55. Заголовок: Andrey подробнее, н..
Andrey подробнее, на какой строке жмешь, если на последней, то куда ниже двигать ? так же на первой Up ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1384
Зарегистрирован: 11.02.10
|
|
Отправлено: 25.10.18 22:32. Заголовок: SergKis пишет: Игор..
SergKis пишет: цитата: | Игорь поправил :GotoRec(...) |
| Супер! Метод работает отлично Благодарю за реальную помощь в развитии этой библиотеки
|
|
|
|
Haz
|
| |
Пост N: 1374
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.10.18 23:12. Заголовок: SergKis пишет: Прим..
SergKis пишет: цитата: | Пример для проверки работы метода |
| Подумалось, может в методе в качестве nRec реализовать возможность принимать не только номер записи, но и блок кода? Этот блок должен вернуть номер записи, тогда туда можно закинуть и dbLocate() и dbSeek () и тд! И устанавливать запись на результат выполнения блока.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6083
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.10.18 23:53. Заголовок: SergKis пишет: подр..
SergKis пишет: цитата: | подробнее, на какой строке жмешь, если на последней, то куда ниже двигать ? так же на первой Up ? |
| Маркер стоит посередине таблицы. Нажимаем Down - менюшка, а потом маркер на месте, а запись поменялась с нижней. Если нажимаем Up, менюшка и маркер двигает запись вверх на одну. Т.е. я предполагал, что при движении вниз и маркер должен скакать сам вниз вместе с записью.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2106
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.10.18 00:09. Заголовок: Andrey пишет Т.е. я ..
Andrey пишет цитата: | Т.е. я предполагал, что при движении вниз и маркер должен скакать сам вниз вместе с записью. |
| :GotoRec(nRec, nRowPos) теперь имеет 2а параметра. если второй пар-р не задан - удерживается текущий :nRowPos тот алгоритм, что предполагал, проделывай сам. см. работу Insert -> там 2ой параметр используется
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2107
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.10.18 00:14. Заголовок: PS сам маркер никому..
PS сам маркер никому ничего должен скорее ты ему ... алгоритмом
|
|
|
TimTim
|
| |
Пост N: 152
Зарегистрирован: 10.07.07
|
|
Отправлено: 26.10.18 08:47. Заголовок: Отличная идея, класс..
Отличная идея, классный алгоритм. Буду изучать. Andrey пишет: цитата: | Т.е. я предполагал, что при движении вниз и маркер должен скакать сам вниз вместе с записью. |
| Кстати, при движении вверх происходит как раз так, как Андрей и хотел, а вниз - нет. Маркер не "слушается", ведет себя как хочет?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2108
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.10.18 10:08. Заголовок: TimTim пишет Маркер ..
TimTim пишет цитата: | Маркер не "слушается", ведет себя как хочет? |
| В этом вы правы - лечится так (цель была проверить работу new :GotoRec): Скрытый текст
EndIf // nRec := nRec1 Else (cAls)->( dbSkip(-1) ) nRec2 := (cAls)->( RecNo() ) // nRec := nRec2 EndIf
| Алгоритм с перемещением маркера такой, на вскидку (могут быть шероховатости) Скрытый текст
STATIC FUNCTION RecMove(oBrw, nSkip) LOCAL nRec1, oRec1, nKey1, nRec2, oRec2, nKey2 LOCAL cAls := oBrw:cAlias, lRet := .F. LOCAL nRow := oBrw:nRowPos, nPos LOCAL nMax := oBrw:nRowCount() LOCAL nRec := (cAls)->( RecNo() ) IF ! MsgYesNo( "You want to "+iif( nSkip > 0, "Down", "Up" )+; " record in the table ?", "Сonfirmation", .f. ) oBrw:SetFocus() RETURN lRet ENDIF nRec1 := nRec nRec2 := nRec1 oRec1 := (cAls)->( RecGet() ) nKey1 := oRec1:Get('F0') nPos := 0 If (cAls)->( FLock() ) If nSkip > 0 (cAls)->( dbSkip(1) ) If (cAls)->( !EOF() ) nRec2 := (cAls)->( RecNo() ) EndIf nRec := nRec2 nPos := 1 Else (cAls)->( dbSkip(-1) ) nRec2 := (cAls)->( RecNo() ) nRec := nRec2 EndIf If nRec1 != nRec2 oRec2 := (cAls)->( RecGet() ) nKey2 := oRec2:Get('F0') oRec2:Set('F0', nKey1) oRec1:Set('F0', nKey2) (cAls)->( RecPut(oRec1) ) (cAls)->( dbGoto(nRec1) ) (cAls)->( RecPut(oRec2) ) lRet := .T. EndIf (cAls)->( dbUnLock() ) Endif // MsgDebug( nRec, nRow ) (cAls)->( dbGoto(nRec) ) If lRet nPos := iif( nRow < nMax, nPos, 0 ) oBrw:GotoRec(nRec, nRow + nPos) DO EVENTS EndIf oBrw:SetFocus() RETURN lRet
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2109
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.10.18 10:15. Заголовок: pS Забыл, что либы е..
|
|
|
TimTim
|
| |
Пост N: 153
Зарегистрирован: 10.07.07
|
|
Отправлено: 26.10.18 11:27. Заголовок: :sm250: , но ... Se..
, но ... SergKis пишет: Их есть. Делаем так. В программе изначально ставим создать БД не с 15 записями, а скажем с 20 (можно просто вставить в конец 3 или больше строк). Главное вся БД не помещается в окошко. Передвигаемся в конец базы. Поднимаем последнюю строку на 1 вверх, затем опускаем вниз, типа ошиблись. У меня 20-я запись идет после 16. А у вас?
|
|
|
Haz
|
| |
Пост N: 1375
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.10.18 11:33. Заголовок: TimTim пишет: У мен..
TimTim пишет: цитата: | У меня 20-я запись идет после 16. А у вас? |
| У меня все нормально
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|