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

Dima: AlexMyr пишет: Еще опцию в винде можно включить, чтоб сама винда убирала не используемые ярлыки. +1

Andrey: Dima пишет: юзера без ярлыков могут оказаться ;) Да я хочу удалить ярлыки от своих старых программ. А то достали юзера, видите ли программа не работает. А рядом ярлык рабочей программы не видят. Вот и чтобы по компам не ходить хочу прогу сделать и удалить лишний мусор ! Попробуй по этажам побегай по компам, удалять ярлыки...

Andrey: AlexMyr пишет: Чем ярлык отличается от других фалов? Вот я и уточняю здесь на форуме. Прав я ил не прав...


Dima: Andrey При чем тут Минигуи я только не пойму ;)

Andrey: Dima пишет: При чем тут Минигуи Просто у Григория очень большая коллекция примеров, вот я оттуда и беру. Там есть классный пример \SAMPLES\Advanced\WSH_Service по созданию ярлыков, без всяких #define CSIDL_DESKTOPDIRECTORY 0x0010 // <user name>\Desktop Вот я и пытаюсь понять, как правильней делать !

petr707: Ярлык на рабочем столе - это просто файл Чтобы удалить ярлыки, нужно всего три вещи: 1) знать место размещения - рабочий стол юзера или общий 2) знать имя ярлыка или уметь определять по имени ,что он свой 3) иметь права на удаление файла ярлыка При старте Ваша же текущая софтина может в раз день шарить по предполагаемым местам размещения этих файлов, и будет пытаться удалить все то, что посчитает своим и старым. Доступен будет рабочий стол юзера, выполнившего вход на том компе и общий - если юзер -имеет права админа того компа

Andrey: petr707 Да понятно это. Я спрашивал про доступ к ярлыкам. Посмотрите пример \SAMPLES\Advanced\WSH_Service и все станет ясно. Я пытался так же сделать чтение ярлыков.

petr707: Если Ваши ярлыки - не общие, а юзеровские - проблем с удалением - не будет. Создавались они - инсталлятором или Вашей прогой? Или юзерами произвольно - в тех, местах где получится? Повышение привилегий до админа - при установке ярлыков было?

Andrey: Сделал удаление ярлыков, вроде работает. Тестил на нескольких машинах. Другой вопрос, явно про Минигуи: Можно ли сделать компонент TEXTBOX прозрачным на форме ? LABEL делается. Может пример какой нибудь есть ?

gfilatov2002: Andrey пишет: Может пример какой нибудь есть ? Посмотри как это сделано для LISTBOX в примере demo1 из папки samples\Advanced\Transparency Возможно, такой подход поможет и для TEXTBOX

yury2003: MiniGUI 2.2.9 у меня не собираются три примера: ...\Samples\Basic\Folder Error: unresolved external '_HB_FUN_GETFOLDERHANDLE' referenced from \MINIGUI\SAMPLES\BASIC\FOLDER\DEMO.OBJ ...\Samples\Applications\Reservation Error: unresolved external '_HB_FUN_GETTITLEHEIGHT' referenced from \MINIGUI\SAMPLES\Applications\Reservation\PRESA.OBJ ...\Samples\Applications\Super Error: unresolved external '_HB_FUN_GETDESKTOPWIDTH' referenced from \MINIGUI\SAMPLES\Applications\Super\FUNCOES.OBJ Error: unresolved external '_HB_FUN_GETDESKTOPHEIGHT' referenced from \MINIGUI\SAMPLES\Applications\Super\FUNCOES.OBJ ОС WIN7 компилятор BCC

gfilatov2002: yury2003 Благодарю за сообщение! Эти ошибки будут исправлены в следующей сборке. А сейчас это можно поправить следующим образом: - в пример Folder добавить функцию GETFOLDERHANDLE() из исходника source\h_folder.prg - в примере Reservation убрать ненужный параметр при вызове функции GETTITLEHEIGHT() - в пример Super добавить в начале файла FUNCOES.PRG строку #include "minigui.ch"

Andrey: Собираю програмку, добавляю свои иконки. А после сборки наблюдаю иконки, которые не вставлял !!! Кто добавил их ? Откуда они добавляются ? Я в файле своего проекта *.rc их не добавляю !!! Они не мешали бы, только при установке ярлыка ВМЕСТО своей иконки СТАВИТЬСЯ принтер !!! Достал этот принтер ! Как можно отключить эту фигню ???

Dima: Возможно твой RC цепляет еще какой то RC где они объявлены.

SergKis: Andrey Верхняя и нижняя - это miniGui в statusbar индикация состояния клавиш CapsLock, Insert, ... другие, думаю тоже.

Andrey: А как их убрать ? Т.е. как указать у себя в проекте сборку lib без этих иконок ? Я же не прописываю сборку этих иконок у себя в проекте ! Иконка принтера: \MiniGUI\RESOURCES\print.ico - как убрать из своего проекта ? Это иконка скорее всего из библиотеки hbprinter.lib Я её не использую. Как мне указать в моем МойПроект.hbp - не линковать эту библиотеку ? Удаление иконки принтера Resource Hacker из готового ехе-ника результата не дало. Ярлык получается со стандартной иконкой ВИНДОВ, хотя на программе иконка правильная - моя !

