On-line: MIKHAIL, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 2751
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.03.13 17:04. Заголовок: Опять грабли при компиляции/выполнении....


Собираю прогу на МиниГуи.

С главной формы вызываю окно MODAL (находиться в FormaConfig.frm)
Есть файл в котором описаны функции для этой формы Config.prg
Для примера кусочек:
Скрытый текст


Но при сборке, выдает ошибку:
Source\config.prg(9) Error E0030 Syntax error "syntax error at '.'"
Source\config.prg(13) Error E0030 Syntax error "syntax error at '.'"
Source\config.prg(14) Error E0030 Syntax error "syntax error at '.'"


Если поставить SetProperty("FormaConfig", "Text_1", "Value", cTemp) на 9 строке и т.д., то
компиляция проходит и все работает...

А как сделать чтобы работало с предыдущим синтаксисом ?
FormaConfig.Text_1.Value := cTemp // 9 строка


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 19 [только новые]





Пост N: 767
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 16.03.13 19:00. Заголовок: проверить доступны л..


проверить доступны ли ch файлы.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 44
Зарегистрирован: 28.07.10
ссылка на сообщение  Отправлено: 17.03.13 05:31. Заголовок: задекларируй окно до..


задекларируй окно до его использования
DECLARE WINDOW <WindowName>

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2752
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.13 12:52. Заголовок: AlexMyr пишет: пров..


AlexMyr пишет:

 цитата:
проверить доступны ли ch файлы.


Все доступно.

Разобрался я. Нужно в файл Config.prg перенести загрузку формы:
Load Window FormaConfig
FormaConfig.Center
.............

До этого у меня загрузка формы стояло в другом prg.




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 8
Зарегистрирован: 21.02.13
ссылка на сообщение  Отправлено: 18.03.13 01:30. Заголовок: Переносить необязат..



Переносить необязательно.
Нужно чтобы компилятор знал об окне и правильно понял синтаксис.
Для этого нужно объявить о том что FormaConfig это окно.
Для этого в начале модуля до операций с окном написать
DECLARE WINDOW FormaConfig

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2858
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.13 12:30. Заголовок: SadStar55 пишет: Дл..


SadStar55 пишет:

 цитата:
Для этого в начале модуля до операций с окном написать
DECLARE WINDOW FormaConfig



А в конце модуля, закрывать это окно не надо ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2859
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.13 15:46. Заголовок: Далаю так: DECLARE W..


Далаю так:
DECLARE WINDOW Form_Main

////////////////////////////////////////////////////////////////////////////
FUNCTION PrintCheck()
.....
MsgInfo( Form_Main.ComboEx_City.Value + CRLF + Form_Main.ComboEx_Street.Value )
-------------------
или так
cStatCity := "г."+ALLTRIM(Form_Main.ComboEx_City.Value)
cStatStreet := ALLTRIM(Form_Main.ComboEx_Street.Value )
MsgInfo( cStatCity + CRLF + cStatStreet , PROGRAM)

Программа висит !!! После закрытия все равно остается в памяти 2.5 Мб "висящей" (на экране нет) !!!

Я понял потом что это числа (а я к строке преобразую), но ошибку не выдает же, а просто вешает программу !!!
Как убрать этот глюк ???



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2860
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.13 16:43. Заголовок: Вот еще одна ошибка,..


Вот еще одна ошибка, при которой вешается программа:
BASE866->Podezd := IIF(ABONENT->NumPodezd>0,ALLTRIM(STR(ABONENT->NumPPodezd)),"" )

т.е. если такой переменной в базе нет (NumPPodezd) - прога "вешается",
а сообщение об ошибке НЕТ !!!

Как сделать, чтобы ошибка появлялась ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 485
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.06.13 16:49. Заголовок: Andrey пишет: Как у..


Andrey пишет:

 цитата:
Как убрать этот глюк


Просто вместо функции MsgInfo() надо использовать в таком случае функцию MsgDebug()
Что-то типа
MsgDebug( "г.", Form_Main.ComboEx_City.Value, Form_Main.ComboEx_Street.Value )

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2861
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.13 20:46. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Что-то типа
MsgDebug(


Спасибо ! Хорошия функция....

А как быть с ошибками с кодом (написано выше) ?
Вот еще одна ошибка, когда программа просто завершается без вывода об ошибке:
DO WHILE !EOF()
IF !DELETED()
IF STREET-KVIEW == 1 // здесь случайно допустил ошибку "->"
AAdd( M->aDimStreet, { ALLTRIM(FIELD->STREET) , FIELD->KSTREET } )
AAdd( M->aDimStreetCity, FIELD->KCITY )
ENDIF
ENDIF
SKIP
ENDDO

IF STREET-KVIEW == 1 // здесь случайно допустил ошибку вместо "->" поставил "-"
Программа на этом месте просто закрывается, как выполненная и все !!!
Терминалка бы выдала ошибку, а МиниГуи - НЕТ !!!
Версия MiniGUI : 2.2.3 - 2013.06.12
Как быть в таких случаях ???



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 40
Зарегистрирован: 07.06.08
ссылка на сообщение  Отправлено: 18.06.13 07:36. Заголовок: Интересно, но разная..


Интересно, но разная реакция на ошибку
*-------------------------------
Procedure SomeError()
*-------------------------------
Local Var1 As Numeric
Local Var2 As String
Local a:="1"+1 //программа зависает
// ASSIGN Var2 := Var1 + 1 // а если так, то выдается корректный стек ошибок

Return


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 35
Зарегистрирован: 24.02.11
ссылка на сообщение  Отправлено: 20.06.13 16:13. Заголовок: IF STREET-KVIEW == 1..



 цитата:
IF STREET-KVIEW == 1



А здесь нет синтаксической ошибки. Из переменной STREET вычитается переменная KVIEW и сравнивается с 1. Если переменные не определены, то результатом будет .F. То, что под IF-ом, просто пропускается.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2864
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.06.13 17:55. Заголовок: vvv пишет: Если пер..


vvv пишет:

 цитата:
Если переменные не определены, то результатом будет .F.


Неверно ! Если переменные не определены, то будет ошибка !!!
Date: 06/20/13 Time: 18:49:40
Error BASE/1003 Variable does not exist: STREET
Called from TEST(34)
Called from (b)MAIN(21)
Called from _PROCESSINITPROCEDURE(1445)
Called from _ACTIVATEWINDOW(1311)
Called from DOMETHOD(4645)
Called from MAIN(26)


Вот самодостаточный пример:
Скрытый текст


Просто у меня в программе вывод при ошибке ВООБЩЕ перестал работать ....
Программа просто вешается и все... Может из-за Win8... Хотя маленькие примеры дают ошибку...
И почему, не могу понять ???

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 36
Зарегистрирован: 24.02.11
ссылка на сообщение  Отправлено: 21.06.13 05:03. Заголовок: По поводу приведенно..


По поводу приведенного примера - если в открытых базах есть числовые поля с именами STREET и KVIEW, то без инициализации возьмутся значения этих полей и все проскочит, т.е. ошибки не будет.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2895
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.07.13 14:45. Заголовок: Взял и откомпилирова..


Взял и откомпилировал проект 2011 года и ерунда выходит:

Harbour 3.2.0dev (r1306061203)
Copyright (c) 1999-2013, http://harbour-project.org/

Source\fabout.fmg(4) Error E0030 Syntax error "syntax error at 'WINDOW'"
Source\fabout.fmg(6) Error E0030 Syntax error "syntax error at 'LABEL'"
...............
Source\fabout.fmg(226) Error E0030 Syntax error "syntax error at 'END'"
Source\fabout.fmg(228) Error E0030 Syntax error "syntax error at 'END'"
206 errors
No code generated.
hbmk2[мой-проект]: Error: Running Harbour compiler (embedded). 1


Я так понял, что 4 строка в Source\fabout.fmg неправильная...
Вот её привожу полностью:
DEFINE WINDOW TEMPLATE AT 140 , 316 WIDTH 725 HEIGHT 510 TITLE "Об Авторах" ICON "iProgramm" MODAL NOSIZE NOSYSMENU BACKCOLOR {114,234,243}

Что исправить для новой версии МиниГуи ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2896
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.07.13 14:46. Заголовок: Dima пишет: CH фaйл..


Dima пишет:

 цитата:
CH фaйлик мож какой забыл приинклудить ?


Нет. В проекте все указал:
# включить путь к MiniGui и своим *.ch и *.fmg
-incpath=Z:\MiniGUI\Include
-incpath=Source
-incpath=Include

P.S. До этого собирал хМаte - и сейчас собирается им...
Сделал новый проект для hbmk2.exe и теперь не собирается... Хотя другие аналогичные проекты у меня собираются...
Вот мой файл проекта .... Скрытый текст

Собираю так: z:\MiniGui\batch\hbmk2.bat SberBANK-unzip.hbp

Подскажите что не так делаю ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3272
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.07.13 21:28. Заголовок: Andrey пишет: # вкл..


Andrey пишет:

 цитата:
# включить путь к своим *.ch
-incpath=Include
# включить путь к своим *.fmg
-incpath=Source



а пути не надо указывать ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2897
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.07.13 23:23. Заголовок: Dima пишет: а пути ..


Dima пишет:

 цитата:
а пути не надо указывать ?


Только что проверил на другом проекте, все нормально собирается...
# Incremental-режим компиляции
-inc
# папка где будут все *.obj
-workdir=OBJ
# Имя EXE-модуля
-otxt_dbf.exe
# включить путь к MiniGui и своим *.ch и *.fmg
-incpath=Z:\MiniGUI\Include
-incpath=Source
-incpath=Include

# перечисляем все *.prg
# --------- перенести все файлы в папку Source ------------
Source\main.prg
Source\edit.prg
Source\structura.prg
Source\util_MiniGui.prg
Source\copy_files.prg
Source\otchet.prg
Source\FastRepH.prg
Source\myFastReport.prg
..................


В этом старом проекте не работает (наверное) связка:
fAbout.fmg (любая *.fmg) и "minigui.ch"

Форма fAbout.fmg вызывается из основного модуля SBU.prg:

#include "minigui.ch"
#include "mydefines.ch"

FUNCTION Main
...........
//
FUNCTION LoadAbout()
Load Window fAbout
fAbout.Center
fAbout.Activate
RETURN Nil

И ошибку показывает только для одного fAbout.fmg:
Harbour 3.2.0dev (r1306061203)
Copyright (c) 1999-2013, http://harbour-project.org/
Source\fAbout.fmg(4) Error E0030 Syntax error "syntax error at 'WINDOW'"
Source\fAbout.fmg(6) Error E0030 Syntax error "syntax error at 'LABEL'"
Source\fAbout.fmg(7) Error E0030 Syntax error "syntax error at '140'"
Source\fAbout.fmg(8) Error E0030 Syntax error "syntax error at '10'"
.........
Source\fAbout.fmg(226) Error E0030 Syntax error "syntax error at 'END'"
Source\fAbout.fmg(228) Error E0030 Syntax error "syntax error at 'END'"
206 errors

No code generated.
hbmk2[SberBANK-unzip]: Error: Running Harbour compiler (embedded). 1

Поменял местами в SberBANK-unzip.hbp файлы ( поставил первым fconfig.fmg после prg)
и получил ту же самую ошибку как в первом разе:
Harbour 3.2.0dev (r1306061203)
Copyright (c) 1999-2013, http://harbour-project.org/
Source\fconfig.fmg(4) Error E0030 Syntax error "syntax error at 'WINDOW'"
Source\fconfig.fmg(6) Error E0030 Syntax error "syntax error at 'TEXTBOX'"

А через xMate проект собирается ...
Что делать ?



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2898
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.07.13 12:45. Заголовок: Сделал следующее. В ..


Сделал следующее. В каждую форму *.fmg поставил строчку:
#include "minigui.ch"

Компиляция прошла успешно, ехе-ник собирается.
Правда пришлось ВСЕ кнопки выхода закоментировать (ACTION NIL), не хочет компилировать вот такую строчку:
Скрытый текст

Выдает ошибку:
Harbour 3.2.0dev (r1306061203)
Copyright (c) 1999-2013, http://harbour-project.org/
Source\fconfig.fmg(138) Error E0030 Syntax error "syntax error at '.'"
1 error
No code generated.

138 строка это - ACTION fConfig.Release

Резуме:
1) почему не работает сборка при связки - PRG + FMG ?
2) почему появляется ошибка Syntax error "syntax error at '.'" в ACTION fConfig.Release ?



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2899
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.07.13 22:11. Заголовок: Andrey пишет: Резум..


Andrey пишет:

 цитата:
Резуме:
1) почему не работает сборка при связки - PRG + FMG ?
2) почему появляется ошибка Syntax error "syntax error at '.'" в ACTION fConfig.Release ?



Разобрался я с этим... Все очень просто...
Оказывается в файл проекта НЕНУЖНО вносить файлы *.fmg ....
И все заработало ....

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 169
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет