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




Пост N: 1929
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)


Всем привет.
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....

Очень красочный пример: \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.



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Andrey
постоянный участник




Пост N: 4133
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 14:43. Заголовок: SergKis пишет: а дл..


SergKis пишет:

 цитата:
а для запомининия в aLogic:


ON CHANGE {|nNr| nNr := _SetGetUserData(_HMG_THISCONTROLNAME, _HMG_THISFORMNAME), ;
aLogic[ nNr ] := This.Value, ;
MsgDebug(nNr, aLogic[ nNr]) }


Не работает, выдаёт:
Error BASE/1069 Неверный аргумент: доступ к массиву
Called from (b)MYPAGE_MAINMENU(230)
Called from _DOCONTROLEVENTPROCEDURE(1654)
Called from EVENTS(1523)



Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4766
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.15 14:46. Заголовок: Andrey пишет: При р..


Andrey пишет:

 цитата:
При редактировании выдаёт ошибку:
Error BASE/1133 Переполнение массива: доступ к массиву
Called from (b)MYPAGE_MAINMENU(230)

Значение nI == 9



Кхм а откуда там 9 получилось если заполнялось до 8 ?

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




Пост N: 4134
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 14:54. Заголовок: Dima пишет: Кхм а о..


Dima пишет:

 цитата:
Кхм а откуда там 9 получилось если заполнялось до 8 ?


А я откуда знаю... Что получил, то и спросил...



Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4770
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.15 14:58. Заголовок: Andrey пишет: А я о..


Andrey пишет:

 цитата:
А я откуда знаю... Что получил, то и спросил...


FOR nI := 1 TO 8
NEXT

? nI // 9 однако

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




Пост N: 4135
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 15:00. Заголовок: Andrey пишет: Не ра..


Andrey пишет:

 цитата:
Не работает, выдаёт:
Error BASE/1069 Неверный аргумент: доступ к массиву



Понял, получилось. Вот так работает:

FOR nI := 1 TO 8
nRow := aRow[nI] + nHButt + 5
nCol := aCol[nI] + 10 //nWButt
@ nRow, nCol CHECKBOX &cObjLog ;
CAPTION 'Включить ХХХХ' ;
VALUE aLogic[nI] ;
WIDTH nWButt-20 HEIGHT 20 ;
FONTCOLOR RED ;
SIZE 11 TRANSPARENT ;
ON CHANGE {|nNr| nNr := _SetGetUserData(_HMG_THISCONTROLNAME, _HMG_THISFORMNAME), ;
aLogic[ nNr ] := This.Value, ;
MsgDebug(nNr, aLogic[ nNr]) }

_SetGetUserData(cObjLog, _HMG_THISFORMNAME, nI) // запомнило в Cargo

NEXT

Спасибо БОЛЬШОЕ SergKis !

Пример бы такой нужен в библиотеке Григорию !!!
А то в цикле не всегда получается вывести/построить объекты. Целая наука.
_SetGetUserData(cObjLog, _HMG_THISFORMNAME, nI) // запомнило в Cargo - нигде не встречал, а если и видел, то и не понял для чего...
Посмотрел специально, есть только в одном исходнике: h_controlmisc.prg

SergKis - колдун он однако....


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4772
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.15 15:09. Заголовок: Andrey пишет: FOR n..


Andrey пишет:

 цитата:
FOR nI := 1 TO 8
nRow := aRow[nI] + nHButt + 5
nCol := aCol[nI] + 10 //nWButt



Да оно бы и так вот работало бы

FOR nI := 1 TO 8
XnI:=nI
nRow := aRow[XnI] + nHButt + 5
nCol := aCol[XnI] + 10
и так далее

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




Пост N: 4136
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.15 15:14. Заголовок: Dima пишет: Да оно ..


Dima пишет:

 цитата:
Да оно бы и так вот работало бы


Неа, не заработало бы... Я долго мучился... Проверь сам, если не веришь...

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




Пост N: 613
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.04.15 15:44. Заголовок: Andrey Трать немног..


Andrey
Трать немного времени на мат. часть. Примеры с cargo есть: BASIC\Cargo\*.prg
Есть UTILS\FuncList\*.*

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




Пост N: 615
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.04.15 16:13. Заголовок: Andrey пишет: нигде ..


Andrey пишет:
 цитата:
нигде не встречал, а если и видел, то и не понял для чего...


для работы с cargo контрола достаточно:
SetProperty(cFormName, cControlName, 'Cargo', xValue)
GetProperty(cFormName, cControlName, 'Cargo')
а _SetGetUserData(...) это обертка, в minigui их много. Примеры использования см. в i_pseudofunc.ch


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 546
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.04.15 10:04. Заголовок: SergKis пишет: А то..


Andrey пишет:

 цитата:
А то в цикле не всегда получается вывести/построить объекты. Целая наука


Нет там никакой науки, это еще с 90х годов аксиомы из Clipper
1) цикл FOR работает так - сначала увеличивает переменную потом проверяет на достижение граничного значения. Отсюда и 9 . И так было всегда
2) кодовый блок в который передается переменная при исполнении использует значение переменной на момент этого исполнения ( в твоем примере 9 ) и так тоже было всегда.

