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

Петр: Haz пишет: Это все не системно. Может открыть тему Проблема TS - варианты - решение. Как-то я не могу правильно сформулировать свое отношение к предложению. Ну во-первых, скажу честно, tsbrowse я не использую. Поэтому о проблемах TS могу прочитать только на форуме. Т.е. допустим смотрю в код - да, возможно я бы не так написал, но ведь работает.. Или, допустим вопрос поднятый Димой, он вообще-то не к TS относился, за использование ресурсов GUI приложением отвечает разработчик. Во-вторых, вроде никто и не запрещает и сейчас открывать темы - но как-то не задалось, наверное. И так что-бы кто-то внятно описал проблему да еще привел пример - нет не видел

Петр: ММК пишет: С учетом того , что все другие бровсы работают нормально есть смысл посмотреть их и сравнить с TS. Это не о MiniGUI, все остальные бровсы построены на LISTVIEW и обладают ограниченой функциональностью в сравнении с TS или другими словами в MiniGUI есть над чем поработать ММК пишет: Менется , если убирать утечки памяти , хотя возникает она и без использования иконок. Утечка памяти это не абстрактное понятие, все утечки (памяти, USER - GDI object) можно как-то выявить и попытаться локализировать. ММК пишет: Ведь если оставлять этот бровс , то в него еще придется много чего добавлять Опять же, мне кажется, что это не про MiniGUI, на текущем этапе развития TS нет чем заменить.

ММК: Петр пишет:  цитата: С учетом того , что все другие бровсы работают нормально есть смысл посмотреть их и сравнить с TS. Это не о MiniGUI, все остальные бровсы построены на LISTVIEW и обладают ограниченой функциональностью в сравнении с TS или другими словами в MiniGUI есть над чем поработать TS был написан лет десять назад для FW. Мануэль Меркадо красиво написал, выложил все исходники , но довести уже не хватило здоровья ( в прямом смысле ). В FW это не единственный бровс поэтому есть с чем сравнивать и ,наверное, есть смысл т.к. эта проблема сохранилась с тех времен. Петр пишет: Утечка памяти это не абстрактное понятие, все утечки (памяти, USER - GDI object) можно как-то выявить и попытаться локализировать. Конечно. Здесь все понятно. Это просто моя неудачная попытка донести свое мнение :) Что проблема связана не с утечкой и не с временной задержкой. Петр пишет: Опять же, мне кажется, что это не про MiniGUI, на текущем этапе развития TS нет чем заменить. :)


Andrey: Всем привет ! Как отцентровать шапку таблицы ? Для ячеек таблицы нашёл как сделать: [pre2] oBrw1:aColumns[5]:nAlign := nMakeLong( DT_CENTER, DT_CENTER ) oBrw1:aColumns[5]:nHAlign := nMakeLong( DT_CENTER, DT_CENTER ) [/pre2]

Dima: Andrey пишет: oBrw1:aColumns[5]:nHAlign := nMakeLong( DT_CENTER, DT_CENTER ) сам и ответил

Andrey: Dima пишет: сам и ответил Не центрует в шапке таблицы картинку ! Может по другому надо ?

Dima: у меня примерно так и вроде ж по центру. oBrw3:GetColumn("prm"):uBmpHead :=abmp3h[2] oBrw3:GetColumn("prm"):cHeading :="" oBrw3:SetColSize("prm", 25 ) oBrw3:GetColumn("prm"):nhAlign :=nMakeLong( DT_CENTER, DT_CENTER )

Andrey: Dima пишет: у меня примерно так и вроде ж по центру. Попробуй 3 штуки (картинки) подряд вывести в заголовок таблицы. Как получиться ? У меня 1-я картинка центрируется, остальные нет.

Dima: Andrey пишет: У меня 1-я картинка центрируется, остальные нет что то не так закодил Пример для одной колонки [pre2] oBrw3:GetColumn( "dels" ):uBmpCell :={|| if( (oBrw3:calias)->dels,abmp3[1],NIL) } oBrw3:GetColumn( "dels" ):lCheckBox := FALSE oBrw3:GetColumn( "dels" ):nAlign :=nMakeLong( DT_CENTER, DT_CENTER ) oBrw3:GetColumn( "dels" ):bdata:={||""} oBrw3:GetColumn("dels"):uBmpHead :=abmp3h[1] oBrw3:GetColumn("dels"):cHeading :="" oBrw3:SetColSize("dels", 25 ) // пробовал 125 - центрует норм oBrw3:GetColumn("dels"):nhAlign :=nMakeLong( DT_CENTER, DT_CENTER ) [/pre2] В бровсе у меня 2 колонки у которых в Header живет BMP , все по центру. Возможно сама BMP у тебя "широкая"

Andrey: Dima пишет: Возможно сама BMP у тебя "широкая" Да нет - все одинаковые 28 пикселей. У меня 4 колонки с картинками. В ячейках нормально центрируются, в шапке таблицы 2 центрируются, 2 нет. Поменял местами и ГЛЮК вылез опять - центрирование в шапке работает только на 2 колонки ! Попробуй у себя добавить (сделать дубль) ещё 2х колонок с картинками....

Dima: Дай полный код 2 и 4 колонки

Andrey: Вот код, обработка полей в цикле: [pre2] FOR nI := 1 TO LEN(aPole) nJ++ ADD COLUMN TO TBROWSE oBrw1 // добавить новую колонку в TBROWSE ........ oBrw1:aColumns[nJ]:lEdit := .T. ........ If cTypeField == "L" // для полей Logic oBrw1:aColumns[nJ]:cHeading := "" // заголовок колонки обнулить oBrw1:SetColSize( nJ, 48 ) // ширина колонкм oCol := oBrw1:aColumns[nJ] oCol:lCheckBox := .T. // virtual checkbox oCol:nEditMove := 0 oCol:cPicture := "" // шаблон колонки убрать oCol:cDataType := "L" // !!! IF cField == "MARK" oCol:uBmpCell := {|| IF( (ALIAS())->MARK, LoadImage("tbCheckT28"), ) } oCol:uBmpHead := {|| LoadImage( "tbCheckF28" ) } // картинка шапки таблицы oCol:aBitMaps := { LoadImage("tbCheckT28") } ELSEIF cField == "PRINT" oCol:uBmpCell := {|| IF( (ALIAS())->PRINT, LoadImage( "TBPRINT32" ), ) } oCol:uBmpHead := {|| LoadImage( "tbPrint32" ) } // картинка шапки таблицы oCol:aBitMaps := { LoadImage("TBPRINT32") } ELSEIF cField == "MAIL1" oCol:uBmpCell := {|| IF( (ALIAS())->MAIL1, LoadImage( "tbMail32" ), ) } oCol:uBmpHead := {|| LoadImage( "tbMail32" ) } // картинка шапки таблицы oCol:aBitMaps := { LoadImage( "tbMail32" ) } ELSEIF cField == "MAIL2" oCol:uBmpCell := {|| IF( (ALIAS())->MAIL2, LoadImage( "tbMail32R" ), ) } // картинка в ячейке oCol:uBmpHead := {|| LoadImage( "tbMail32R" ) } // картинка шапки таблицы oCol:aBitMaps := { LoadImage( "tbMail32R" ) } ENDIF oCol:bData := {||Nil} oCol:cData := '{||Nil}' oCol:nAlign := nMakeLong( DT_CENTER, DT_CENTER ) oCol:nHAlign := nMakeLong( DT_CENTER, DT_CENTER ) // обработка до ввода // обработка после ввода Else ......... NEXT [/pre2]

Dima: Andrey пишет: oCol:uBmpHead := {|| LoadImage( "tbMail32" ) } // картинка шапки таблицы oCol:aBitMaps := { LoadImage( "tbMail32" ) } А вот при таком подходе у тебя будет утечка памяти и уже в этой теме обсуждали. Сделай не в цикле , что то там не стыкуется. Ты ведь в начале писал что центруется правильно только второй Header , остальные нет. По факту правильно отцентрованы 2 и 3 Header

Andrey: Dima пишет: Сделай не в цикле , что то там не стыкуется. Поля все в настройках, без цикла сделать не возможно.... Dima пишет: По факту правильно отцентрованы 2 и 3 Header На картинках же видно 3 и 4 Header не отцентрованы !

Dima: Andrey пишет: nJ++ ADD COLUMN TO TBROWSE oBrw1 // добавить новую колонку в TBROWSE ........ oBrw1:aColumns[nJ]:lEdit := .T. Перенеси это код после Andrey пишет: If cTypeField == "L" // для полей Logic + после ELSE скопируй Весь код не видно ........я не телепат

Andrey: Dima пишет: Весь код не видно ........я не телепат Код как в Tsb_config.

Dima: Andrey Сколько ты там сутки уже справиться не можешь ? Смейся дальше... Сделай простой пример без цикла и убедись что Header с BMP нормально центруется.

Andrey: Dima пишет: Сделай простой пример без цикла и убедись что Header с BMP нормально центруется. Этот пример уже сделал. Центрируется нормально. В цикле не центрируется... Пока бросил с этим разбираться, другая работа появилась.

Dima: Andrey пишет: Этот пример уже сделал. Центрируется нормально. В цикле не центрируется...

i3t4j6: Добрый день! Начиная с декабрьской версии стала появляться такая ошибка: Error BASE/5001 MiniGUI Error: SENDMESSAGE Called from SENDMESSAGE(0) Called from TSBROWSE:RESIZE(9982) Called from TCONTROL:HANDLEEVENT(923) ... Ошибка появляется при вводе новой записи в стандартном TsBrowse. Если забить строку 9982, то ошибка не появляется



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