Andrey: Взял код из примера MiniGUI\SAMPLES\Applications\Daily\set3.prg //-------------------------------------------------------------\\ FUNCTION CreateLink( LinkName, TargPath, HKey, IconLoc, Descr ) LOCAL NShortcut LOCAL WshShell := TOleAuto():New( "WScript.Shell" ) IF Ole2TxtError() != 'S_OK' RETURN .F. ENDIF NShortcut := WshShell:CreateShortcut( LinkName ) //Set shortcut placement NShortcut:TargetPath := TargPath //Set standard style of window NShortcut:WindowStyle := 1 //Set hotkey NShortcut:Hotkey := HKey //Path to icon NShortcut:IconLocation := IconLoc + ", 0" //Set tooltip NShortcut:Description := Descr //Set path to application as working directory NShortcut:WorkingDirectory := GetStartupFolder() // это я здесь сам заменил. //Save settings and shortcut NShortcut:Save() RETURN .T. Создаю ярлыки: cNameApp := "Моя_программа" cPathStUp := GetSpecialFolder( CSIDL_STARTUP ) cFileExe := EXENAME() cFileLink := cPathStUp + '\' + cNameApp + '.lnk' IF M->lPubAutoStart // автозапуск программы CreateLink( cFileLink, cFileExe, '', cFileExe, 'Events control' ) ELSE FErase( cFileLink ) ENDIF cPathDeskTop := GetDesktopFolder() cFileLink := cPathDeskTop + '\' + cNameApp + '.lnk' IF !FILE(cFileLink) // рабочий стол CreateLink( cFileLink, cFileExe, '', cFileExe, 'Events control' ) ENDIF Так вот вопрос, в одной программе ярлыки создает/удаляет нормально, а в другой нет ! Я уже полдня бьюсь с этим... Вторая программа сидит в трее, при записи настроек пытаюсь создать ярлыки - ни один не создается ! Хотя откуда брал, там тоже программа в трее сидит... В чем дело ? Может кто посмотрит, свежим взглядом ? Подключил создание ярлыка из \MiniGUI\SAMPLES\Applications\LINK_EXECUTOR\LinkExecutor.prg - работает всегда ! Правда удалить эти ярлыки из программы не могу уже... Что не сделаешь - везде "засада"...

Andrey: Всем привет. Подскажите как правильно перерисовать объекты на ФОРМЕ ? Я рисую объекты: потом удаляю ОДИН файл (крестиком) и удаляю в цикле ВСЕ нарисованные объекты. Потом пытаюсь заново нарисовать эти объекты и получаю облом ... нет новых объектов... И остается "мусор" после LABEL и BUTTONEX : Что не правильно делаю ? //////////////////////////////////////////////////////////////////////////// // рисуем иконки прикрепленных файлов FUNCTION ViewPngFile() ............. FOR nI := 1 TO LEN(aDim) .......................... cObj := "Img_File"+LTRIM(STR(nI)) cImage := MaskaTypeFile(cFile ) @ nRow, nColTek IMAGE &cObj OF Form_1 PICTURE cImage WIDTH 131 HEIGHT 59 cObj2 := "Label_File"+LTRIM(STR(nI)) @ nRow+40, nColTek+5 LABEL &cObj2 VALUE cFile WIDTH 131-10 HEIGHT 16 ; FONT 'Tahoma' SIZE 9 ; TRANSPARENT FONTCOLOR aFontColor CENTERALIGN OF Form_1 cObj2 := "Label_Size"+LTRIM(STR(nI)) @ nRow+20, nColTek+25 LABEL &cObj2 VALUE cFSize WIDTH 131-15 HEIGHT 16 ; FONT 'Tahoma' SIZE 9 BOLD ; TRANSPARENT FONTCOLOR GRAY CENTERALIGN OF Form_1 cObj3 := "Button_Del"+LTRIM(STR(nI)) cRun := "File_Delete("+LTRIM(STR(nI))+")" // Удаляем прикрепленный файл @ nRow, nColTek+131-16 BUTTONEX &cObj3 OF Form_1 ; WIDTH 16 HEIGHT 16 ; ACTION &cRun ICON "iDel16" NEXT RETURN NIL ///////////////////////////////////////////////////////////////////////////// // Удаляем прикрепленный файл FUNCTION File_Delete(nDel) LOCAL cObj, cObj2, cObj2a, cObj3 LOCAL aDim := ACLONE(M->aGet[7]), cFilePath, cRun M->aGet[7] := {} FOR nI := 1 TO LEN(aDim) IF nI # nDel AADD(M->aGet[7],aDim[nI]) ENDIF cObj := "Img_File"+LTRIM(STR(nI)) cObj2 := "Label_File"+LTRIM(STR(nI)) cObj2a := "Label_Size"+LTRIM(STR(nI)) cObj3 := "Button_Del"+LTRIM(STR(nI)) RELEASE CONTROL &cObj3 OF Form_1 RELEASE CONTROL &cObj2a OF Form_1 RELEASE CONTROL &cObj2 OF Form_1 RELEASE CONTROL &cObj OF Form_1 NEXT DO EVENTS ViewPngFile() // перерисуем иконки файлов RETURN NIL

Andrey: После подсказки Григория - добился нормальной работы. Нужно не удалять объект, а просто его скрывать. Если не хватает объекта, то добавляем объект и показываем. Мусора нет, все прекрасно работает. Кому интересно могу выложить код. Все короче просто, если знаешь куда копать...

Dima: Andrey пишет: Все короче просто, если знаешь куда копать... Да это так.



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