Форум » GUI » Новая версия Расширенного релиза библиотеки MiniGUI (часть IV) (продолжение) » Ответить

Новая версия Расширенного релиза библиотеки MiniGUI (часть IV) (продолжение)

gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).

Ответов - 301, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All

yury: Кажется нашлась проблема В файле h_browse.prg в процедуре _BrowseEdit есть такой код : _HMG_ActiveFormNameBak := _HMG_ActiveFormName (стр. 1308) И далее после вызова _EditRecord _HMG_ActiveFormName := _HMG_ActiveFormNameBak (cnh/ 1526) Вот по моему это лишние строки. Этими манипуляциями с сохранением и восстановлением этих переменных занимаются процедуры _DefineWindow и _EndWindow в файле h_windows.prg. Наверное их стоит убрать. Я пересобрал библиотеку без них - полет нормальный.

gfilatov2002: yury пишет: нашлась проблема Большое спасибо! Я уже тоже убрал эти лишние строки Исправленный вариант библиотеки выйдет на следующей неделе

i3t4j6: i3t4j6 пишет: ...колонку внести или изменить невозможно... С первым вопросом я разобрался: теперь , если Brw_6:lPickerMode := .F., то необходимо колонку описать Brw_6:aColumns[7]:cPicture := "@D". А по второму вопросу- не понятно: Почему при использовании функции ComboWBlock() на экран выводится первая буква, а не все значение поля ???


gfilatov2002: Новый релиз библиотеки выложил, как и обещал, по адресу: http://minigui.mylivepage.ru/file/?fileid=8298 а также, как обычно, на сервере http://hmgextended.com по адресу: http://hmgextended.com/files/CONTRIB/hmg-1.8-86-setup.zip Желаю удачной выкачки!

gustow: Спасибо, Григорий! На старт, внимание... тест!!! :)

gfilatov2002: gustow Обратите внимание, что размер библиотеки уменьшился на 2 кБ за счет оптимизации кода.

gustow: Конечно, заметил! :) Еще удивился поначалу, что "мухой" скачалось, а потом смотрю - а размерчик-то как уменьшился!.. :) вот они - нанотехнологии - в действии! :) :)

gfilatov2002: АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №87, которая выйдет на следующей неделе. Если у Вас есть интересные дополнения для включения в следующий релиз, то я с удовольствием рассмотрю их (присылайте по почте) Кратко, что нового: - кнопка ButtonEx не будет срабатывать, если отжатие левой кнопки мышки было сделано за пределами границ этой кнопки; - добавлена поддержка клавиатурных комбинаций клавиш (с помощью символа &) для расширенного ownerdraw меню; - корректировка кода библиотек HbPrinter и MiniPrint; - обновлены сборка Харбора версии 2.1.0beta2, a также некоторые contrib библиотеки. Спасибо за внимание!

Dr. Oldwarez: Чего мне не хватает в Harbour MiniGUI Extended - это специальных элементов редактирования (COMBOBOX и т.д.) прямо в BROWSE. В GRID они есть, но я бы хотел, чтобы они были в Browse и, крайне желательно, в TSBROWSE. До сих пор я работал с OOHG, где есть функция COLUMNCONTROLS, но шефу не понравилось, что поле ввода надо сначала дважды кликать мышкой, а потом, по окончании ввода нажимать на ENTER. А вот в TSBROWSE можно сразу переходить на другое поле, как в электронной таблице. Это исключение из правил. Почти все BROWSE, поддерживающие ввод данных, вплоть до допотопного ДОСявого StarClass, работают по принципу: двойной щелчок мыши на поле ввода - создание буфера ввода-ввод данных-нажатие ENTER-сохранение данных в DBF-очистка буфера ввода.

Andrey: Есть пример в MiniGUI\SAMPLES\Advanced\GoogleDirections А как использовать его по России ? Какой адрес нужно вставить например для Москвы ?

S-A-N: Dr. Oldwarez: «Чего мне не хватает в Harbour MiniGUI Extended - это специальных элементов редактирования (COMBOBOX и т.д.) прямо в BROWSE. В GRID они есть, но я бы хотел, чтобы они были в Browse ...Есть функция COLUMNCONTROLS...» Полностью поддерживаю.

krutoff: Dr. Oldwarez пишет: Чего мне не хватает в Harbour MiniGUI Extended - это специальных элементов редактирования (COMBOBOX и т.д.) прямо в BROWSE. посмотрите oBrw:SetData(nCol,Nil,{aItems, aData} ) aItems - массив строк списка Combobox aData - массив значений для каждой строки

Dr. Oldwarez: Подскажите пожалуйста, как обеспечить в TSBROWSE синхронизацию главного и подчинённого BROWSE если применён CDX индекс. [pre2]*------------------------------------------------------------------------------* Function SincroTb(obrw,Invert) *------------------------------------------------------------------------------* LOCAL pos , cSelState default invert to .F. if invert cSelState := Employee->state oBrw:SetFilter( "State", cSelState ) else cSelState := SubStr(sta->state,1,2) oBrw:SetFilter( "State+Last", cSelState ) Endif _setitem("statusbar","Form_10",2,cSelState) oBrw:cPrefix := cSelState IF FieldGet(FieldPos("State")) != cSelState oBrw:Enabled(.f.) ELSE oBrw:Enabled(.T.) endif oBrw:Refresh( .T. ) oBrw:lHasChanged := .T. oBrw:lNoGrayBar := .T. return NIL[/pre2] Это пример для NTX-индекса, а у меня CDX и SET SCOPE. Почему-то при этом TSBROWSE становится неадекватным. При изменениях в главном BROWSE первая строка почему-то не обновляется, но если на неё встать курсором и прокрутить до конца, а потом обратно вернуться в начало, то BROWSE уже начинает правильно показывать данные. Хуже всего, если у записи в главном окне нет соответствия в окне подчинённом. В таком случае показывается набор данных от предыдущего окна, а при попытке его прокрутить, курсор останавливается на первой строке. Подскажите, пожалуйста, как заставить TSBROWSE автоматически обновлять набор данных. Проблему комбобоксов я уже решил [pre]oBrw:SetData(nCol,ComboWBlock(oBrw,"FIELD_NAME",nCol,aList))[/pre]

