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


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


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




Пост N: 4260
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.03.23 17:51. Заголовок: Haz пишет Ну как мет..


Haz пишет
 цитата:
Ну как метод сделать можно, черновик попробовал , мелькает меньше ( только на DrawSelect )


На DrawSelect не должна моргать, там же ничего нет, после всех DrawLine одна строка поверх с др. атрибутами цвета ... и все
"Дойдешь до кондиции" выложи на посмотреть

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




Пост N: 1925
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.03.23 19:01. Заголовок: SergKis пишет: На D..


SergKis пишет:

 цитата:
На DrawSelect не должна моргать


Должна, сначала рисуются все строки drawline а потом drawselect и эта прорисовка со стандарта на селект видна на плохой сети. Но это решаемо алгоритмом

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




Пост N: 1926
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.03.23 11:31. Заголовок: SergKis пишет: трет..


SergKis пишет:

 цитата:
третий вариант" это событие 55 (выше


Сделал контрольный, чуть косметики и выложу.
Это не совсем событие 55, там у тебя Refresh без очистки. Это значит , что при установке фильтра и не полном заполнении окна бровса, строки из фильтра перерисуются, а остальные остаются мусором на экране. В данном случае нужна очистка, но ее видно мельканием, т.к. сначала полностью очищается окно, а потом все рисуем заново
Чисто теоретически , при неполном заполнении окна бровса с очисткой работает быстрее ( меньше строк рисовать ) а с дорисовкой плавнее и плюс бонусом опционально сетка на незанятой область бровса ( любым цветом ).
Я сделал пример не с очисткой , а с дорисовкой всего окна бровса

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




Пост N: 4261
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.03.23 12:42. Заголовок: Haz пишет Это значит..


Haz пишет
 цитата:
Это значит , что при установке фильтра и не полном заполнении окна бровса,
строки из фильтра перерисуются, а остальные остаются мусором на экране.


Ты не понял, событие 55 может быть разным, простым, более сложным, Например такое
:Event(55, {|ow,ky,ob| DoEvents(), ky := ow, ob:Refresh(ob:nLen < ob:nRowCount(), .T.), DoEvents() })
то, что было ранее это из примера, где фиксированное кол-во строк в тсб, который служит для установки\снятия
галочек как в RedioGroup и вызывается в :bPostEdit, т.е. давая завершить работе методов :Edit... и прорисовкой тек.
строки и только потом сработает 55 событие, которое перерисует все строки, для показа состояния галочек др. строк.
PS
И если откл. внутреннее исп. :Refresh() (в :UpStable или др. варанты), то 55 событие позволяет мне управлять когда
перепоказывать окно тсб

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




Пост N: 1928
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.03.23 12:52. Заголовок: SergKis пишет: Ты н..


SergKis пишет:

 цитата:
Ты не понял, событие 55 может быть разным, простым, более сложным,


Да понял я, вопрос в том что есть два варианта рефреш. Первый не чистит мусор, второй моргает. А так да , согласен на 55 можно понаписать свой h_tbrowse целиком

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




Пост N: 4262
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.03.23 13:05. Заголовок: Haz пишет вопрос в т..


Haz пишет
 цитата:
вопрос в том что есть два варианта рефреш. Первый не чистит мусор, второй моргает


Написанный выше дает только один вариант, на все случаи и :nLen ставит и чистит когда надо, по мне вопроса тут нет.
То что моргает, так это уровень C, туда не лезем, т.к. DoubleBuffer не будет реализован. Т.е. что есть, то и используем

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




Пост N: 7350
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.04.23 12:00. Заголовок: Всем привет ! У меня..


Всем привет !
У меня есть иконки в ресурсах ехе-ника.
Можно организовать показ этих иконок в ТСБ ?
bmp как показывать знаю....

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




Пост N: 2121
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.04.23 17:03. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно организовать показ этих иконок в ТСБ ?


Да, можно

Выложил рабочий пример по адресу
click here

Он сделан на базе примера MiniGUI\SAMPLES\Advanced\Tsb_BitMaps

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




Пост N: 7351
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.04.23 17:30. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Выложил рабочий пример по адресу


Спасибо БОЛЬШОЕ !
И в своей библиотеке подправь этот пример. Будет тогда отлично !

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




