Форум » GUI » TsBrowse в Минигуи (продолжение) » Ответить

TsBrowse в Минигуи (продолжение)

Vlad04: TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру [quote] DEFINE TBROWSE oBrw2 ; AT 60,450 ; ALIAS cAlias ; OF Form1 ; WIDTH 330 ; HEIGHT 340 ; FONT "Verdana" ; SIZE 9 ; ON DBLCLICK CopyRec(); ON GOTFOCUS fModelo_Hab(2) ; AUTOFILTER ; CELLED EDIT; VALUE nRec; GRID [/quote] Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Haz: Не пойму как spinner в tsBrowse работает. при достижении нуля скачет на другую строку , как исправить никто не знает ? Берем базовый пример TsBtest в строке 522 пишем [pre2]Brw_6:SetSpinner( 10, .t., 1,1, {|| 0 }, {|| 100 } ) [/pre2] в любой строке ( в первой нагляднее ) в 10 колонке вбиваем ручками значение 2 и затем мышью или кнопками пытаемся установить 0. При переходе с 1 на 0 курсор улетает. Есть мысли где копать ? хоть какой модуль дурит ? исходники по слову spinner просмотрел - не нашел где подкрутить.

Dima: Haz пишет: Берем базовый пример TsBtest Не нашел такой

SergKis: Dima пишет Не нашел такой это Advanced\TsBrowse\TsBtest.prg Haz пишет Brw_6:SetSpinner( 10, .t., 1,1, {|| 0 }, {|| 100 } ) У меня работает, доходит до 0 и курсор не теряется, а нажав Esc, курсор уходит с тсб, надо кликать по тсб поищи Far-ом в source\TsBrowse Alt+F7 "spinn" выдаст все, там надо смотреть


Haz: Специально записал видео скомпилировал пример с нуля для надежности Сергей, обрати внимание на то что в первой колонки строки и позицию вертикального скроллера до перехода в ноль и после вот ссылка на видео https://drive.google.com/file/d/1BgXBWAyya-wn3P0DO34pM_2sXznafw7o/view?usp=sharing ЗЫ по слову спин обыскался в исходниках. Не пойму как решить проблему. Ладно бы у себя в проекте накосячил, так это стандартный пример с чистой версии минигуи

SergKis: Haz пишет Специально записал видео Ты про верт. скролл бар ? Почему он перемешается, не знаю ? Он не должен иметь к spinner отношения. Spinner это увеличение\уменьшение числового значения в GetBox, по мне. по слову спин обыскался в исходниках (см. выше) Far, Alt+F7 файлы *.prg,*,c,.ch ищем "spinn" => c_TBrowse.c h_tbrowse.prg TBtnBox.prg TGetBox.prg TSCOLUMN.PRG возможно h_events.prg, но надо смотреть блоки кода установленные в колонках и создаваемые в TBtnBox и TGetBox когда они срабатывают и почему и где воздействуют на VScrollBar объект. Сам не использую spinner, как то более наглядно через кнопочки +,-

Haz: SergKis пишет: Ты про верт. скролл бар ? Почему он перемешается, не знаю ? Он не должен иметь к spinner отношения. Spinner это увеличение\уменьшение числового значения в GetBox, по мне. Да вертикальный скролл уезжает, а вмести с ним и весь бровс Спиннер реализован на на BtnGet, никакого отношения в бровсу не должен иметь, просто рисуется в окне ячейки и имеет свой hWnd. НО ... шлет сообщения бровсу , если большое число спиннить непрерывно видна перерисовка бровса. Пытался делать тассировку сообщений через HandleEvent и при работе спиннера сообшения долетают до class Tcontrol. На этом я потерялся Идея с двумя кнопками интересна, покажи скрин реализации

SergKis: Haz пишет Идея с двумя кнопками интересна, покажи скрин реализации Скрин не покажу (там сервер нужен и ...), проще в пример перенести, модифицированный GetBox_3 тут https://TransFiles.ru/qo4ol

Haz: SergKis пишет: проще в пример перенести, модифицированный GetBox_3 Идея понятна, нужно посмотреть как она впишется в BtnGet TsBrows . Спасибо за нее.

