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

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

Andrey: Как правильно поднять EXCEL и оставить его на экране в МиниГуи ? Т.е. я создаю файл EXCEL переключаюсь на него и нужно остаться в EXCEL-е. А у меня управление возвращается на мою программу и она выходит на первый план. ..... hWnd := oExcel:hWnd ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd ) // вот здесь в терминалке я ставил INKEY(0) и было для юзера удобно ! // Что поставить для МиниГуи ? RETURN NIL

Andrey: Всем привет ! Непонятка одна... Читаем доку: @ <nRow> ,<nCol> GETBOX <ControlName> ..... [ NOBORDER ] Классный вид, т.е. привычный юзеру. А если я хочу включить "бордюр" для уже выведенного объекта на форме ? SetProperty( ..., ..., "NoBorder" , .F./.T. ) SetProperty( ..., ..., "Border" , .F./.T. ) - не работает...

Dima: Andrey пишет: SetProperty( ..., ..., "NoBorder" , .F./.T. ) Может включить надо так ? SetProperty( ..., ..., "NoBorder" , .F. )

Haz: Dima пишет: Может включить надо так ? SetProperty( ..., ..., "NoBorder" , .F. ) Дима, так скорее не получится. думаю надо стиль окна Getbox менять. Во всяком случае проперти GetBoх сделать это не позволяют ( в исходниках нет такой возможности ).

gfilatov2002: Haz пишет: надо стиль окна Getbox менять С этим засада - стиль WS_BORDER не будет устанавливаться после определения контрола (по-видимому, ограничение WinAPI). Поэтому можно решить "в лоб" эту задачу таким образом (см. ниже) [pre2]/* * MINIGUI - Harbour Win32 GUI library Demo * */ #include "minigui.ch" Function Main DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 300 ; TITLE "MiniGUI GetBox Demo" ; MAIN ; FONT "Arial" SIZE 10 @ 030,30 GETBOX GetBox_1 VALUE "Input value" WIDTH 200 TOOLTIP "GetBox 1" NOBORDER @ 110,30 BUTTONEX BUTTON_1 ; CAPTION "Set Border" ; ACTION SetBorderStyle( 'GetBox_1','Form_1' ); WIDTH 80 ; HEIGHT 28 END WINDOW CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil Function SetBorderStyle( Control, Form ) Local v := _GetValue( Control, Form ) _ReleaseControl( Control, Form ) @ 030,30 GETBOX &Control OF &Form VALUE v WIDTH 200 TOOLTIP Control Form_1.BUTTON_1.Enabled := .F. return .t. [/pre2]

Andrey: gfilatov2002 пишет: С этим засада - стиль WS_BORDER не будет устанавливаться после определения контрола (по-видимому, ограничение WinAPI). Поэтому можно решить "в лоб" эту задачу таким образом (см. ниже) Спасибо БОЛЬШОЕ Григорий ! Эх, опять кучу текста переделывать нужно....

Andrey: Привет всем ! Можно ли заранее определить какой ПОСЛЕДНИЙ тип окна уже открыт ? Т.е. если последнее окно у меня открыто MODAL, то при открытии из него другого типа окна кроме MODAL приводит программу к ошибке и закрытию программы... Или можно поступить как то по другому в этом случае ?

Haz: Andrey пишет: Или можно поступить как то по другому в этом случае ? Можно не открывать из модального окна немодальные. Не понятно зачем самому себе раскладывать грабли ? ЗЫ в минигуи есть псевдопеременная _HMG_IsModalActive, она устанавливается при активации модального окна. См. исходники

SergKis: Andrey пишет:Можно ли заранее определить какой ПОСЛЕДНИЙ тип окна уже открыт ? GetWindowType ( FormName ) - даст тип окна посмотри содержимое: aEval(_HMG_aFormNames, {|n,i| MsgDebug(i, n, _HMG_aFormType [ i ], _HMG_aFormActive [ i ]) })

Haz: Andrey пишет: какой ПОСЛЕДНИЙ тип окна В данном контексте вопрос звучит странно . т.к если открыто модальное окно - ПОСЛЕДНИМ может быть ТОЛЬКО модальное "Non Modal Window can't be activated when a Modal window is active."

Andrey: Всем доброй ночи ! А можно сделать функцию, которая бы показывалась ВЕЗДЕ при нажатии комбинаций клавиш ? Попробовал сделать как в примере SAMPLES\Applications\FOCUS_IT, но у меня в других окнах эти клавиши не срабатывают.... Но может я тест простой написал ? ОДНО окно (CHILD и MODAL) без других объектов...

Andrey: Привет всем ! Как сделать конструкцию из терминалки nKey := INKEY(nTime) в МиниГуи ? ? LASTKEY(nKey) Можно так сделать nKey := INKEYGUI(nTime*1000) ? Или INKEYGUI() ничего не возвращает ?

Haz: Andrey пишет: Или INKEYGUI() ничего не возвращает ? Посмотри в C:\MiniGUI\Doc\ChangeLog.txt что возвращает

Andrey: Почему не всегда показывается картинка на форме ? У меня показывает, на Win2008 нет...

Dima: Andrey пишет: У меня показывает На футболке ? Хоть бы код показал которым выводишь пикчу , по ходу если дергаешь ее из файла то скорее всего забыл его сложить на сервант 2008.

Andrey: Вот код: FUNCTION WinOpenDbf( cTitle ) ..... DEFINE WINDOW Form_TrsfDbf ; ..... WINDOWTYPE MODAL ; NOSHOW ; @ 30, (nWidth-nImgWidth)/2 IMAGE Image_1 ; PICTURE cImgRes ; WIDTH nImgWidth ; HEIGHT nImgHeight .... Form_TrsfDbf.Center Activate Window Form_TrsfDbf NoWait ProcessMessages() // ОБЯЗАТЕЛЬНО ! Чтобы форма ОБНОВИЛАСЬ ! Form_TrsfDbf.Hide // скрыть окно RETURN aRet Строю скрытое окно, а там дальше проверяю, если нужно показать, то делаю domethod("Form_TrsfDbf","Show") // показать окно и включаю бегунки... Ресурсы все в ехе-нике. У меня Win8.1 и у других нормально. А на Win2008 сбоит и то не всегда. Что ещё можно сделать для прорисовки картинки ?

Andrey: А как подключить русский язык для архиватора zip из библиотеки Минигуи ? Дело в том что русские имена файлов в архиве становятся кракозябами... Использую оператор: COMPRESS aFiles ; TO cBackupZip ; BLOCK { | cFile, nPos | ProgressUpdate( nPos, cFile, aSizeFiles, .T. ) } ; LEVEL 7 ; OVERWRITE ; STOREPATH ; FILEPROGRESS { | nPos, nTotal | ProgressFile( nPos, nTotal, .T. ) } ; RESULT lSuccess

Dima: Andrey пишет: А как подключить русский язык для архиватора zip из библиотеки Минигуи ? Самодостаточный пример сюда сложи. PS Русский язык указывается заданием "нужной" кодовой страницы.

Andrey: Dima пишет: Самодостаточный пример сюда сложи. Сделал и выложил. В папке \FR3\ файлы с русскими буквами. Файл с русскими буквами преобразуется в архиве кракозябами... https://cloud.mail.ru/public/8MDq/upmSqF2xn

Haz: Andrey пишет: Файл с русскими буквами преобразуется в архиве кракозябами... Андрей , имена файлов в ZIP-архиве хранятся в кодировке DOS, соответствующей языку локали. это СТАНДАРТ для понимания -> http://www.opennet.ru/tips/info/2494.shtml т.к. в самой библе минизип нет установки нужной OEM кодировки нужно обеспечить выполнение архивирования в кодовой странице "RU866" для русского языка проблему с именами ВНУТРИ архива это решит, но появится новая - GUI интерфейс работает не в OEM так что придется еще и кой какой вывод транслировать в ANSI



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