Объекты тут не при чем - в цикле формируется кодовый блок использующий переменную цикла , в любом подобном коде будет использоваться значение переменной на момент исполнения. Выход - передавать не переменную а ее значение в блок ( это как вариант с макроподстановкой ) или как пишет SergKis запоминать это значение , а потом его использовать. Cargo есть почти у всех объектов ( кстати у того-же Clipper тоже есть в его объектах тоже с 90х выучить времени полно было ) и значение переменной цикла можно сохранить там и использовать в блоке


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




Пост N: 4137
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.04.15 13:53. Заголовок: Haz пишет: у того-ж..


Haz пишет:

 цитата:
у того-же Clipper тоже есть в его объектах тоже с 90х выучить времени полно было


Согласен, во время не выучил...
Haz пишет:

 цитата:
и значение переменной цикла можно сохранить там и использовать в блоке


Покажи пожалуйста как ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4777
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.04.15 14:31. Заголовок: Andrey Ну так на ст..


Andrey
Ну так на странице 10 все ж есть

Andrey пишет:

 цитата:
Haz пишет:

цитата:
было в твоих вопросах , с другим контролом правда ...но было.


Да, точно, было. Памяти точно уже нет.
Спасибо за подсказку !



ЗЫ
Тут подход нужен как к выражениям фильтра для ADS.
Например вот такое выражение ADS поймет
'KOD_KL==3'

А если вот так , то нет
NKOD:=3
'KOD_KL==NKOD'

Посему нужно передавать значение
'KOD_KL=='+Ntoc(NKOD)
или так
'KOD_KL=='+HB_NtoS(NKOD)



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




Пост N: 616
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.04.15 17:55. Заголовок: Haz SergKis пишет: ..


Haz

 цитата:
SergKis пишет: цитата:
А то в цикле не всегда получается вывести/построить объекты. Целая наука


Это Andrey пишет Отправлено: Вчера 15:00. ...

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




Пост N: 4138
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.04.15 18:07. Заголовок: Haz пишет: цитата: ..


Haz пишет:

цитата:
было в твоих вопросах , с другим контролом правда ...но было.

Контрол был другой. Я его нашёл. Вот он:
bBlock := "{ || MEMOLINE("+ALIAS()+"->"+cField+","+HB_NTOS(LEN(cStr))+",1) }"
oBrw:aColumns[nJ]:bData := &( bBlock )
oBrw:aColumns[nJ]:Cargo := cField
oBrw:aColumns[nJ]:lEdit := .T.
oBrw:aColumns[nJ]:bPrevEdit := { || FORMA_MEMO( oBrw:aColumns[oBrw:nCell]:cHeading, oBrw:aColumns[oBrw:nCell]:Cargo ), FALSE }
Но он в данном случае к вопросу не подходит !
Из - за этого и пишу как сделать для: "и значение переменной цикла можно сохранить там и использовать в блоке" ?



Спасибо: 0 
Профиль
Haz
администратор




Пост N: 547
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.04.15 18:47. Заголовок: SergKis пишет: Это ..


SergKis пишет:

 цитата:
Это Andrey пишет Отправлено: Вчера 15:00. ...


Извиняюсь .... не обратил внимания кого автором цитаты показало. Не специально чес слово

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




Пост N: 617
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.04.15 20:09. Заголовок: Andrey пишет:Но он в..


Andrey пишет:
 цитата:
Но он в данном случае к вопросу не подходит !


Все подходит и делается примерно также. У тебя
bBlock := "{ || MEMOLINE("+ALIAS()+"->"+cField+","+HB_NTOS(LEN(cStr))+",1) }"
теперь то, о чем вопрос ( как сделать для:...):
FOR i := 1 TO k
bBlock := &( "{|nNr| nNr := "+hb_ntos(i)+", aLogic[nNr] := This.Value, MsgDebug(nNr, aLogic[nNr] }" )
... // или через Cargo из примера
NEXT
блока кода отличается, только тем, что завели переменную для него (могли исполтзовать и local из prg), но это давние дела ...

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




Пост N: 618
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.04.15 20:12. Заголовок: PS к MsgDebug скобку..


PS к MsgDebug скобку пропустил в конце

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




Пост N: 619
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.04.15 21:33. Заголовок: SergKis пишет:могли ..


SergKis пишет:
 цитата:
могли исполтзовать и local из prg


уточню в таком блоке (не по макро):
Local nNr
{|| nNr := This.Value }
в макро можно private, public

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 548
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.04.15 21:56. Заголовок: Andrey пишет: Как е..


Andrey пишет:

 цитата:
Как еще можно сделать чтобы заработало ?


вроде можно и так
ON CHANGE {|| aLogic[cton(Substr(This.Name,7))] := This.Value }

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4780
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.04.15 22:53. Заголовок: Haz пишет: Не специ..


Haz пишет:

 цитата:
Не специально чес слово


Это результат не правильной отметки текста и затем цитирования. Проверь
Сам не раз на это попадал ))

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 236
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет