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


Пост N: 420
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи (продолжение)


TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений
К примеру

 цитата:

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


Здесь я собрал параметры из разных tBrows
Можно или нет и какие парметры заменить
выражением ( и каким) ?
oBrw2:....
oBrw2:....



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


Haz
администратор




Пост N: 1680
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.05.21 15:12. Заголовок: Не пойму как spinner..


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

в любой строке ( в первой нагляднее ) в 10 колонке вбиваем ручками значение 2 и затем мышью или кнопками пытаемся установить 0. При переходе с 1 на 0 курсор улетает.
Есть мысли где копать ? хоть какой модуль дурит ? исходники по слову spinner просмотрел - не нашел где подкрутить.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 7373
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.05.21 21:10. Заголовок: Haz пишет: Берем ба..


Haz пишет:

 цитата:
Берем базовый пример TsBtest


Не нашел такой

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




Пост N: 3730
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.05.21 11:50. Заголовок: Dima пишет Не нашел ..


Dima пишет
 цитата:
Не нашел такой


это Advanced\TsBrowse\TsBtest.prg

Haz пишет
 цитата:
Brw_6:SetSpinner( 10, .t., 1,1, {|| 0 }, {|| 100 } )


У меня работает, доходит до 0 и курсор не теряется, а нажав Esc, курсор уходит с тсб, надо кликать по тсб
поищи Far-ом в source\TsBrowse Alt+F7 "spinn" выдаст все, там надо смотреть

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1681
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.05.21 19:33. Заголовок: Специально записал в..


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

ЗЫ по слову спин обыскался в исходниках. Не пойму как решить проблему. Ладно бы у себя в проекте накосячил, так это стандартный пример с чистой версии минигуи

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




Пост N: 3731
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.05.21 19:55. Заголовок: Haz пишет Специально..


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, как то более наглядно через кнопочки +,-

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1682
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.05.21 21:29. Заголовок: SergKis пишет: Ты п..


SergKis пишет:

 цитата:
Ты про верт. скролл бар ? Почему он перемешается, не знаю ? Он не должен иметь к spinner отношения.
Spinner это увеличение\уменьшение числового значения в GetBox, по мне.


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

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




Пост N: 3732
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.05.21 22:47. Заголовок: Haz пишет Идея с дву..


Haz пишет
 цитата:
Идея с двумя кнопками интересна, покажи скрин реализации


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

Спасибо: 0 
Профиль
Haz
администратор




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


SergKis пишет:

 цитата:
проще в пример перенести, модифицированный GetBox_3


Идея понятна, нужно посмотреть как она впишется в BtnGet TsBrows . Спасибо за нее.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1684
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.05.21 12:52. Заголовок: Haz пишет: нужно по..


Haz пишет:

 цитата:
нужно посмотреть как она впишется в BtnGet TsBrows


к сожалению не вписывается , в btnGet одна кнопка.. печаль.

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




Пост N: 3734
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.05.21 13:10. Заголовок: Haz пишет к сожалени..


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


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

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1685
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.05.21 13:33. Заголовок: SergKis пишет: Можн..


SergKis пишет:

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


это уже тестирую , как вариант

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




Пост N: 3735
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.05.21 13:45. Заголовок: Haz пишет это уже те..


Haz пишет
 цитата:
это уже тестирую


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


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

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1686
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.05.21 16:42. Заголовок: SergKis пишет: В эт..


SergKis пишет:

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


Ну так то и обычный спиннер вписать можно в модальное. Жаль что в TS этот элемент криво работает

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1687
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.05.21 11:23. Заголовок: SergKis пишет: На м..


SergKis пишет:

 цитата:
На модальном окне без заголовка (в размер ячейки)


Спасибо , создал модальное , изменил стиль окна и вписал туда обычный спиннер. Все работает

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1688
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.05.21 13:41. Заголовок: Попутно добавил у се..


Попутно добавил у себя в h_tbrowse.prg
 
в описании данных
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 )


теперь достаточно указать oBrw:lShowNone := FALSE ,а то пользователи ( некоторые ) с этим квадратом справиться не могут

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




Пост N: 3736
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.05.21 14:34. Заголовок: Haz пишет Попутно до..


Haz пишет
 цитата:
Попутно добавил у себя в h_tbrowse.prg


Оч. хорошая добавка

 цитата:
создал модальное , изменил стиль окна и вписал туда обычный спиннер. Все работает


Спиннер, конечно, хорошо, но у него очень малая область для кликов мышкой, особенно при работе с тачпад

Что добавил в стиль модального окна ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1862
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.05.21 15:00. Заголовок: SergKis пишет: хоро..


SergKis пишет:

 цитата:
хорошая добавка


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

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1689
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.05.21 15:09. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что добавил в стиль модального окна ?

так, больше для красоты
SetWindowLong(hWnd, GWL_STYLE, WS_BORDER)

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




Пост N: 3737
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.05.21 10:12. Заголовок: Haz пишет для красот..


Haz пишет
 цитата:
для красоты


Спасибо. Можно еще такой вариант делать
 
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)


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1690
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.05.21 11:13. Заголовок: SergKis пишет: Можн..


SergKis пишет:

 цитата:
Можно еще такой вариант делать


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

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 265
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет