Форум » GUI » Примеры из Минигуи -ошибки, вопросы..... (продолжение) » Ответить

Примеры из Минигуи -ошибки, вопросы..... (продолжение)

Andrey: Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ? Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее.... Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР -------------------------------------------------------------------------------- Harbour MiniGUI Errorlog File Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21 -------------------------------------------------------------------------------- Date: 11/15/2011 Time: 22:13:24 Error BASE/1124 Argument error: LEFT Called from LEFT(0) Called from SCANSOFT(195) Called from MAIN(84) Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается... Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32 Harbour 3.1.0dev (Rev. 17042) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'demo.prg'... Lines 20133, Functions/Procedures 30 Generating C source output to 'demo.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland demo.c: Error E2141 demo.prg 993: Declaration syntax error *** 1 errors in Compile *** C compile error.

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

Andrey: Можно ли средствами МиниГуи получить иконку, bmp зарегистрированного файла в системе ? Допустим *.doc файла Я просто хочу эти иконки использовать у себя в программе. Куда копать ?

Andrey: Нашел исходник на С, как перевести для Харбора не знаю... http://www.rsdn.ru/forum/com/2978877.flat

Andrey: Хочу сделать листинг директории с показом иконок ассоциированными с данными типами файлов. И затык... Может пример уже готовый есть, а я велосипед изобретаю.... Или на FiveWin примеры есть ? Подскажите пожалуйста.


Andrey: Да Григорий, один твой пример и чувствуешь себя Незнайкой на Луне. Сидишь тут иконки выдираешь, время убиваешь на это, а то что этим вообще не нужно заниматься - даже и не знаешь. Надеюсь пример работы с иконками появится в примерах ? Как сделать виртуальную форму со скролинком ? Есть ли такие примеры ? Т.е. если на форме не помещаются все иконки, то чтобы по скролингу вниз - можно было просмотреть форму дальше ?

Haz: Andrey пишет: Как сделать виртуальную форму со скролинком Андрей глянь сюда \MiniGUI\SAMPLES\BASIC\CONTAINERS\Panel_2

Andrey: Спасибо - сделал. Только вот получилось не совсем то, иконки появляются, а как скролтнгом подергаешь, иконки все пропадают... DEFINE WINDOW Form_1 ; AT 0 , 0 WIDTH nDesktopWidth HEIGHT nDesktopHeight ; VIRTUAL WIDTH nDesktopWidth*2 VIRTUAL HEIGHT nDesktopHeight*2 ; TITLE "Icon from shell32.dll" ; MAIN ; ON INIT MyDrawIcons() ; ON RELEASE DestroyIcon( hIcon ) ; ON INTERACTIVECLOSE Nil ; ON MOUSECLICK Nil ON MOUSEDRAG Nil ON MOUSEMOVE Nil ; ON SIZE Nil ON MAXIMIZE Nil ON MINIMIZE Nil ON PAINT Nil ; BACKCOLOR Nil NOTIFYICON NIL NOTIFYTOOLTIP NIL ON NOTIFYCLICK Nil ; ON GOTFOCUS Nil ON LOSTFOCUS Nil ON SCROLLUP Nil ; ON SCROLLDOWN Nil ON SCROLLLEFT Nil ON SCROLLRIGHT Nil ; ON HSCROLLBOX Nil ON VSCROLLBOX Nil Хотя объект LABEL сохраняется нормально. Видно как то нужно ставить обработку... А как не знаю ?

Haz: ради эксперимента c PANEL . может на ON SCROLL..... MyDrawIcons() повесить ? или дай своему MAIN окну виртуальные размеры сразу и не мучайся )) VIRTUALWIDTH xxx VIRTUALHEIGHT yyy в синтаксис DEFINE WINDOW подсмотри

Andrey: Оказывается все просто. Обращаешься к ГУРУ и ответ простой: Иконки пропадают, поскольку в функции DrawIcon() идет прямая запись на экран. Что я тоже потом обнаружил. Запуск формы: Форма после восстановления с панели: Эх опять недоработка в МиниГуи.... Рано я радовался... Остается только одно, иконку преобразовывать в bmp и показывать. Но опять другое вылазит: bmp-ка не прозрачная.... Цвета подбирать нужно под bmp. Некрасиво получается...

gfilatov2002: Haz пишет: дай своему MAIN окну виртуальные размеры Рабочий пример ниже [pre]#include "minigui.ch" Procedure MAIN LOCAL nDesktopWidth := GetDesktopWidth() LOCAL nDesktopHeight := GetDesktopHeight() - GetTaskBarHeight() SET MULTIPLE OFF WARNING SET FONT TO "Tahoma", 9 DEFINE WINDOW Form_1 ; VIRTUAL WIDTH nDesktopWidth+10 VIRTUAL HEIGHT nDesktopHeight*1.5 ; TITLE "Icons from shell32.dll" ; MAIN ; ON INIT MyDrawIcons() END WINDOW Form_1.Sizable := .F. // NOSIZE Form_1.MinButton := .F. // NOMINIMIZE Form_1.MaxButton := .F. // NOMAXIMIZE Form_1.Activate Return ///////////////////////////////////////////////////////////////////////////////// Function MyDrawIcons() LOCAL nJ := 0, nI, cStr, cObj, nRow := 10, nCol LOCAL nWidth := Form_1.Width LOCAL nHeight := Form_1.Height LOCAL cIcon := System.SystemFolder + "\shell32.dll" LOCAL count := ExtractIcon( cIcon, -1, 0, 0, 0 ) FOR nI := 0 TO count nJ++ nCol := 10 + 70*(nJ-1) IF nCol > nWidth - 80 nRow += 70 nJ := 1 nCol := 10 ENDIF cObj := "Btn_"+LTRIM(STR(nI)) @ nRow, nCol BUTTON &cObj ; OF Form_1 ; WIDTH 38 HEIGHT 38 ; ICON cIcon ; EXTRACT nI FLAT cObj := "Lbl_"+LTRIM(STR(nI)) cStr := "nI="+LTRIM(STR(nI)) @ nRow + 40, nCol LABEL &cObj ; OF Form_1 VALUE cStr ; WIDTH 60 HEIGHT 12 ; TRANSPARENT FONTCOLOR BLUE NEXT Return NIL [/pre]

Haz: Вопрос по классу TComboBox из TBrowse, мож кто знает ??? Возможно ли применение DISPLAYEDIT к данному классу. Нужно не сколько само редактирование, сколько возможность поиска в комбо по первым введенным буквам, без этого поиск отрабатывает только первую букву Пробовал тупо выставить переменную displaychange := .T. в исходнике TComboBox.Prg, появляется и поиск и редактированпие, но пропадает реакция на клавиши выбора ENTER или ESCAPE. Григорий, PS. и еще маленький фикс кода для этогокласса Когда в колонке с числовым ID используя :SetData отображаю символьные строки из справочного массива, то при редактировании ComboBox растягивается до самой длинной строки из массива. Это происходит из-за кода в h_tbrowse.prg строка 3782: If oCol:cDataType != Nil .and. oCol:cDataType == "N" колонка типа "N" - т.к. там ID, но отображаю в ней строку из массива, соответствующую этому ID предлагаю в коде заменить на If ValType( Eval( oCol:bData ) ) == "N" , тогда при числовых значенияч все остается как есть, а при строковых будет определяться через :SetColSize

gfilatov2002: Haz пишет: предлагаю в коде заменить на If ValType( Eval( oCol:bData ) ) == "N" Спасибо, поправил для следующей сборки.

Andrey: Хотел из объекта LABEL сделать самостоятельно СВОЮ кнопку. типа такого: @ nRow, nColTek LABEL &cObj OF Form_1 VALUE "" ; WIDTH 131 HEIGHT 60 BACKCOLOR aBackColor ; // borders DRAW LINE IN WINDOW Form_1 At nRow,nColTek to nRow+60,nColTek PENCOLOR {64,64,64} PENWIDTH 1 DRAW LINE IN WINDOW Form_1 At nRow,nColTek to nRow,nColTek+131 PENCOLOR {64,64,64} PENWIDTH 1 DRAW LINE IN WINDOW Form_1 At nRow,nColTek+131 to nRow+60,nColTek+131 PENCOLOR {64,64,64} PENWIDTH 1 DRAW LINE IN WINDOW Form_1 At nRow+60,nColTek-1 to nRow+60,nColTek+131 PENCOLOR {64,64,64} PENWIDTH 1 А окантовка кнопки по LABEL командой DRAW LINE не происходит ! Почему ? Если сделать DRAW LINE ... At nRow-1, то есть вокруг LABEL, то окантовку видно. Но если объект LABEL скрыть, то тогда остается окантовка без кнопки. Как тогда убрать окантовку с сохранением фона под окантовкой ?

SergKis: Andrey А свойств BORDER и CLIENTEDGE в LABEL разве не достаточно для обводки (чтобы не усложнять жизнь) ?

Andrey: SergKis пишет: А свойств BORDER и CLIENTEDGE в LABEL разве не достаточно для обводки (чтобы не усложнять жизнь) ? Вот-вот... Сам делал и забыл... Посмотрел на кнопку и решил сделать, а подумать то забыл, или праздники утомили... Спасибо большое за возврат к действительности ! С этим разобрался. А на будущее: как удалить нарисованную линию ?

SergKis: Andrey пишет:А на будущее: как удалить нарисованную линию ? Перерисовать окно (все контролы, включая обои)

Andrey: SergKis пишет: Перерисовать окно (все контролы, включая обои) Да уж... Интересно, а в других библиотеках как это делается ?

SergKis: Andrey пишет:Да уж... а сложность в чем ? FormName.ControlName.Refresh по списку сделать.

Andrey: Приветствую gfilatov2002 ! В примере demo2.prg ("Select file & Icon associated with the file type - 1.0") обнаружил одну фигню ! Если добавлять файлы по 2 и более, то не всегда красиво получается отображение кнопок... Что то связанное с прорисовкой. Как побороть не знаю. По одному файлу добавляет нормально !

gfilatov2002: Andrey пишет: Что то связанное с прорисовкой. Как побороть не знаю. Попробуй переставить команду DO EVENTS в функции File_Delete() ниже [pre2]... IF nDel == 0 // delete all files - reset array M->aDimFile := {} ELSE ViewIconFile() // show icons attachments ENDIF DO EVENTS ... [/pre2]

Andrey: gfilatov2002 пишет: Попробуй переставить команду DO EVENTS в функции File_Delete() ниже Не помогло...



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