Форум » GUI » [?] Простой вопрос » Ответить

[?] Простой вопрос

Dima: Есть главное окно программы , в нем живут несколько CHILD окон (не MDI). В процедуре ON INTERACTIVECLOSE главного окна есть блок кода , если он вернет TRUE тогда закроется главное окно и программа завершится. А вот если блок кода вернул FALSE , то как вернуть фокус ввода на окно на котором был фокус ввода до нажатия крестика главного окна ?

Ответов - 148, стр: 1 2 3 4 5 6 7 8 All

Haz: Dima пишет: Не работает однако работает с работы скину рабочий пример

Dima: Haz пишет: с работы скину рабочий пример OK Тут дело такое или его отключить что не вышло или его починить что бы не глючил с базой ADS Глюк выглядит так (если потаскать за верт. скролл)

Haz: Haz пишет: работает с работы скину рабочий пример Найди вертикальный скрол Записей в бровсе 1000 http://shot.qip.ru/00Qz9C-610KPoqqQy/ кусок кода из Tsb_Cursor [pre2] DEFINE TBROWSE oBrw AT 17, 0 ; OF Form_0 ; WIDTH Form_0.WIDTH - 2 * GetBorderWidth() ; HEIGHT Form_0.HEIGHT - GetTitleHeight() - GetTitleHeight() - ; GetProperty( "Form_0", "StatusBar", "Height" ) - 2 * GetBorderHeight() ; GRID ; SELECTOR TRUE; FONT "Arial" SIZE 12 oBrw:lNoVScroll := TRUE oBrw:oVScroll := NIL oBrw:SetArray( aDatos, .T. ) [/pre2]

Dima: Haz пишет: Найди вертикальный скрол Попробуй его не найти если бровс по базе На массиве он да убивается.

Haz: Dima пишет: Попробуй его не найти если бровс по базе попробовал oBrw:bChange := {|| oBrw:oVScroll:SetRange( 0, 0 ) } не нашел

Dima: Haz пишет: oBrw:bChange := {|| oBrw:oVScroll:SetRange( 0, 0 ) } Точно , ты писал в феврале про это тут http://clipper.borda.ru/?1-1-0-00000457-000-10001-0-1467579659 Странно что Андрей мучался

Dima: TS бровс , футер имеет 5 строк. Хотелось бы его раскрасить нежным цветом по условию , но он ловит только то что ему покормили в :cFooting. К базе он не привязан , пока не представляю как это сделать. Есть у кого идеи как это сделать в Setcolor ({ 9 ,10}.....)?

Haz: Dima пишет: Есть у кого идеи как это сделать в Setcolor ({ 9 ,10}.....)? как и ячейки не катит ? т.е. вместо массива цветов - блок кода который по условию дает нужный массив

SergKis: Dima пишет: Есть у кого идеи как это сделать в Setcolor ({ 9 ,10}.....)? [pre2] For i := 1 To len(oBrw:aColumns) oCol := oBrw:aColumns[ i ] oCol::nClrFootBack := {|nCol,oBr| MyFootBack(nCol, oBr) } oCol::nClrFootFore := {|nCol,oBr| MyFootFore(nCol, oBr) } Next ... Static Function MyFootBack( nCol, oBrw ) Local oCol := oBrw:nCol, nClr := CLR_YELLOW // или RGB( 255, 255, 0 ) If oCol:cName == "ID" nClr := CLR_RED ElseIf oCol:cName == "NAME" nClr := CLR_HMAGENTA ... EndIf Return nClr Static Function MyFootFore( nCol, oBrw ) Local oCol := oBrw:nCol, nClr := CLR_YELLOW // или RGB( 255, 255, 0 ) If oCol:cName == "ID" nClr := CLR_HBLUE ElseIf oCol:cName == "NAME" nClr := CLR_BLACK ... EndIf Return nClr [/pre2] как то так

SergKis: PS вместо Local oCol := oBrw:nCol надо Local oCol := oBrw:aColumns[nCol]

SergKis: PS 2 для градиентной заливки возвращать можно nClr := { CLR_..., CLR_...} или блоки кода nClr := { {|nCol,oBr| RGB(...)}, {|nCol,oBr| RGB(...)} } для хранения цветов и др. инф. для работы с блоками колонок хорошо исп. oCol:Cargo oBrw:GetColumn("ID"):Cargo := { CLR_YELOW, CLR_BLUE, CLR_GREEN,...} и в функциях значения брать из oCol:Cargo

Dima: SergKis Haz Я наверное не корректно поставил вопрос Говорю о раскраске псевдо строк футера , ведь по определению он однострочный. Но добавив нужное кол-во CRLF можно сделать вид что он многострочный. То что можно столбцы по условию покрасить это понятно. Вот такой футер к примеру

SergKis: Dima Раскрасить можно ВСЕ строки футера в один цвет. для разноцветных строк можно пробнуть другой Tsb без header, footer, связав его с размерами и событиями изм. размеров. Если правильно прнял твою хотелку

Dima: SergKis Понял.

SergKis: Dima Возможно проще сделать по клику на футер (с сокращенным кол-вом строк) на раскрытие др. Tsb расшифровки этих данных, т.к. упр. футером на Tsb с 2мя HScroll-ами и изм. рамеров может оказаться затрудненным

Dima: SergKis Кстати да вариант , по клику или наведению на него мыши , хотя с наведением наверное не получится , TS не умеет такого.

SergKis: Dima Можно еще пробнуть Label-на футоре, с цветами и при oBrw:DrawFooter() перепоказывать их, но ... это пробовать (как бы label под футером tsb не оказался)

SergKis: Dima пишет хотя с наведением наверное не получится , TS не умеет такого. см. блок кода на ToolTip (мышой на футер) - может что получится

Dima: SergKis пишет: см. блок кода на ToolTip Ты наверное про cToolTip Он ведь долго не живет , показался на время и пропал

SergKis: Dima Да. Но проверить, что нет контрола\окна можно и при отсутсвии послать сообщение, к примеру, на FK_F25 вполне можно



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