ММК: Dr. Oldwarez пишет: как обеспечить в TSBROWSE синхронизацию главного и подчинённого К примеру представим , что на экране окошко с фолдером; на первой закладачке содержимое склада, а на последующих соответственно приход и расход. Т.е. при перемещении по бровсу на первой вкладочке бровсы на остальных должны "отражать " состояние текущей позициии.. @ 0.1, 0.1 FOLDER oFld ; PROMPTS " Картотека "," Приход ", " расход" ; SIZE 385, 275 PIXEL FONT oFon1 oFld:aEnable={.T.,.T.,.T. } Selec Mm SET ORDER TO TAG Ki Go top @ 1,1 XBROWSE oBrw SIZE 367,260 PIXEL OF oFld:aDialogs[1] ALIAS "Mm"; AUTOSORT FOOTERS FASTEDIT LINES CELL ; ON CHANGE (ChC("K"), Fresh(Mm->kod),; oBr3:Paint(),oBr3:Setfocus(),oBr3:Refresh(),oBrw:nlen:=ORDKEYCOUNT(),oBrw:Setfocus() ) ; oBrw:nHeaderLines := 2 ADD oCol TO oBrw DATA Mm->KOD HEADER "код" SIZE 70 oCol:AddResource( "In1" ) oCol:AddResource( "In2" ) oCol:nHeadBmpNo := 2 oCol :oHeaderFont := oFon3 oCol:oDataFont := oFon3 oCol:bLClickHeader = {|nMRow,nMCol,nFlags,Self|DBSETORDER(1),Mumu(oBrw,ordname(),Self,9)} Ну и т.д. ..... При любом телодвижении на первом бровсе срабатывает ON CHANGE (ChC("K"), Fresh(Mm->kod),; А там :))) ******************* Function Fresh(rtn) ******************* Local old:=Select() Public oBr1,oBr2,oBr3,oBr4,oBrw Selec Pr1 SET ORDER TO TAG Pi1 ORDSCOPE(0,Str(rtn,7)) ORDSCOPE(1,Str(rtn,7)) Go top oBr3:nLen:=ordkeycount() oBr3:upstable() oBr3:GoBottom() oBr3:Gotop() oBr3:Setfocus() oBr3:Refresh(.T.) Selec Ra1 SET ORDER TO TAG Ri1 ORDSCOPE(0,Str(rtn,7)) ORDSCOPE(1,Str(rtn,7)) Go top oBr4:nLen:=ordkeycount() oBr4:upstable() oBr4:GoBottom() oBr4:Gotop() oBr4:Setfocus() oBr4:Refresh(.T.) Select(old) Return .T.

gfilatov2002: Обновил с учетом последних изменений от автора полную сборку IDE на сайте http://minigui.mylivepage.ru по адресу: http://minigui.mylivepage.ru/file/?fileid=8300 а также, как обычно, на сервере http://hmgextended.com в папке HMGS-IDE. Желаю всем удачной выкачки!

Dr. Oldwarez: Уже сам догадался. Просто поставил SetFilter, как и в NTX. Отрубить фильтр oBrw:SetFilter("","") А вот как сделать, чтобы длинное (120 знаков), но не MEMO-поле выходило, как MEMO, а отображалось в одну строку? И как, при редактировании MEMO сделать так, чтобы при нажатии ESC само TBROWSE никуда не уходило?

krutoff: Dr. Oldwarez Филатов тактично молчит, но мне кажется надо заводить отдельные темы, а не мусорить в главной. Давайте так и сделаем.

Dr. Oldwarez: Извините, пожалуйста В следующий раз заведу отдельную темку.

Dr. Oldwarez: ММК пишет: SET ORDER TO TAG Pi1 ORDSCOPE(0,Str(rtn,7)) ORDSCOPE(1,Str(rtn,7)) Go top oBr3:nLen:=ordkeycount() oBr3:upstable() oBr3:GoBottom() oBr3:Gotop() oBr3:Setfocus() oBr3:Refresh(.T.) УРА-А-А!!! Заработало! Огромное спасибо и ящик пива! Извините, это я последний раз в главной теме.

gfilatov2002: Новый релиз библиотеки выложил, как и обещал, по адресу: http://minigui.mylivepage.ru/file/?fileid=8301 а также, как обычно, на сервере http://hmgextended.com по адресу: http://hmgextended.com/files/CONTRIB/hmg-1.8-87-setup.zip Ваши комментарии приветствуются P.S. Что планируется включить в сборку в будущем: Януш Пора сейчас работает над адаптацией TSBrowse версии 9.0 для нашей библиотеки



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