Haz: Haz пишет: нужно посмотреть как она впишется в BtnGet TsBrows к сожалению не вписывается , в btnGet одна кнопка.. печаль.

SergKis: Haz пишет к сожалению не вписывается , в btnGet одна кнопка.. печаль. На модальном окне без заголовка (в размер ячейки) вписывается нормально или вариант, как в Excel строка с GetBox отдельно от тсб и по смене строк, меняешь их содержимое (расположение строки может быть горизонтальным, вертикальным) , можно кнопки сделать с +,- в toolbar или над колонкой. Можно сделать доп. колонки с +,- рядом с нужной и по edit вносишь константу, двойными кликами по ячейкам с +,- делаешь +1,-1

Haz: SergKis пишет: Можно сделать доп. колонки с +,- рядом с нужной и по edit вносишь константу, двойными кликами по ячейкам с +,- делаешь +1,-1 это уже тестирую , как вариант

SergKis: Haz пишет это уже тестирую SergKis пишет На модальном окне без заголовка (в размер ячейки) вписывается нормально В этом варианте полный аналог из примера на GetBox, на :bPrevEdit подключаешь и если в модал окне Esc - не пишешь результат в ячейку.

Haz: SergKis пишет: В этом варианте полный аналог из примера на GetBox, на :bPrevEdit подключаешь и если в модал окне Esc - не пишешь результат в ячейку. Ну так то и обычный спиннер вписать можно в модальное. Жаль что в TS этот элемент криво работает

Haz: SergKis пишет: На модальном окне без заголовка (в размер ячейки) Спасибо , создал модальное , изменил стиль окна и вписал туда обычный спиннер. Все работает

Haz: Попутно добавил у себя в h_tbrowse.prg [pre2] в описании данных DATA lShowNone AS LOGICAL INIT .T. // enable/disable DatePicker ShowNone in inplace Editing в методе Edit local lShowNone ... lShowNone := ::lShowNone ( после lPicker := ::lPickerMode // MWS Sep 20/07 ) и далее oCol:oEdit := TDatePicker():New( nRow, nCol, bSETGET( uValue ), Self, nWidth, nHeight, ; cPicture,, nClrFore, nClrBack, hFont, ::cChildControl,, cWnd, ; cMsg,,,,, bChange,,, lShowNone, ::lUpDown ) [/pre2] теперь достаточно указать oBrw:lShowNone := FALSE ,а то пользователи ( некоторые ) с этим квадратом справиться не могут

SergKis: Haz пишет Попутно добавил у себя в h_tbrowse.prg Оч. хорошая добавка создал модальное , изменил стиль окна и вписал туда обычный спиннер. Все работает Спиннер, конечно, хорошо, но у него очень малая область для кликов мышкой, особенно при работе с тачпад Что добавил в стиль модального окна ?

gfilatov2002: SergKis пишет: хорошая добавка Добавил эту переменную в новую сборку также Благодарю за помощь

Haz: SergKis пишет: Что добавил в стиль модального окна ? так, больше для красоты SetWindowLong(hWnd, GWL_STYLE, WS_BORDER)

SergKis: Haz пишет для красоты Спасибо. Можно еще такой вариант делать[pre2] DEFINE WINDOW &(oCol:cName) AT nY,nX WIDTH nW HEIGHT nH MODAL NOSIZE NOSYSMENU NOCAPTION BACKCOLOR BLUE @ 2,2 GETBOX _Get_ HEIGHT nH-4 WIDTH This.ClientWidth-4 VALUE oBrw:GetValue(oCol) ON KEY RETURN ACTION ( cRet := This._Get_.Value, ThisWindow.Release ) ON KEY ESCAPE ACTION ThisWindow.Release END WINDOW ACTIVATE WINDOW &(oCol:cName) [/pre2]

Haz: SergKis пишет: Можно еще такой вариант делать Примерно так и сделал. Заказчик захотел спиннер, на нем висит блок кода визуально отражающий итоговый денежный поток при сдвигах платежей во времени. Спасибо Григорий подкинул хелп по расчёту рмчёрту , иначе не разобрался бы



полная версия страницы