Пост N: 7352
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.04.23 18:20. Заголовок: А иконку в контекстн..


А иконку в контекстное меню можно сразу выводить ?
Без всякой замены на лету ?
А то приходилось делать в два этапа, вывести пустой ресурс, а потом менять его на иконку.
Сложно это, давно перестал делать.

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




Пост N: 2122
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.04.23 18:47. Заголовок: Andrey пишет: А ико..


Andrey пишет:

 цитата:
А иконку в контекстное меню можно сразу выводить ?


Уже можно...
Благодарю за запрос

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



Пост N: 166
Зарегистрирован: 12.07.06
ссылка на сообщение  Отправлено: 05.04.23 12:16. Заголовок: aColors, есть вопрсы


Столкнулся с несоответствием в описании структуры массива aColors.
Использовал superheader и захотел поменять цвета через SetColor, в описании
это 16 и 17 элементы массива, а на деле оказалось надо указывать 15 и 16 элемент.
Глянул в TSBROWSE.CH. там тоже 16 и 17, непонятно
Использую HMG Extended Edition version 22.12 (Update 2).

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




Пост N: 4266
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.04.23 15:58. Заголовок: alex_II пишет захоте..


alex_II пишет
 цитата:
захотел поменять цвета через SetColor, в описании это 16 и 17 элементы массива


Кусочек со старого примера (версии старше указанной), работает на 16 и 17 элементы
 
STATIC FUNCTION mySupHdTsb( oBrw, aSupHd )
LOCAL O := oBrw:Cargo // использовать из контейнера свои переменные

ADD SUPER HEADER TO oBrw FROM 1 TO oBrw:nColCount() TITLE " "+aSupHd[1] HORZ DT_LEFT

WITH OBJECT oBrw
// задать цвета суперхидеру
:SetColor( {16}, { O:nClr16 } ) // 16, фона
:SetColor( {17}, { O:nClr17 } ) // 17, текста
END WIDTH

RETURN NIL


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




Пост N: 7361
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.04.23 15:04. Заголовок: Если я ставлю фильтр..


Если я ставлю фильтр на базу oBrw:FilterData( cFilter ), то у меня при перемещении по базе
на линии ВЕРТИКАЛЬНОГО скролинга бегунок неправильно отображается.
Как починить его ?

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




Пост N: 1931
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.04.23 08:31. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как починить его ?

разбираться со значением :bLogicLen после вызова фильтра. Там устанавливается конкретное значение , отличное от изначального в :setdbf()

Ошибка. bLogicLen. не учтена работа в шаред режиме при которой коллеги могут внести правки в базу , влияющие на фильтр , а так же удаление и добавление новых записей и то что фильтр можно поставить вне бровса. И при значении :bLogicLen == {|| 1000} после последнего вызова метода получим ерунду.
А так же, не применимо для логики ads в целом , с его AOF фильтрами.

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




Пост N: 7363
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.04.23 07:48. Заголовок: Иконки рисуются крас..


Иконки рисуются красиво на светлых тонах.


Но если выводить на тёмном фоне, на иконках появляются "зазубрины":


Это можно как то исправить ?
P.S. Пробовал ставить темные иконки - не проходит....
Хотя в меню такие иконки нормально выглядят...


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




Пост N: 7489
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.23 08:27. Заголовок: Собираю коллекцию по..


Собираю коллекцию показа ресурсов в ТСБ !
Не могу понять как можно загрузить bmp, png, jpg из внешней dll + с изменением размеров ?
Т.е. картинки в dll могут быть любых размеров, а мне в ТСБ нужно выводить нужный размер, допустим 90х90.
С иконками разобрался, их можно загружать в ТСБ любых размеров.

Работа с ресурсами в ТСБ:
#include "minigui.ch" 

