Форум » 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: Dima пишет: Нет не помогает... Давай отдельный пример. Может при создании этого примера можно будет понять что не так делаешь. У меня тоже так частенько получается, вроде должно работать, а не работает. Делаешь отдельный пример и понимаешь как нужно сделать.

Andrey: Andrey пишет: Выдает такую ошибку: Harbour 3.2.0dev (r1503131756) Copyright (c) 1999-2015, http://harbour-project.org/ Source\form_LoginPassw.prg(82) Error E0030 Syntax error "syntax error at '@'" Source\form_LoginPassw.prg(90) Error E0030 Syntax error "syntax error at '@'" 2 errors No code generated. Опять такие же грабли ..... Увеличил свой проект на 450Кб текстов программ и опять не хочет собираться. В отдельном модуле собирается нормально, как начинаешь добавлять в основную программу - отказ компиляции, на простом месте. Почему ? Вот так выглядит ошибка: Harbour 3.2.0dev (r1505191317) Copyright (c) 1999-2015, http://harbour-project.org/ Source\form_transf_cnf1.prg(101) Error E0030 Syntax error "syntax error at '@'" Source\form_transf_cnf1.prg(118) Error E0030 Syntax error "syntax error at '@'" 2 errors No code generated. Вот так выглядит код который в небольшом проекте собирается, а к большому присоединяешь - НЕ собирается: @ nRowButt, 140 BUTTONEX Button_Save ; WIDTH nWButt HEIGHT nHButt ; CAPTION 'Сохранить' ; ICON "iFloppy48x1" ; FONTCOLOR aButtColor ; BACKCOLOR COLOR_GREEN_METRO ; SIZE nFBSize2 ; NOXPSTYLE ; ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iFloppy48x2") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) ) ; ON MOUSELEAVE ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iFloppy48x1") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor ) ) ; ACTION { || SaveConfig(), Form_DbM2Cnf1.Release() } // строка 101 // при наведении мышкой на кнопку стрелка меняется на палец nIndex := GetControlIndex('Button_Save', ThisWindow.Name) _HMG_aControlInputMask [ nIndex ] := .T. @ nRowButt, 420 BUTTONEX Button_Exit ; WIDTH nWButt HEIGHT nHButt ; ICON "iExit48x1" ; CAPTION 'Выход' ; FONTCOLOR aButtColor ; BACKCOLOR COLOR_BRIGHT_RED ; SIZE nFBSize2 ; NOXPSTYLE ; ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) ) ; ON MOUSELEAVE ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x1") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor ) ) ; ACTION { || Form_DbM2Cnf1.Release() } // строка 118 // при наведении мышкой на кнопку стрелка меняется на палец nIndex := GetControlIndex('Button_Exit', ThisWindow.Name) _HMG_aControlInputMask [ nIndex ] := .T. Помогите пожалуйста.

Dima: Andrey пишет: Form_DbM2Cnf1.Release() DoMethod("Form_DbM2Cnf1","Release")


Andrey: Dima пишет: DoMethod("Form_DbM2Cnf1","Release") Даже ставил ThisWindow.Release - бестолку, не компилирует. Даже убрал вообще ACTION { || .... } всё равно не компилирует. У меня новых 4 модуля с такой конструкцией. В проекте есть старые такие же конструкции - он их компилирует. Как убираешь эти кнопки - компилируется нормально. Объём текстов то небольшой - чуть меньше 2 Мб ... Всё чудесней и чудесней со временем становиться...

Dima: Andrey пишет: Всё чудесней и чудесней со временем становиться... И у меня та же фигня

Dima: По ходу в описании BUTTONEX не указан PARENT и если описание делается вне описания окна тогда и не собрать

Andrey: Dima пишет: По ходу в описании BUTTONEX не указан PARENT и если описание делается вне описания окна тогда и не собрать Он не обязателен. В малом проекте ВСЁ собирается, а в большом нет. Закоментировал что не собирается и ОПЯТЬ облом.... Пишет: Harbour 3.2.0dev (r1505191317) Copyright (c) 1999-2015, http://harbour-project.org/ OBJ\form_transf_cnf1.c: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN_GETWINDOWWIDTH' referenced from W:\HB_PROJECT\ Error: Unresolved external '_HB_FUN_GETWINDOWHEIGHT' referenced from W:\HB_PROJECT\ Смотрю текст: nTabWidth := GetWindowWidth(GetControlHandle('Tab_1', _HMG_ThisFormName)) - 2*2 nTabHeight := GetWindowHeight(GetControlHandle('Tab_1', _HMG_ThisFormName)) - 1 В отдельном проекте компилируется и собирается нормально. Как в большой проект засовываешь - всё СТОП работа. Функции FUN_GETWINDOWWIDTH такой действительно нет. Там должно срабатывать из i_controlmisc.ch #xtranslate GetWindowWidth ( <hWnd> ) ; => ; GetWindowRect( <hWnd>, 3 ) Чем больше текста, тем хуже компилятор Харбора справляется с работой ?

Haz: Andrey пишет: Даже ставил ThisWindow.Release - бестолку, может проблема в том что требуется блок кода, а не список процедур в скобках ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) ) ; не проверял , но так как выше я писать точно не стал бы а с этим тоже не ботает ? ON MOUSEHOVER { || SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) } ;

Dima: Haz Глаз алмаз

Andrey: Haz пишет: может проблема в том что требуется блок кода, а не список процедур в скобках ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) ) ; Как Григорий дал, так и использую.... Отсебятины не делал.

Andrey: Чем больше текста, тем хуже компилятор Харбора справляется с работой ? Вручную в начале программы где использую GetWindowWidth и GetWindowHeight поставил: #xtranslate GetWindowWidth ( <hWnd> ) => GetWindowRect( <hWnd>, 3 ) #xtranslate GetWindowHeight ( <hWnd> ) => GetWindowRect( <hWnd>, 4 ) Тогда собралась программа. Но это же неправильно ! Может какие то ограничения у Харбора при компиляции ?

Andrey: Haz пишет: а с этим тоже не ботает ? ON MOUSEHOVER { || SetProperty(ThisWindow.Name, This.Name, "ICON", "iExit48x2") ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aButtColor2 ) } ; Нет не заработало... Придется наверно отдельную функцию писать... Чем больше текст, тем меньше вероятности его компиляции...

Haz: Andrey пишет: Отсебятины не делал. в этом и все дело, это как списать пример в школе не понимая решения. Андрей, компилятор всегда ведет себя одинаково, что маленький проект , что большой. Разница может быть только в том , что компилятору скармливают. на входе ( инклюды , объявления и пр ) У меня ни разу не было ситуации что тестовый код при включении в проект вел себя по другому ( при идентичности условий компиляции ). Компилятор проверяет лексику и синтаксис ( скобки , ключевые конструкции, объявления ) , но не логику. Раз ругань идет от компилятора - проверяй синтаксис , парные операнды, парные конструкции , скобки, и пр. чудес не бывает.

Haz: Andrey пишет: Нет не заработало так там не один HOVER со скобками круглыми в куске кода, еще и MOUSELEAVE есть такой же Andrey пишет: Чем больше текст, тем меньше вероятности его компиляции.. тем больше вероятности в нем накосячить , а свалить на компилятор

Andrey: Haz пишет: так там не один HOVER со скобками круглыми в куске кода, еще и MOUSELEAVE есть такой же Оба сделал, несколько раз перепроверил. Не работает. Haz пишет: тем больше вероятности в нем накосячить , а свалить на компилятор Ну не понимаю я. Сделал отдельный проект - 450 Кб текстов программ. Оттестировал, собирается - короче работает. Добавляю в большой проект - перестаёт компилироваться. Ошибки выше. Поборол компиляцию (закомментировал пока), вылазит ошибка - нету функций. Препроцессор сдох... Ручками добавил - заработало. Ну это разве работа ? Вот и спрашиваю, может слишком много текстов программ, увеличить надо какие то параметры для препроцессора и самого компилятора ? Проект то ещё пока не шибко большой: 2 Мб текстов, ехе-ник сам всего 8 Мб.

Haz: Andrey пишет: Проект то ещё пока не шибко большой: 2 Мб не аргумент ... Исходники MiniGui 6МБ и компилятор их жует отлично. Проверяй так 1 ) в MOUSEHOVER и MOUSELEAVE поставь {|| NIL } Если собирается косяк в этих кусках кода, не собирается - не в этиж 2) Упрости максимально @ BUTTONEX ,,,, в одну строку в ACTION {|| NIL } собирается - расскрывай все что дописал. Ну и надеюсь 2МБ это модули а не одним куском ( и модули независимые а не один живет в другом в виде include module2.prg )

Andrey: Haz пишет: Ну и надеюсь 2МБ это модули а не одним куском ( и модули независимые а не один живет в другом в виде include module2.prg ) Конечно модули, отдельные-независимые программы.

Haz: Andrey пишет: Конечно модули, отдельные-независимые программы. т.е. тогда какойто отдельный модуль не компилится ? Ищи в нем косяк , на чем спотыкается компилятор - закоменти код ставь заглушки. Тебе важно понять причину а не обойти ее ( т.к. не первый раз спотыкаешься )

Dima: Из хелпа [ ON GOTFOCUS | ON MOUSEHOVER <OnGotfocusProcedure | bBlock> ] Поэтому или процедура или блок. Перечисление функций в скобках видимо не прокатит.

SergKis: Andrey глянь препроцессор и попробуй obj из тестового (работающего) проекта включить в большой. может проще не куски кода таскать, а формировать lib и ее включать в проекты



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