Автор | Сообщение |
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.
|
|
|
Ответов - 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)
|
|
|
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 ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4134
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.04.15 14:54. Заголовок: Dima пишет: Кхм а о..
Dima пишет: цитата: | Кхм а откуда там 9 получилось если заполнялось до 8 ? |
| А я откуда знаю... Что получил, то и спросил...
|
|
|
Dima
|
| |
Пост N: 4770
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.04.15 14:58. Заголовок: Andrey пишет: А я о..
Andrey пишет: цитата: | А я откуда знаю... Что получил, то и спросил... |
| FOR nI := 1 TO 8 NEXT ? nI // 9 однако
|
|
|
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 - колдун он однако....
|
|
|
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 и так далее
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4136
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.04.15 15:14. Заголовок: Dima пишет: Да оно ..
Dima пишет: цитата: | Да оно бы и так вот работало бы |
| Неа, не заработало бы... Я долго мучился... Проверь сам, если не веришь...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 613
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.04.15 15:44. Заголовок: Andrey Трать немног..
Andrey Трать немного времени на мат. часть. Примеры с cargo есть: BASIC\Cargo\*.prg Есть UTILS\FuncList\*.*
|
|
|
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
|
|
|
Haz
|
| |
Пост N: 546
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.04.15 10:04. Заголовок: SergKis пишет: А то..
Andrey пишет: цитата: | А то в цикле не всегда получается вывести/построить объекты. Целая наука |
| Нет там никакой науки, это еще с 90х годов аксиомы из Clipper 1) цикл FOR работает так - сначала увеличивает переменную потом проверяет на достижение граничного значения. Отсюда и 9 . И так было всегда 2) кодовый блок в который передается переменная при исполнении использует значение переменной на момент этого исполнения ( в твоем примере 9 ) и так тоже было всегда. Объекты тут не при чем - в цикле формируется кодовый блок использующий переменную цикла , в любом подобном коде будет использоваться значение переменной на момент исполнения. Выход - передавать не переменную а ее значение в блок ( это как вариант с макроподстановкой ) или как пишет SergKis запоминать это значение , а потом его использовать. Cargo есть почти у всех объектов ( кстати у того-же Clipper тоже есть в его объектах тоже с 90х выучить времени полно было ) и значение переменной цикла можно сохранить там и использовать в блоке
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4137
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.04.15 13:53. Заголовок: Haz пишет: у того-ж..
Haz пишет: цитата: | у того-же Clipper тоже есть в его объектах тоже с 90х выучить времени полно было |
| Согласен, во время не выучил... Haz пишет: цитата: | и значение переменной цикла можно сохранить там и использовать в блоке |
| Покажи пожалуйста как ?
|
|
|
|
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)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 616
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.04.15 17:55. Заголовок: Haz SergKis пишет: ..
Haz цитата: | SergKis пишет: цитата: А то в цикле не всегда получается вывести/построить объекты. Целая наука |
| Это Andrey пишет Отправлено: Вчера 15:00. ...
|
|
|
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 } Но он в данном случае к вопросу не подходит ! Из - за этого и пишу как сделать для: "и значение переменной цикла можно сохранить там и использовать в блоке" ?
|
|
|
Haz
|
| |
Пост N: 547
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.04.15 18:47. Заголовок: SergKis пишет: Это ..
SergKis пишет: цитата: | Это Andrey пишет Отправлено: Вчера 15:00. ... |
| Извиняюсь .... не обратил внимания кого автором цитаты показало. Не специально чес слово
|
|
|
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), но это давние дела ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 618
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.04.15 20:12. Заголовок: PS к MsgDebug скобку..
PS к MsgDebug скобку пропустил в конце
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 619
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.04.15 21:33. Заголовок: SergKis пишет:могли ..
SergKis пишет: цитата: | могли исполтзовать и local из prg |
| уточню в таком блоке (не по макро): Local nNr {|| nNr := This.Value } в макро можно private, public
|
|
|
Haz
|
| |
Пост N: 548
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.04.15 21:56. Заголовок: Andrey пишет: Как е..
Andrey пишет: цитата: | Как еще можно сделать чтобы заработало ? |
| вроде можно и так ON CHANGE {|| aLogic[cton(Substr(This.Name,7))] := This.Value }
|
|
|
Dima
|
| |
Пост N: 4780
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.04.15 22:53. Заголовок: Haz пишет: Не специ..
Haz пишет: Это результат не правильной отметки текста и затем цитирования. Проверь Сам не раз на это попадал ))
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|