#define LOAD_LIBRARY_AS_DATAFILE 0x00000002
//////////////////////////////////////////////////////////
....
oBrw:GetColumn( "FLD1" ):aCheck := { LoadImage( ".\RES\check1.bmp" ), LoadImage( ".\RES\check0.bmp" ) }
oBrw:GetColumn( "FLD2" ):aCheck := { GETICONFROMRES( ".\RES\Edit32.ico" ), NIL } // файл иконки 32x32
oBrw:GetColumn( "FLD3" ):aCheck := { GETICONFROMRES( "iFolder32" ) , NIL } // ресурс иконки в ехе-файле 32x32
oBrw:GetColumn( "FLD4" ):aCheck := { myLoadIconByName( "iSave128", 48 ), NIL } // 48x48 - ресурс иконки 128x128 в ехе-файле
oBrw:GetColumn( "FLD5" ):aCheck := { myLoadIconByName( ".\RES\Edit32.ico", 64 ), NIL } // файл иконки 32x32 увеличим 64x64
oBrw:GetColumn( "FLD6" ):aCheck := { myLoadLibraryEx("Image.Dll", "iExit", 90 ), NIL } // ресурс иконки в dll-файле любые размеры

oBrw:GetColumn( "FLD7" ):aCheck := { LoadImage( ".\RES\Save32.png" ), NIL }
oBrw:GetColumn( "FLD8" ):aCheck := { LoadImage( ".\RES\Mail32.jpg" ), NIL }
oBrw:GetColumn( "FLD9" ):aCheck := { myLoadImageDll( "Image.Dll", "png_Mail", 64 ), NIL }

oBrw:GetColumn( "FLD6" ):lBitMap := .T.
oBrw:GetColumn( "FLD6" ):aBitMaps := { LoadImage( ".\RES\edit_delete.bmp" ), ;
LoadImage( ".\RES\edit_cancel.bmp" ), ....... }
.....
FUNCTION myLoadIconByName( cIcon, nWH)
LOCAL hIcon, hBmp

hIcon := myLoadIconByName( cIcon, nWH, nWH )
hBmp := BmpFromIcon( hIcon )
DestroyIcon(hIcon)

RETURN hBmp

FUNCTION myLoadLibraryEx( cIconDll, cIcon, nWH )
LOCAL hIcon, hLib, hIconFromDll, hBmp := 0

If !File( cIconDll )
MsgStop("There is no resource file for the program!" + CRLF + cIconDll )
Return hBmp
Endif

hLib := LoadLibraryEx( cIconDll, 0, LOAD_LIBRARY_AS_DATAFILE )

if ! Empty( hLib )
hIconFromDll := LoadIconByName( cIcon, nWH, nWH, hLib )

if ! Empty( hIconFromDll )
hIcon := CopyIcon( hIconFromDll )
hBmp := BmpFromIcon( hIcon )
DestroyIcon( hIconFromDll )
DestroyIcon( hIcon )
endif

FreeLibrary( hLib )
endif

RETURN hBmp

Замечания по коду приветствуются.
Если хендл не получился, возвращаю 0, может и неправильно, но зато потом можно убить сразу все хендлы:
      ON RELEASE {|| AEval(ahBmp, {|h| DestroyIcon( h ) }) }

Как можно сделать функцию - myLoadImageDll( "Image.Dll", "png_Mail", 64 ) ?
где "png_Mail" - имя ресурса, 64 - нужный размер показа

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




Пост N: 7570
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.09.23 17:18. Заголовок: В новой версии МиниГ..


В новой версии МиниГуи 23.09 (Update 2) сделать просмотр dbf-файла просто.
Минимальный код для открытия базы:
   #include "minigui.ch" 
REQUEST DBFCDX, DBFFPT

FUNCTION Main()
LOCAL cDbf := GetStartUpFolder() + '\test_Engl.dbf'

RddSetDefault("DBFCDX")
SET FONT TO "DejaVu Sans Mono", 13

USE (cDbf) NEW EXCLUSIVE
TsbViewer()

RETURN NIL
// добавить при сборке библиотеку TsbViewer.lib

Внешний вид окна:


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




Пост N: 7824
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.09.23 17:45. Заголовок: Andrey пишет: В нов..


Andrey пишет:

 цитата:
В новой версии МиниГуи 23.09 (Update 2) сделать просмотр dbf-файла просто.


Да мы в курсе , читаем ChangeLog.txt

PS
C:\MiniGUI\SAMPLES\Advanced\Tsb_Viewer\demo5.prg

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




Пост N: 7825
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.09.23 17:48. Заголовок: Правда есть ньюанс п..


Правда есть ньюанс при запуске


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

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