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


Пост 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 
ПрофильЦитата Ответить
Ответов - 180 , стр: 1 2 3 4 5 6 7 8 9 All [только новые]


постоянный участник




Пост N: 3933
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.11.21 01:29. Заголовок: Andrey пишет Есть та..


Andrey пишет
 цитата:
Есть такой метод ?


Берешь запускаешь hbedit.exe h_tbrowse.prg, делаешь Alt+L, в полученном списке набираешь что хочешь найти, к примеру, "draw" и смотришь содержимое найденных ф-й. Начни смотреть DrawHeaders() и другие.
Потратишь несколько минут

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




Пост N: 7115
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.11.21 16:42. Заголовок: Пробовал в шапке/под..


Пробовал в шапке/подвале разные картинки: bmp, png - очень некрасиво получаются:


Если шапку/подвал делать белым или серым, без градиента, то более менее нормально.
В нумераторе bmp красиво выглядит.

Вопрос: можно ли как то сделать, чтобы картинки не делались цветом фона (убрать цвет фона), т.е. ключ какой то прикрутить, типа:
oBrw:lImgBackcolor := .T. / .F.  

Или это можно уже сейчас делать, а я и не знаю ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1797
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.11.21 17:07. Заголовок: Andrey пишет: Или э..


Andrey пишет:

 цитата:
Или это можно уже сейчас делать, а я и не знаю ?


Можно , в си модуле поиграть с маской вывода.

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




Пост N: 7116
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.11.21 17:38. Заголовок: Haz пишет: Можно , ..


Haz пишет:

 цитата:
Можно , в си модуле поиграть с маской вывода.


Хоть напиши где этот модуль...
А как протащить свой переключатель ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1798
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.11.21 19:15. Заголовок: Andrey пишет: Хоть ..


Andrey пишет:

 цитата:
Хоть напиши где этот модуль...

единственный с мидуль в исходниках tsb, функция вроде tsdrawcell . в ней штук 5 вызовов вставки картинки , используется константа SCRAND .
Можно поставить SCRCOPY и прозрачность фона и картинки уйдет .
Вставь этот модуль на си целиком в свой проект через #pragma и меняй как хочешь.
Ps.что означают эти константы в справке микрософт есть.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1799
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.11.21 19:21. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как протащить свой переключатель ?

править си и prg исходники. Сейчас не могу , перегруз

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




Пост 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 );



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




Пост N: 7118
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.11.21 22:35. Заголовок: Поставил целиком исп..


Поставил целиком исправленный c_TBrowse.c в проект
Вот что получилось:


Спасибо БОЛЬШОЕ Haz

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




Пост N: 3935
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.11.21 22:57. Заголовок: Andrey пишет Постави..


Andrey пишет
 цитата:
Поставил целиком исправленный c_TBrowse.c в проект


Если не изменяет память, давно, в какой то версии, уже была замена с SRCCOPY на SRCAND

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




Пост N: 7119
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.11.21 23:13. Заголовок: А вот про это я тоже..


А вот про это я тоже забыл.
Некрасиво выглядит картинка в ячейках:


Тогда нужно два переключателя, для шапки/подвала/суперхидера/номератора и для ячеек.
oBrw:lImgNoCellTransparency := .T. / .F.  
oBrw:lImgCellTransparency := .T. / .F.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1800
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.21 08:44. Заголовок: SergKis пишет: Если..


SergKis пишет:

 цитата:
Если не изменяет память, давно, в какой то версии,


Да , несколько лет назад была именно по причине непрозрачного вывода. На тот момент замена немного сгладила вывод, потом появилась поддержка PNG с прозрачным фоном, может еще что то менялось. На моей памяти этот модуль менялся всего 2 раза, это изменение в скролле с целью убрать лишние прорисовку и эта маска с целью хоть как то получить прозрачность. В большинстве случаев отображение корректное, но бывает маску вывода нужно менять. Это единственное место где идет вывод графики в ячейку и параметр маски туда не передается. Если это требуется, просто включаю этот си модуль в проект и подбираю локально нужное значение. По хорошему эту маску нужно передавать параметром с установкой нужного значения по умолчанию, но подгрузить си модуль проще

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1801
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.21 08:56. Заголовок: Andrey пишет: Тогда..


Andrey пишет:

 цитата:
Тогда нужно два переключателя, для шапки/подвала/суперхидера/номератора и для ячеек.
oBrw:lImgNoCellTransparency := .T. / .F.
oBrw:lImgCellTransparency := .T. / .F.


Не нужны переключатели, нужно явное задание маски примерно так oCol:nCellBitmapMask := SCRAND и пр.

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




Пост 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
Значение маски может задаваться блоком кода ?

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




Пост N: 7120
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.11.21 15:41. Заголовок: SergKis пишет: а дл..


SergKis пишет:

 цитата:
а для колонок надо маску для каждого элемента определять


Отличная идея !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1802
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.21 20:47. Заголовок: SergKis пишет: В HB..


SergKis пишет:

 цитата:
В HB_FUNC( TSDRAWCELL ) свободен 27 параметр или добавить 33-й

думаю лучше добавить 33. Новая сущность , новый параметр

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1803
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 10.11.21 20:49. Заголовок: SergKis пишет: а д..


SergKis пишет:

 цитата:

а для колонок надо маску для каждого элемента определять
oCol:nCellBmpMask
oCol:nHeadBmpMask
oCol:nFootBmpMask
oCol:nSpcHdBmpMask


Вот поэтому мне проще было си модуль прицепить

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




Пост N: 3938
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.11.21 21:30. Заголовок: Вот поэтому мне прощ..



 цитата:
Вот поэтому мне проще было си модуль прицепить


Понимаю, но вроде и описанные элементы, 33-ий параметр и немного добавить в методах :Draw...() для опр. 33-го параметра. В целом немного. Скажи что в С модуле менял, я туда не лазил

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 );
}
}



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




Пост 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 );


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 );

В си тоже не особо силен, и по этой причине не стал делать тоже

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 180 , стр: 1 2 3 4 5 6 7 8 9 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 253
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет