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




Пост 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 
ПрофильЦитата Ответить
Ответов - 199 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]


moderator


Пост N: 1319
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 19.09.18 17:15. Заголовок: Сергей Даже не знаю..


Сергей

 цитата:
Даже не знаю, что сказать ....



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




Пост N: 6056
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.09.18 14:20. Заголовок: Всем привет ! Есть л..


Всем привет !
Есть ли стандартный объект типа MsgInfo только с прокруткой текста, который выводишь ?
Или самому придётся делать такое окно ?
А то у меня в MsgInfo не помещается весь текст и кнопки не видно.
Вот так на экране обрезает:

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




Пост N: 6087
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.10.18 17:18. Заголовок: Haz пишет: Ты же са..


Haz пишет:

 цитата:
Ты же сам в прошлом посте писал как это лечится


Не лечиться, тогда начинает бровс на экране мелькать.
На тяжёлых операциях, PACK, ZAP или таких:
    For nI := 1 TO Len(aArray)  
if ! empty(aArray[ nI ])
ADD ITEM aArray[ nI ] TO &cBrw OF &cForm // вариант 1
EndIf
IF nI % 500
DO EVENTS // чтобы показывать прелодер из WaitThreadCreate()
ENDIF
Next

Прелодер показывается белым, без картинки и лепестки не крутятся.
Такое впечатление что поток "замерз".
Хотя бы картинку первую показывал. Почему не показывает, не знаю.
Вот код из примера SAMPLES\BASIC\WAIT_WINDOW_2\demo2.prg:
FUNCTION WaitThreadCreate( cTitle )  
....
DEFINE WINDOW &cFormName ;
....
@ 40, (420-128)/2 IMAGE Image_1 PICTURE aStatPictWait[1] ;
WIDTH 128 HEIGHT 128 STRETCH WHITEBACKGROUND TRANSPARENT

END WINDOW

Center Window &cFormName
Activate Window &cFormName NoWait

// Start preloding in a separate thread
// Запускаем preloding в отдельном потоке
hb_threadDetach( hb_threadStart( HB_THREAD_INHERIT_MEMVARS, @WaitThreadTimer(), SECONDS() ) )

RETURN NIL


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


Пост N: 1380
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.10.18 17:46. Заголовок: Andrey пишет: For n..


Andrey пишет:

 цитата:
For nI := 1 TO Len(aArray)
if ! empty(aArray[ nI ])
ADD ITEM aArray[ nI ] TO &cBrw OF &cForm // вариант 1
EndIf
IF nI % 500
DO EVENTS // чтобы показывать прелодер из WaitThreadCreate()
ENDIF
Next


Так ты убрал отсюда заполнение бровса или нет

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


Пост N: 1381
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.10.18 17:50. Заголовок: В общем повторюсь о ..


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

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



Пост N: 2111
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.10.18 18:04. Заголовок: Haz пишет Подготовил..


Haz пишет
 цитата:
Подготовил данные, дай их бровсу через сетаррай и все.


Еще проще, до окна запусти прелодер, формируй в это время массив
по завершении создавай окно с тсб и в on init убирай прелодер и работай.
Ты все проделываешь, наверно, в on init ?

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




Пост N: 6089
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.10.18 18:06. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще проще, до окна запусти прелодер, формируй в это время массив
по завершении создавай окно с тсб и в on init убирай прелодер и работай.


Да я так и сделал ! Скорость возрасла, несмотря на большые данные.

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



Пост N: 2112
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.10.18 18:08. Заголовок: Andrey пишет Вот код..


Andrey пишет
 цитата:
Вот код из примера


То пример, а у тебя программа - это может быть большая разница

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




Пост N: 6091
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.10.18 18:09. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще проще, до окна запусти прелодер, формируй в это время массив
по завершении создавай окно с тсб и в on init убирай прелодер и работай.


Да я так и сделал ! Скорость возрасла, несмотря на большые данные.

Haz пишет:

 цитата:
Так ты убрал отсюда заполнение бровса или нет


Да !
Я ушёл от этого.
Сейчас другая проблема.
Первое окно прелодера - белое, без картинки.
Как сделать чтобы первое окно было с картинкой ?
Вот код из примера SAMPLES\BASIC\WAIT_WINDOW_2\demo2.prg:
FUNCTION WaitThreadCreate( cTitle )   
....
DEFINE WINDOW &cFormName ;
....
@ 40, (420-128)/2 IMAGE Image_1 PICTURE aStatPictWait[1] ;
WIDTH 128 HEIGHT 128 STRETCH WHITEBACKGROUND TRANSPARENT

END WINDOW

Center Window &cFormName
Activate Window &cFormName NoWait

InkeyGui(100)
DO EVENTS // поставил так, всё равно картинки нет !

// Start preloding in a separate thread
// Запускаем preloding в отдельном потоке
hb_threadDetach( hb_threadStart( HB_THREAD_INHERIT_MEMVARS, @WaitThreadTimer(), SECONDS() ) )

RETURN NIL


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




Пост N: 6092
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.10.18 18:10. Заголовок: SergKis пишет: То п..


SergKis пишет:

 цитата:
То пример, а у тебя программа - это может быть большая разница


Прелодер - один в один как и SAMPLES\BASIC\WAIT_WINDOW_2\demo2.prg

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



Пост N: 2113
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.10.18 18:24. Заголовок: Andrey Я без потоко..


Andrey
Я без потоков делаю, если это в пределах до 60 сек. обхожусь сообщением (+может быть счетчик в StatusBar)
Если использую окно с progressbar, так в таком виде вызов Do_WaitWindow( {|o| Otbor(o) } )
сама ф-я такая Скрытый текст

как то хватает.
В твоем случае нет прорисовки

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




Пост N: 6093
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.10.18 18:34. Заголовок: SergKis пишет: В тв..


SergKis пишет:

 цитата:
В твоем случае нет прорисовки


А почему ? Простой же код.
Не смертельно, но просто некрасиво.
В цикле с базой работает, а на тяжёлых операциях нет прорисовки и всё тут.
Делал даже так:
   // создаём окно ожидания с потоком 
WaitThreadCreate( 'Расчёт по отчёту ...' )
InkeyGui(100)
DO EVENTS

Всё равно нет прорисовки иногда.

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


Пост N: 1382
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 28.10.18 18:07. Заголовок: Не видно всего кода,..


Не видно всего кода, но такое ощущение что do events лишь бы впихнуть куда. Зачем он после запуска потока,? здесь самое нагруженное место в коде? А в цикле формирования массива данных он есть? Кажется что нет.
Могу ошибаться не видя код. Но что то мне подсказывает что не ошибаюсь

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


Пост N: 1483
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 28.10.18 19:23. Заголовок: Haz пишет: такое ощ..


Haz пишет:

 цитата:
такое ощущение что do events лишь бы впихнуть куда


У меня тоже. Андрей, DO EVENTS нужно ставить в "долгих циклах", чтобы приложение "не зависало".

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




Пост N: 6094
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.10.18 01:05. Заголовок: Haz пишет: Могу оши..


Haz пишет:

 цитата:
Могу ошибаться не видя код. Но что то мне подсказывает что не ошибаюсь


Буду тогда пробовать написать отдельный тест.

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




Пост N: 6117
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.11.18 14:31. Заголовок: Возвращаюсь опять к ..


Возвращаюсь опять к нерешённому вопросу.
У меня в проктах (некоторых) каталог по русски.
При компиляции проекта (через hbmk2.bat) файл error.log (и на экране) получается с кракозябами и сердечками...
И ошибок толком не видно !!!

Вопрос - куда поставить (в какой файл) определение кодировки:
chcp 65001
чтобы файл error.log создавался читаемым ?
Да и в поставку МиниГуи не плохо бы внести такое усовершенствование.

Пробовал поставить в hbmk2.bat , сердечки пропадают, но пути все равно нет:
Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland
Error: Unresolved external '_HB_FUN_SHOW2TSB' referenced from W:\HB_PROJECT\ABON4PRJ\└┴╬═┼═╥\TBRW_TABLE3.LIB|form_AbonYearCalc
hbmk2[form_Sprav_List]: Error: Running linker. 2


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




Пост N: 3811
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.11.18 14:57. Заголовок: Как я понял, вывод н..


Как я понял, вывод на stdout компилятора и линкера переадресовывается в error.log, и есть проблема его прочесть ?
Так линкер не переделать, чтобы он в нужной кодовой странице выдавал свой лог. Разве что писать в спортлото Эмбаркадеро Текнолоджиз Инк.
Есть проблема прочесть текстовый файл в желаемой кодировке ? Так это умеет делать например всем известный фар.

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




Пост N: 6118
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.11.18 15:25. Заголовок: Pasha пишет: Как я ..


Pasha пишет:

 цитата:
Как я понял, вывод на stdout компилятора и линкера переадресовывается в error.log, и есть проблема его прочесть ?


Да. До этого были вообще кракозябы и сердечки.
Поставил в hbmk2.bat второй строкой chcp 65001, сердечки пропадают, но пути все равно нет.
Наверное это BCC линковщик выдаёт такую кракозябу.
Тем более он такой древний...
MS VC2017 берет кодировку заданной в файле сборки и по русски пишет правильно.
Понял, что никак.
Спасибо !
Но хоть от сердечек избавился....

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




Пост N: 6155
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.01.19 21:48. Заголовок: У меня опять фигня с..


У меня опять фигня с окнами получается.

Вызываю с главной формы окно MODAL(1) не во весь экран, на этой форме кнопки.
Допустим далее нажимаю кнопку5 , далее показ окна CHILD(5) с ТСБ (Tsbrowse).
В ТСБ на конкретную колонку вешаю свой обработчик.
     oBrw:aColumns[3]:bPrevEdit := { || MyEditColumn3() } 

В функции MyEditColumn3() делаю обработку свою и допустим на 10 позиции курсора - вызываю меню типа такого:
   DEFINE CONTEXT MENU OF &cForm 
MENUITEM "Редактировать" ACTION {|| nMenuItem := 1 } FONT Font1
SEPARATOR
MENUITEM "Скопировать поле в буфер обмена" ACTION {|| nMenuItem := 2 } FONT Font1
MENUITEM "Скопировать в поле из буфера обмена" ACTION {|| nMenuItem := 3 } FONT Font1
SEPARATOR
MENUITEM "Выход" ACTION {|| nMenuItem := 0 } FONT Font2 IMAGE "m_Exit32"
END MENU

_ShowContextMenu(cForm, nY, nX, .f. ) // ПОКАЗ ВЫПАДАЮЩЕГО МЕНЮ

Меню появляется на фоне MODAL(1) и таблицу практически не видно.
Почему ? Как сделать, чтобы меню было на фоне CHILD(5) ?
В отдельном примере отрабатывается нормально.

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

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