Автор | Сообщение |
|
| постоянный участник
|
Пост 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:....
|
|
|
Ответов - 192
, стр:
1
2
3
4
5
6
7
8
9
10
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 4260
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.03.23 17:51. Заголовок: Haz пишет Ну как мет..
Haz пишет цитата: | Ну как метод сделать можно, черновик попробовал , мелькает меньше ( только на DrawSelect ) |
| На DrawSelect не должна моргать, там же ничего нет, после всех DrawLine одна строка поверх с др. атрибутами цвета ... и все "Дойдешь до кондиции" выложи на посмотреть
|
|
|
|
| |
Пост N: 1925
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.03.23 19:01. Заголовок: SergKis пишет: На D..
SergKis пишет: цитата: | На DrawSelect не должна моргать |
| Должна, сначала рисуются все строки drawline а потом drawselect и эта прорисовка со стандарта на селект видна на плохой сети. Но это решаемо алгоритмом
|
|
|
|
| |
Пост N: 1926
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.03.23 11:31. Заголовок: SergKis пишет: трет..
SergKis пишет: цитата: | третий вариант" это событие 55 (выше |
| Сделал контрольный, чуть косметики и выложу. Это не совсем событие 55, там у тебя Refresh без очистки. Это значит , что при установке фильтра и не полном заполнении окна бровса, строки из фильтра перерисуются, а остальные остаются мусором на экране. В данном случае нужна очистка, но ее видно мельканием, т.к. сначала полностью очищается окно, а потом все рисуем заново Чисто теоретически , при неполном заполнении окна бровса с очисткой работает быстрее ( меньше строк рисовать ) а с дорисовкой плавнее и плюс бонусом опционально сетка на незанятой область бровса ( любым цветом ). Я сделал пример не с очисткой , а с дорисовкой всего окна бровса
|
|
|
|
| постоянный участник
|
Пост N: 4261
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.03.23 12:42. Заголовок: Haz пишет Это значит..
Haz пишет цитата: | Это значит , что при установке фильтра и не полном заполнении окна бровса, строки из фильтра перерисуются, а остальные остаются мусором на экране. |
| Ты не понял, событие 55 может быть разным, простым, более сложным, Например такое :Event(55, {|ow,ky,ob| DoEvents(), ky := ow, ob:Refresh(ob:nLen < ob:nRowCount(), .T.), DoEvents() }) то, что было ранее это из примера, где фиксированное кол-во строк в тсб, который служит для установки\снятия галочек как в RedioGroup и вызывается в :bPostEdit, т.е. давая завершить работе методов :Edit... и прорисовкой тек. строки и только потом сработает 55 событие, которое перерисует все строки, для показа состояния галочек др. строк. PS И если откл. внутреннее исп. :Refresh() (в :UpStable или др. варанты), то 55 событие позволяет мне управлять когда перепоказывать окно тсб
|
|
|
|
| |
Пост N: 1928
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.03.23 12:52. Заголовок: SergKis пишет: Ты н..
SergKis пишет: цитата: | Ты не понял, событие 55 может быть разным, простым, более сложным, |
| Да понял я, вопрос в том что есть два варианта рефреш. Первый не чистит мусор, второй моргает. А так да , согласен на 55 можно понаписать свой h_tbrowse целиком
|
|
|
|
| постоянный участник
|
Пост N: 4262
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.03.23 13:05. Заголовок: Haz пишет вопрос в т..
Haz пишет цитата: | вопрос в том что есть два варианта рефреш. Первый не чистит мусор, второй моргает |
| Написанный выше дает только один вариант, на все случаи и :nLen ставит и чистит когда надо, по мне вопроса тут нет. То что моргает, так это уровень C, туда не лезем, т.к. DoubleBuffer не будет реализован. Т.е. что есть, то и используем
|
|
|
|
| постоянный участник
|
Пост N: 7350
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.04.23 12:00. Заголовок: Всем привет ! У меня..
Всем привет ! У меня есть иконки в ресурсах ехе-ника. Можно организовать показ этих иконок в ТСБ ? bmp как показывать знаю....
|
|
|
|
| moderator
|
Пост N: 2121
Зарегистрирован: 11.02.10
|
|
Отправлено: 04.04.23 17:03. Заголовок: Andrey пишет: Можно..
Andrey пишет: цитата: | Можно организовать показ этих иконок в ТСБ ? |
| Да, можно Выложил рабочий пример по адресу click here Он сделан на базе примера MiniGUI\SAMPLES\Advanced\Tsb_BitMaps
|
|
|
|
| постоянный участник
|
Пост N: 7351
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.04.23 17:30. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Выложил рабочий пример по адресу |
| Спасибо БОЛЬШОЕ ! И в своей библиотеке подправь этот пример. Будет тогда отлично !
|
|
|
|
| постоянный участник
|
Пост N: 7352
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.04.23 18:20. Заголовок: А иконку в контекстн..
А иконку в контекстное меню можно сразу выводить ? Без всякой замены на лету ? А то приходилось делать в два этапа, вывести пустой ресурс, а потом менять его на иконку. Сложно это, давно перестал делать.
|
|
|
|
| moderator
|
Пост N: 2122
Зарегистрирован: 11.02.10
|
|
Отправлено: 04.04.23 18:47. Заголовок: Andrey пишет: А ико..
Andrey пишет: цитата: | А иконку в контекстное меню можно сразу выводить ? |
| Уже можно... Благодарю за запрос
|
|
|
|
|
| |
Пост N: 166
Зарегистрирован: 12.07.06
|
|
Отправлено: 05.04.23 12:16. Заголовок: aColors, есть вопрсы
Столкнулся с несоответствием в описании структуры массива aColors. Использовал superheader и захотел поменять цвета через SetColor, в описании это 16 и 17 элементы массива, а на деле оказалось надо указывать 15 и 16 элемент. Глянул в TSBROWSE.CH. там тоже 16 и 17, непонятно Использую HMG Extended Edition version 22.12 (Update 2).
|
|
|
|
| постоянный участник
|
Пост N: 4266
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.04.23 15:58. Заголовок: alex_II пишет захоте..
alex_II пишет цитата: | захотел поменять цвета через SetColor, в описании это 16 и 17 элементы массива |
| Кусочек со старого примера (версии старше указанной), работает на 16 и 17 элементы STATIC FUNCTION mySupHdTsb( oBrw, aSupHd ) LOCAL O := oBrw:Cargo // использовать из контейнера свои переменные ADD SUPER HEADER TO oBrw FROM 1 TO oBrw:nColCount() TITLE " "+aSupHd[1] HORZ DT_LEFT WITH OBJECT oBrw // задать цвета суперхидеру :SetColor( {16}, { O:nClr16 } ) // 16, фона :SetColor( {17}, { O:nClr17 } ) // 17, текста END WIDTH RETURN NIL
|
|
|
|
| постоянный участник
|
Пост N: 7361
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.04.23 15:04. Заголовок: Если я ставлю фильтр..
Если я ставлю фильтр на базу oBrw:FilterData( cFilter ), то у меня при перемещении по базе на линии ВЕРТИКАЛЬНОГО скролинга бегунок неправильно отображается. Как починить его ?
|
|
|
|
| |
Пост N: 1931
Зарегистрирован: 20.02.11
|
|
Отправлено: 14.04.23 08:31. Заголовок: Andrey пишет: Как п..
Andrey пишет: разбираться со значением :bLogicLen после вызова фильтра. Там устанавливается конкретное значение , отличное от изначального в :setdbf() Ошибка. bLogicLen. не учтена работа в шаред режиме при которой коллеги могут внести правки в базу , влияющие на фильтр , а так же удаление и добавление новых записей и то что фильтр можно поставить вне бровса. И при значении :bLogicLen == {|| 1000} после последнего вызова метода получим ерунду. А так же, не применимо для логики ads в целом , с его AOF фильтрами.
|
|
|
|
| постоянный участник
|
Пост N: 7363
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.04.23 07:48. Заголовок: Иконки рисуются крас..
Иконки рисуются красиво на светлых тонах. Но если выводить на тёмном фоне, на иконках появляются "зазубрины": Это можно как то исправить ? P.S. Пробовал ставить темные иконки - не проходит.... Хотя в меню такие иконки нормально выглядят...
|
|
|
|
| постоянный участник
|
Пост N: 7489
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.23 08:27. Заголовок: Собираю коллекцию по..
Собираю коллекцию показа ресурсов в ТСБ ! Не могу понять как можно загрузить bmp, png, jpg из внешней dll + с изменением размеров ? Т.е. картинки в dll могут быть любых размеров, а мне в ТСБ нужно выводить нужный размер, допустим 90х90. С иконками разобрался, их можно загружать в ТСБ любых размеров. Работа с ресурсами в ТСБ: #include "minigui.ch" #define LOAD_LIBRARY_AS_DATAFILE 0x00000002 ////////////////////////////////////////////////////////// .... oBrw:GetColumn( "FLD1" ):aCheck := { LoadImage( ".\RES\check1.bmp" ), LoadImage( ".\RES\check0.bmp" ) } oBrw:GetColumn( "FLD2" ):aCheck := { GETICONFROMRES( ".\RES\Edit32.ico" ), NIL } // файл иконки 32x32 oBrw:GetColumn( "FLD3" ):aCheck := { GETICONFROMRES( "iFolder32" ) , NIL } // ресурс иконки в ехе-файле 32x32 oBrw:GetColumn( "FLD4" ):aCheck := { myLoadIconByName( "iSave128", 48 ), NIL } // 48x48 - ресурс иконки 128x128 в ехе-файле oBrw:GetColumn( "FLD5" ):aCheck := { myLoadIconByName( ".\RES\Edit32.ico", 64 ), NIL } // файл иконки 32x32 увеличим 64x64 oBrw:GetColumn( "FLD6" ):aCheck := { myLoadLibraryEx("Image.Dll", "iExit", 90 ), NIL } // ресурс иконки в dll-файле любые размеры oBrw:GetColumn( "FLD7" ):aCheck := { LoadImage( ".\RES\Save32.png" ), NIL } oBrw:GetColumn( "FLD8" ):aCheck := { LoadImage( ".\RES\Mail32.jpg" ), NIL } oBrw:GetColumn( "FLD9" ):aCheck := { myLoadImageDll( "Image.Dll", "png_Mail", 64 ), NIL } oBrw:GetColumn( "FLD6" ):lBitMap := .T. oBrw:GetColumn( "FLD6" ):aBitMaps := { LoadImage( ".\RES\edit_delete.bmp" ), ; LoadImage( ".\RES\edit_cancel.bmp" ), ....... } ..... FUNCTION myLoadIconByName( cIcon, nWH) LOCAL hIcon, hBmp hIcon := myLoadIconByName( cIcon, nWH, nWH ) hBmp := BmpFromIcon( hIcon ) DestroyIcon(hIcon) RETURN hBmp FUNCTION myLoadLibraryEx( cIconDll, cIcon, nWH ) LOCAL hIcon, hLib, hIconFromDll, hBmp := 0 If !File( cIconDll ) MsgStop("There is no resource file for the program!" + CRLF + cIconDll ) Return hBmp Endif hLib := LoadLibraryEx( cIconDll, 0, LOAD_LIBRARY_AS_DATAFILE ) if ! Empty( hLib ) hIconFromDll := LoadIconByName( cIcon, nWH, nWH, hLib ) if ! Empty( hIconFromDll ) hIcon := CopyIcon( hIconFromDll ) hBmp := BmpFromIcon( hIcon ) DestroyIcon( hIconFromDll ) DestroyIcon( hIcon ) endif FreeLibrary( hLib ) endif RETURN hBmp Замечания по коду приветствуются. Если хендл не получился, возвращаю 0, может и неправильно, но зато потом можно убить сразу все хендлы: ON RELEASE {|| AEval(ahBmp, {|h| DestroyIcon( h ) }) } Как можно сделать функцию - myLoadImageDll( "Image.Dll", "png_Mail", 64 ) ? где "png_Mail" - имя ресурса, 64 - нужный размер показа
|
|
|
|
| постоянный участник
|
Пост N: 7570
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.09.23 17:18. Заголовок: В новой версии МиниГ..
В новой версии МиниГуи 23.09 (Update 2) сделать просмотр dbf-файла просто. Минимальный код для открытия базы: #include "minigui.ch" REQUEST DBFCDX, DBFFPT FUNCTION Main() LOCAL cDbf := GetStartUpFolder() + '\test_Engl.dbf' RddSetDefault("DBFCDX") SET FONT TO "DejaVu Sans Mono", 13 USE (cDbf) NEW EXCLUSIVE TsbViewer() RETURN NIL // добавить при сборке библиотеку TsbViewer.lib Внешний вид окна:
|
|
|
|
| |
Пост N: 7824
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.09.23 17:45. Заголовок: Andrey пишет: В нов..
Andrey пишет: цитата: | В новой версии МиниГуи 23.09 (Update 2) сделать просмотр dbf-файла просто. |
| Да мы в курсе , читаем ChangeLog.txt PS C:\MiniGUI\SAMPLES\Advanced\Tsb_Viewer\demo5.prg
|
|
|
|
| |
Пост N: 7825
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.09.23 17:48. Заголовок: Правда есть ньюанс п..
Правда есть ньюанс при запуске
|
|
|
Ответов - 192
, стр:
1
2
3
4
5
6
7
8
9
10
All
[только новые]
|
|