Форум » 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

Dima: SergKis Понял !

Dima: Не очень понял как цеплять к ячейке BMP[ICO] из ресурса по условию. Может кто покажет простой пример или намек ?

Andrey: Допустим в базе есть поле Field->NEVENT (1,2,3,4,...) и по условию нужно показывать разные иконки. Можно так: ////////////////////////////////////////////////////////////// // Выбор отображаемой иконки FUNCTION SetNumIcons() LOCAL RetBmp, mNEVENT := Field->NEVENT, ii ,RetIcon STATIC arrBmp:={},arrNameBmp:={} DO CASE CASE NEVENT = 0 RetIcon:="bEVENT0" CASE NEVENT = 1 RetIcon:="bEVENT1" CASE NEVENT = 2 RetIcon:="bEVENT2" CASE NEVENT = 3 RetIcon:="bEVENT3" OTHERWISE RetIcon:="bEVENT0" ENDCASE ii:=ascan(arrNameBmp,Reticon) if ii>0 RetBmp:=arrBmp[ii] else RetBmp:= LOADIMAGE(RetIcon) if !empty(RetBmp) aadd(arrBmp,RetBmp) aadd(arrNameBmp,RetIcon) endif endif RETURN RetBmp Тогда в бровсе назначай поле показа на 4 поле: // "Массив иконок bmp" aBmp := {,,,"SetNumIcons()"} IF LEN(aBmp) > 0 For ii:=1 to Len(aBmp) if !Empty(aBmp[ii]) &cBrw:aColumns[ii]:uBmpCell := &("{||"+aBmp[ii]+"}") &cBrw:aColumns[ii]:nAlign := nMakeLong( DT_CENTER, DT_CENTER ) endif Next ENDIF Но у меня пример уж очень мудрённый, через ини-файл считывание полей, обработки и т.д. Посмотри сам - https://cloud.mail.ru/public/Qimr/KjE9KUhcN


Dima: Andrey Сенкс. Надо было сразу суть объяснить (это 3 строки ) , ну да ладно сам понял.

Dima: Подсунул прозрачный BMP и вывел в колонке , упс а у него есть свой фон. Если ту же BMP вывести на кнопке , все нормально. Как избавится от фона в бровсе для BMP ?

Haz: Andrey пишет: Но у меня пример уж очень мудрённый, и более того , в процедуре по ON CHANGE есть вызов Refresh() , что 100% приводит к зависаниюбровса стоит его прогнать стрелками вниз/вверх

SergKis: Dima Haz пишет: по ON CHANGE есть вызов Refresh() , что 100% приводит к зависаниюбровса стоит его прогнать стрелками вниз/вверх Мой (твой) пример Refresh(.F.) к зависанию не приводит, но по pgup или up ниже последней и назад - ломается веделенная закраска всей строки с фокусно ячейкой. Как то похитрее надо делать, может быть мтодом DrawLine(xRow) с цветами на пред.стоку и тек., без бутылки сразу не разберешься

Dima: Помогите с BMP разобраться О первой колонке с галей говорю. На скрине прозрачный фон (игрался с черным и белым) , все до лампочки

Haz: SergKis пишет: Мой (твой) пример Refresh(.F.) к зависанию не приводит Сергей, это пример с двойным курсором ? Сделайте в нем строк поболее ( я тупо нагенерил 1000 ) и нажав стрелку вниз НЕ отпуская до конца , потом так же вверх и глюк как на блюдечке Если отпускать стрелку вовремя - не проявляется. Двойной курсор как оказалось - очень просто делается , у меня на работе пример , в понедельник кину Или лучше Дима может сейчас кинуть. Dima пишет: О первой колонке с галей говорю. если разговор только про галю , то тут БМП не нужна т.к есть стандартная галя по логическому полю oBrw:aColumns[x]:lCheckBox := .T. ЗЫ. с фоном БМП уже пытался разобраться - не вышло , бросил (((

Dima: Haz Не , галя не подходит. Нужна BMP. Подумал было что вот это ,что то изменит , но нет. oBrw:lTransparent:=TRUE Понятно что можно фон сделать который надо , но гиморно больно. Для каждого фона для одного и того же BMP , держать кучку клонов Оно как бы можно сырец ковырнуть и посмотреть что там происходит , но сходу правильное место не нашел. Похоже все рисуется в Сишнике в процедуре TSDrawCell Haz пишет: Двойной курсор как оказалось - очень просто делается , у меня на работе пример , в понедельник кину Или лучше Дима может сейчас кинуть. Да если надо выложу.

SergKis: Dima пишет:Да если надо выложу Выложи. Пока TsBrowse отложил, но VO прогу переделывать придется, так что лучше сразу, потом сложнее будет.

SergKis: Haz пишет:Сделайте в нем строк поболее так сделал и увидел

Dima: SergKis пишет: Выложи. Колонкам делаем экзекуцию [pre2] for i := 1 To oBrw:nColCount() oBrw:aColumns[ i ]:lFixLite := TRUE next [/pre2] Красим так примерно (на вкус и цвет товарищей нет ) [pre2] oBrw:SetColor( { 6 }, { { |a,b,c| IF( c:nCell == b,{ RGB(198, 226, 255), RGB(0,196,196) },; { Rgb( 198, 226, 255 ), Rgb( 159, 207, 255 ) }) } } ) [/pre2]

SergKis: Да, работает. Спасибо. Видел в TSBrowse.chm DBLCURSOR DOUBLE CURSOR FIXED Activates the double cursor feature on the freezed columns. Но догадаться, для чего это Активизирует функцию двойного курсора на отмороженных колонок Google translit(c)

Dima: В общем нашел я место где происходит вывод картинок Это c_TBrowse.c Функция void DrawBitmap ( HDC hDC, HBITMAP hBitmap, int wRow, int wCol, int wWidth, int wHeight, DWORD dwRaster ) Есть там переменная dwRaster = SRCCOPY; Заменил ее на , с фоном порядочек , но цвет изображения инвертированный получился , по жизни он зеленый (галя на скрине выше) а вышла фиолетовая dwRaster = SRCINVERT; Скрин ;) У кого есть мысли ?

Haz: Dima пишет: У кого есть мысли а с этим пробовал SRCAND ?

Dima: Haz пишет: а с этим пробовал SRCAND ? конечно , результат черный фон. пробовал даже комбинации ........

Dima: Игорь это у меня такой кривой Axialis IconWorkshop оказывается. Пишет что прозрачный фон у картинки а на самом деле нет. Взял чужую картинку с прозрачным фоном , все отлично. Посему сделать в сырце нужно вот так dwRaster = SRCAND;

Haz: Dima пишет: Посему сделать в сырце нужно вот так dwRaster = SRCAND; Погоняю завтра на работе ...

Dima: я уже погонял. короче , фон BMP надо делать белый а не прозрачный. интересно что у тебя получится. вот с белым фоном PS Вот 2 BMP для теста Один с прозрачным фоном , другой с белым https://cloud.mail.ru/public/DMPk/TVHRgFZy6 https://cloud.mail.ru/public/AW9h/4igB1QSbr



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