Автор | Сообщение |
|
| постоянный участник
|
Пост 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: 3933
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.11.21 01:29. Заголовок: Andrey пишет Есть та..
Andrey пишет Берешь запускаешь hbedit.exe h_tbrowse.prg, делаешь Alt+L, в полученном списке набираешь что хочешь найти, к примеру, "draw" и смотришь содержимое найденных ф-й. Начни смотреть DrawHeaders() и другие. Потратишь несколько минут
|
|
|
|
| постоянный участник
|
Пост N: 7115
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.11.21 16:42. Заголовок: Пробовал в шапке/под..
Пробовал в шапке/подвале разные картинки: bmp, png - очень некрасиво получаются: Если шапку/подвал делать белым или серым, без градиента, то более менее нормально. В нумераторе bmp красиво выглядит. Вопрос: можно ли как то сделать, чтобы картинки не делались цветом фона (убрать цвет фона), т.е. ключ какой то прикрутить, типа: oBrw:lImgBackcolor := .T. / .F. Или это можно уже сейчас делать, а я и не знаю ?
|
|
|
|
| |
Пост N: 1797
Зарегистрирован: 20.02.11
|
|
Отправлено: 09.11.21 17:07. Заголовок: Andrey пишет: Или э..
Andrey пишет: цитата: | Или это можно уже сейчас делать, а я и не знаю ? |
| Можно , в си модуле поиграть с маской вывода.
|
|
|
|
| постоянный участник
|
Пост N: 7116
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.11.21 17:38. Заголовок: Haz пишет: Можно , ..
Haz пишет: цитата: | Можно , в си модуле поиграть с маской вывода. |
| Хоть напиши где этот модуль... А как протащить свой переключатель ?
|
|
|
|
| |
Пост N: 1798
Зарегистрирован: 20.02.11
|
|
Отправлено: 09.11.21 19:15. Заголовок: Andrey пишет: Хоть ..
Andrey пишет: цитата: | Хоть напиши где этот модуль... |
|
единственный с мидуль в исходниках tsb, функция вроде tsdrawcell . в ней штук 5 вызовов вставки картинки , используется константа SCRAND . Можно поставить SCRCOPY и прозрачность фона и картинки уйдет . Вставь этот модуль на си целиком в свой проект через #pragma и меняй как хочешь. Ps.что означают эти константы в справке микрософт есть.
|
|
|
|
| |
Пост N: 1799
Зарегистрирован: 20.02.11
|
|
Отправлено: 09.11.21 19:21. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как протащить свой переключатель ? |
|
править си и prg исходники. Сейчас не могу , перегруз
|
|
|
|
| постоянный участник
|
Пост N: 7117
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.11.21 22:22. Заголовок: Haz пишет: Вставь э..
Haz пишет: цитата: | Вставь этот модуль на си целиком в свой проект через #pragma и меняй как хочешь. |
| Для себя поставить один раз, да можно. Но хотелось бы нормального решения. C:\borland\BCC55\Include\wingdi.h /* Ternary raster operations */ #define SRCCOPY (DWORD)0x00CC0020 /* dest = source */ #define SRCPAINT (DWORD)0x00EE0086 /* dest = source OR dest */ #define SRCAND (DWORD)0x008800C6 /* dest = source AND dest */ #define SRCINVERT (DWORD)0x00660046 /* dest = source XOR dest */ #define SRCERASE (DWORD)0x00440328 /* dest = source AND (NOT dest ) */ #define NOTSRCCOPY (DWORD)0x00330008 /* dest = (NOT source) */ #define NOTSRCERASE (DWORD)0x001100A6 /* dest = (NOT src) AND (NOT dest) */ #define MERGECOPY (DWORD)0x00C000CA /* dest = (source AND pattern) */ C:\MiniGUI\SOURCE\TsBrowse\c_TBrowse.c HB_FUNC( TSDRAWCELL ) { HWND hWnd = ( HWND ) HB_PARNL( 1 ); HDC hDC = ( HDC ) HB_PARNL( 2 ); int nRow = hb_parni( 3 ); int nColumn = hb_parni( 4 ); int nWidth = hb_parni( 5 ); .... DrawBitmap( hDC, hBitMap, nTop, nLeft, 0, 0, bSelec ? 0 : SRCAND );
|
|
|
|
| постоянный участник
|
Пост N: 7118
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.11.21 22:35. Заголовок: Поставил целиком исп..
Поставил целиком исправленный c_TBrowse.c в проект Вот что получилось: Спасибо БОЛЬШОЕ Haz
|
|
|
|
| постоянный участник
|
Пост N: 3935
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.11.21 22:57. Заголовок: Andrey пишет Постави..
Andrey пишет цитата: | Поставил целиком исправленный c_TBrowse.c в проект |
| Если не изменяет память, давно, в какой то версии, уже была замена с SRCCOPY на SRCAND
|
|
|
|
| постоянный участник
|
Пост N: 7119
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.11.21 23:13. Заголовок: А вот про это я тоже..
А вот про это я тоже забыл. Некрасиво выглядит картинка в ячейках: Тогда нужно два переключателя, для шапки/подвала/суперхидера/номератора и для ячеек. oBrw:lImgNoCellTransparency := .T. / .F. oBrw:lImgCellTransparency := .T. / .F.
|
|
|
|
| |
Пост N: 1800
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.21 08:44. Заголовок: SergKis пишет: Если..
SergKis пишет: цитата: | Если не изменяет память, давно, в какой то версии, |
| Да , несколько лет назад была именно по причине непрозрачного вывода. На тот момент замена немного сгладила вывод, потом появилась поддержка PNG с прозрачным фоном, может еще что то менялось. На моей памяти этот модуль менялся всего 2 раза, это изменение в скролле с целью убрать лишние прорисовку и эта маска с целью хоть как то получить прозрачность. В большинстве случаев отображение корректное, но бывает маску вывода нужно менять. Это единственное место где идет вывод графики в ячейку и параметр маски туда не передается. Если это требуется, просто включаю этот си модуль в проект и подбираю локально нужное значение. По хорошему эту маску нужно передавать параметром с установкой нужного значения по умолчанию, но подгрузить си модуль проще
|
|
|
|
|
| |
Пост N: 1801
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.21 08:56. Заголовок: Andrey пишет: Тогда..
Andrey пишет: цитата: | Тогда нужно два переключателя, для шапки/подвала/суперхидера/номератора и для ячеек. oBrw:lImgNoCellTransparency := .T. / .F. oBrw:lImgCellTransparency := .T. / .F. |
| Не нужны переключатели, нужно явное задание маски примерно так oCol:nCellBitmapMask := SCRAND и пр.
|
|
|
|
| постоянный участник
|
Пост N: 3936
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.11.21 13:38. Заголовок: Haz пишет нужно явно..
Haz пишет цитата: | нужно явное задание маски примерно так oCol:nCellBitmapMask := ... |
| В HB_FUNC( TSDRAWCELL ) свободен 27 параметр или добавить 33-й //HBRUSH wBrush = ( HBRUSH ) HB_PARNL( 27 ); BOOL b3DInv = ( HB_ISNIL( 28 ) ? FALSE : ! hb_parl( 28 ) ); BOOL b3D = ( HB_ISNIL( 28 ) ? FALSE : TRUE ); COLORREF nClr3DL = hb_parnl( 29 ); COLORREF nClr3DS = hb_parnl( 30 ); long lCursor = hb_parnl( 31 ); BOOL bSelec = ( HB_ISNIL( 32 ) ? FALSE : hb_parl( 32 ) ); а для колонок надо маску для каждого элемента определять oCol:nCellBmpMask oCol:nHeadBmpMask oCol:nFootBmpMask oCol:nSpcHdBmpMask AAdd( ::aSuperHead, { nFromCol, nToCol, uHead, nClrText, nClrBack, l3dLook, hFont, uBitMap, lAdjust, nLineStyle, ; nClrLine, nHAlign, nVAlign, lTransp , nSupHdBmpMask } ) //Super Header Вместо Bmp слово Image использовать в имени (Bmp короче) PS Есть еще void DrawMasked( HDC hDC, HBITMAP hbm, int wRow, int wCol ) с масками, с ней как ? PS2 Значение маски может задаваться блоком кода ?
|
|
|
|
| постоянный участник
|
Пост N: 7120
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.11.21 15:41. Заголовок: SergKis пишет: а дл..
SergKis пишет: цитата: | а для колонок надо маску для каждого элемента определять |
| Отличная идея !
|
|
|
|
| |
Пост N: 1802
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.21 20:47. Заголовок: SergKis пишет: В HB..
SergKis пишет: цитата: | В HB_FUNC( TSDRAWCELL ) свободен 27 параметр или добавить 33-й |
|
думаю лучше добавить 33. Новая сущность , новый параметр
|
|
|
|
| |
Пост N: 1803
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.21 20:49. Заголовок: SergKis пишет: а д..
SergKis пишет: цитата: | а для колонок надо маску для каждого элемента определять oCol:nCellBmpMask oCol:nHeadBmpMask oCol:nFootBmpMask oCol:nSpcHdBmpMask |
| Вот поэтому мне проще было си модуль прицепить
|
|
|
|
| постоянный участник
|
Пост N: 3938
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.11.21 21:30. Заголовок: Вот поэтому мне прощ..
цитата: | Вот поэтому мне проще было си модуль прицепить |
| Понимаю, но вроде и описанные элементы, 33-ий параметр и немного добавить в методах :Draw...() для опр. 33-го параметра. В целом немного. Скажи что в С модуле менял, я туда не лазил
|
|
|
|
| |
Пост N: 1804
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.21 21:43. Заголовок: SergKis пишет: Скаж..
SergKis пишет: цитата: | Скажи что в С модуле менял, я туда не лазил |
| else { if( bAdjBmp ) { DrawBitmap( hDC, hBitMap, rct.top, rct.left - 2, rct.right - rct.left + 3, rct.bottom - rct.top - 1, bSelec ? 0 : SRCAND ); hBitMap = 0; if( ! bOpaque ) MaskRegion( hDC, &rct, GetPixel( hDC, nLeft, nTop ), GetBkColor( hDC ) ); } else if( bOpaque ) DrawBitmap( hDC, hBitMap, nTop, nLeft, 0, 0, bSelec ? 0 : SRCAND ); // вот это отвечает за вывод uBmpCell в ячейке else DrawMasked( hDC, hBitMap, nTop, nLeft ); } }
|
|
|
|
| постоянный участник
|
Пост N: 3939
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.11.21 21:49. Заголовок: Игорь А это место (и..
Игорь А это место (из текста выше) как ? DrawBitmap( hDC, hBitMap, rct.top, rct.left - 2, rct.right - rct.left + 3, rct.bottom - rct.top - 1, bSelec ? 0 : SRCAND );
|
|
|
|
| |
Пост N: 1805
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.21 22:05. Заголовок: SergKis пишет: А эт..
SergKis пишет: цитата: | А это место (из текста выше) как ? |
| да просто ставил нужную маску вместо SRCAND и собирал проект. Если менять системно, то надо вводить 33 параметр в эту функцию int nMask = hb_parni( 33 ); и примерно DrawBitmap( hDC, hBitMap, rct.top, rct.left - 2, rct.right - rct.left + 3, rct.bottom - rct.top - 1, bSelec ? 0 : nMask ); В си тоже не особо силен, и по этой причине не стал делать тоже
|
|
|
Ответов - 192
, стр:
1
2
3
4
5
6
7
8
9
10
All
[только новые]
|
|