On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение



Пост N: 347
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 18.06.15 09:11. Заголовок: Картинка "ожидания"


Кто чем изображает ожидание выполнения процесса (напр.коннекта) ?
Удобно использовать анимированный gif. У меня есть какой-то, крутящуюся
шестеренку изображает. Все нормально, но иногда может пуститься в инверсном режиме

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 62 , стр: 1 2 3 4 All [только новые]


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




Пост N: 4275
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.06.15 20:59. Заголовок: fil пишет: У меня е..


fil пишет:

 цитата:
У меня есть какой-то, крутящуюся
шестеренку изображает. Все нормально, но иногда может пуститься в инверсном режиме



Покажи этот анимированный gif - посмотрим....

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




Пост N: 4913
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.06.15 21:47. Заголовок: fil пишет: Все норм..


fil пишет:

 цитата:
Все нормально, но иногда может пуститься в инверсном режиме


в этом режиме пустится может только в одном случае если фреймы считываются и показываются
не с первого и далее по порядку а с последнего и в обратном порядке.
Ты же на FW пишешь и понимаю что юзаешь какой то стандартный вывод FW анимированных GIF.
Сделай свой показ GIFки. Идею дам. Сам делал и работает норм.

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



Пост N: 348
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 18.06.15 22:48. Заголовок: Я за, давай идею. Си..


Я за, давай идею. Сильно надо для метрошных прог на планшете

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




Пост N: 4916
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.15 09:06. Заголовок: fil Предварительно ..


fil
Предварительно надо распаковать GIF на фреймы (каждый фрейм это картинка со свои номером).
Затем все фреймы запаковать в ZIP архив.
При сборке проги этот ZIP сунуть в ресурс (под MINGW это без проблем , под BCC не знаю).
При старте проги этот архив из ресурса извлекаем и распаковываем куда хотим.
Заполняем в нужном порядке массив именами фреймов.
Затем (там где надо ) в отдельном потоке ходим по массиву (и с задержкой если она нужна)
показываем фреймы (картинки) в нужном месте , средствами FW (Minigui или GtWVG)
Когда это все не нужно , убиваем поток.

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



Пост N: 349
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 19.06.15 12:24. Заголовок: O'k, пробну..


O'k, пробну

FWeb, на форуме Линареса , случаем не глянул ?

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




Пост N: 4920
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.15 13:14. Заголовок: fil Смотрел как то ..


fil
Смотрел как то давно. Посмотрю еще.

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




Пост N: 4276
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.06.15 18:30. Заголовок: Dima пишет: Предвар..


Dima пишет:

 цитата:
Предварительно надо распаковать GIF на фреймы (каждый фрейм это картинка со свои номером).
Затем все фреймы запаковать в ZIP архив.
При сборке проги этот ZIP сунуть в ресурс (под MINGW это без проблем , под BCC не знаю).
При старте проги этот архив из ресурса извлекаем и распаковываем куда хотим.
Заполняем в нужном порядке массив именами фреймов.
Затем (там где надо ) в отдельном потоке ходим по массиву (и с задержкой если она нужна)
показываем фреймы (картинки) в нужном месте , средствами FW (Minigui или GtWVG)
Когда это все не нужно , убиваем поток.



Дима, а можешь пример на МиниГуи сделать ? Уж очень нужен был бы для всех !

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




Пост N: 4921
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.15 21:24. Заголовок: Andrey Так он же ес..


Andrey
Так он же есть C:\MiniGUI\SAMPLES\Advanced\AnimatedGif\
Просто я его взял за идею и извлекаю фреймы не из GIF контейнера а из ZIP ,
в Минигуи это висит на таймере у меня все в потоке под GTWVG.


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




Пост N: 4277
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.06.15 21:43. Заголовок: Dima пишет: Просто ..


Dima пишет:

 цитата:
Просто я его взял за идею и извлекаю фреймы не из GIF контейнера а из ZIP ,
в Минигуи это висит на таймере у меня все в потоке под GTWVG.


Вот вот, я и про это: ZIP и поток для МиниГуи...


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




Пост N: 4922
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.15 22:06. Заголовок: Andrey пишет: поток..


Andrey пишет:

 цитата:
поток для МиниГуи...


Да я только взял в руки Минигуи , новичок я еще ))
Идея есть и не думаю что сложно ее реализовать.
А пока разбираюсь с другими вещами которые у меня "не идут" куда следует
в Минигуи ;)

Andrey пишет:

 цитата:
ZIP и поток


Ты же под BCC сидишь и там может быть проблемка с размером файла и
с попыткой сунуть его в ресурс в момент сборки.

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




Пост N: 4278
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.06.15 22:20. Заголовок: Dima пишет: Ты же п..


Dima пишет:

 цитата:
Ты же под BCC сидишь и там может быть проблемка с размером файла и
с попыткой сунуть его в ресурс в момент сборки.


Если размер ресурса больше 500кб - только тогда будут проблемы. А на небольшой пример проблем не будет.


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




Пост N: 4923
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.15 22:28. Заголовок: Andrey Вопросы к те..


Andrey
Вопросы к тебе тогда ;)
Извлечь фреймы из GIF контейнера можешь ?
Упаковать их в ZIP можешь ?
Сунуть ZIP в ресурс во время сборки можешь ?
Извлечь ZIP в RUNTIME и распаковать его в нужную тебе папку , можешь ?
Считать в массив имена извлеченных фреймов и затем выводить их в цикле
в потоке средствами Минигуи , можешь ?
Что из этого не умеешь ? ;) Думаю умеешь все !

А я новичок еще и мне без году .......неделя ))))

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




Пост N: 4279
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.06.15 22:48. Заголовок: Dima пишет: Извлечь..


Dima пишет:

 цитата:
Извлечь фреймы из GIF контейнера можешь ?
Упаковать их в ZIP можешь ?


Вот это не знаю как делать. Я понимаю что это нужно делать вручную перед созданием проекта.
Как это сделать ?

Dima пишет:

 цитата:
Сунуть ZIP в ресурс во время сборки можешь ?
Извлечь ZIP в RUNTIME и распаковать его в нужную тебе папку , можешь ?


Вот это могу.

Dima пишет:

 цитата:
Считать в массив имена извлеченных фреймов и затем выводить их в цикле
в потоке средствами Минигуи , можешь ?


Выводить в цикле в потоке средствами Минигуи - точно не могу...
Попробовать можно...



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




Пост N: 4924
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.06.15 09:01. Заголовок: Andrey Извлекаем фр..


Andrey
Извлекаем фреймы по быстрому средствами Минигуи
В C:\MiniGUI\SAMPLES\Advanced\AnimatedGif\demo.prg в функции OnClose() закоменти строку AEVal( aPictures, {|f| FErase( f ) } )
Пересобери пример. Запусти и выбери свой GIF , после того как он полностью "проанимируется" ищи фреймы в папке GetTempFolder()

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




Пост N: 4294
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 07:11. Заголовок: Dima пишет: после т..


Dima пишет:

 цитата:
после того как он полностью "проанимируется"


Сделал...
А зачем фреймы ZIP-ом сжимать ? Можно сразу в ресурсы затолкать и не мучиться с распаковкой.
Или я маленький gif подобрал, 9 Кб всего ?


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




Пост N: 4938
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 07:33. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно сразу в ресурсы затолкать и не мучиться с распаковкой


можно и так

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




Пост N: 4295
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 14:15. Заголовок: Dima а avi-файл чем ..


Dima а avi-файл чем можно разобрать и собрать, чтобы в МиниГуи потом показывался ?
Я пробовал несколько раз, у меня не получилось.

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




Пост N: 4942
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 15:11. Заголовок: Andrey А что собира..


Andrey
А что собирался выудить с него ? Картинки (кадры)..

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




Пост N: 4297
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 15:48. Заголовок: Да и заменить на сво..


Да и заменить на свои а потом обратно соединить.
Вот с обратным преобразованием фигня получается, avi-шка перестаёт работать в МиниГуи.

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




Пост N: 4943
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 16:42. Заголовок: Попробуй http://plug..


Попробуй http://plugring.farmanager.com/plugin.php?pid=578&l=ru
Cписок фреймов мне удалось получить а вот с извлечением пока не понял как.

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




Пост N: 4298
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 16:49. Заголовок: Dima пишет: Попробу..


Dima пишет:

 цитата:
Попробуй http://plugring.farmanager.com/plugin.php?pid=578&l=ru


А как его прикрутить к Far 3.0
Там же: Arc, Far 1.x, x86

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




Пост N: 4944
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 17:16. Заголовок: я и не пытался , но ..


я и не пытался , но там есть avixtr.exe , он тебе и нужен

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




Пост N: 4300
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 18:56. Заголовок: Коряво он как то дел..


Коряво он как то делает ....

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




Пост N: 4307
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 04:08. Заголовок: Dima пишет: Считать..


Dima пишет:

 цитата:
Считать в массив имена извлеченных фреймов и затем выводить их в цикле
в потоке средствами Минигуи , можешь ?



Отдельный вывод получился - пример demo3.prg
А в потоке не получается - пример demo4.prg ( окно висит без прелодера и время не показывает )
Что не так делаю ?
Проекты тут - https://cloud.mail.ru/public/BrN3/d4atak4Rv

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




Пост N: 4308
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 13:35. Заголовок: Выспался и кажись по..


Выспался и кажись понял в чём дела... Исправлю сейчас...

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




Пост N: 4975
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 14:08. Заголовок: Пример 4 , ну во пер..


Пример 4 , ну во первых надо собрать с ключем /MT
Далее , переделал FUNCTION WaitingProcess()
 
FUNCTION WaitingProcess()
LOCAL nI, cMsg, nTime
Local Th
PRIVATE aBegin
PRIVATE lexit:=.t.

aBegin := WaitWinCreate( "Working..." )

// Запускаем в отдельном потоке (preloding)
th:=hb_threadStart(HB_THREAD_INHERIT_MEMVARS, @WaitWinTimer(), @aBegin)

nTime := SECONDS()

FOR nI := 1 TO 10

Form1.Label_1.Value := 'For nI := ' + HB_NtoS(nI)

// final waiting
INKEYGUI(500)

DO EVENTS

NEXT

//DoMethod(aBegin[1],'Release') // убить окно ожидания
lexit:=.f.
hb_threadDetach(th)
WaitWinClose(aBegin) // убить окно ожидания

cMsg := "Elapsed processing time - " + SECTOTIME( SECONDS() - nTime )
MsgInfo(cMsg)

RETURN NIL



+

 
FUNCTION WaitWinTimer(aDim)
LOCAL cFormName := aDim[1], aPict := aDim[2], nTime := aDim[3]
LOCAL cTime := "Time passed " + SECTOTIME( SECONDS() - nTime )
LOCAL cPict
do while lexit
M->nILogoWait ++ // номер показа картинки
M->nILogoWait := IIF( M->nILogoWait > LEN(aPict), 1, M->nILogoWait )
cPict := aPict[M->nILogoWait]
cTime := "Time passed " + SECTOTIME( SECONDS() - nTime )
SetProperty( cFormName, "Label_1", "Value", cTime )
SetProperty( cFormName, "Image_1", "Picture", cPict )
InkeyGui(100)
DO EVENTS
enddo

RETURN NIL



При чем часики показывают а вот картинок нет.......
Упс ))) Надо завести demo4.rc

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




Пост N: 4976
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 14:24. Заголовок: Dima пишет: th:=hb..


Dima пишет:

 цитата:
th:=hb_threadStart(HB_THREAD_INHERIT_MEMVARS, @WaitWinTimer(), @aBegin)


Хотя тут можно конечно как и было
hb_threadDetach(hb_threadStart(HB_THREAD_INHERIT_MEMVARS, @WaitWinTimer(), @aBegin))

Dima пишет:

 цитата:
lexit:=.f.
hb_threadDetach(th)


hb_threadDetach(th) уже не нужен , но тогда в WaitWinTimer нужно делать проверку а есть ли форма


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




Пост N: 4310
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 15:41. Заголовок: Dima пишет: При чем..


Dima пишет:

 цитата:
При чем часики показывают а вот картинок нет.......
Упс ))) Надо завести demo4.rc



У меня то же самое... Может ресурсы не подтягиваются в отдельный поток ?

Dima пишет:

 цитата:
hb_threadDetach(th) уже не нужен , но тогда в WaitWinTimer нужно делать проверку а есть ли форма



Лучше сделать автоинкремент окна cFormName := "WaitWin_" + HB_NtoS( _GetId() ), а поток убивать.
Иначе потоки будут засорять память ! Или я неправ ?

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




Пост N: 4978
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 15:42. Заголовок: я могу выложить рабо..


я могу выложить рабочий пример если ты не понял все правки что я сделал

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




Пост N: 4311
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 16:09. Заголовок: Dima пишет: я могу ..


Dima пишет:

 цитата:
я могу выложить рабочий пример если ты не понял все правки что я сделал


Да понял я уже, разобрался. Но как всегда тянет на улучшения.
Решил сократить код. Создаю окно ожидания (прелодера) сразу в потоке.
Потом убиваю поток - окно остаётся на экране. Делаю по другому, запоминаю в статик переменную имя окна, а потом убиваю окно.
Нифига - вылет по ошибке.
Вот пример - https://cloud.mail.ru/public/GiWn/cEYHCiBVT

А в чем разница:
hb_threadStart(HB_THREAD_INHERIT_PUBLIC, @WaitWinTimer(), aBegin )
и
hb_threadStart(HB_THREAD_INHERIT_MEMVARS, @WaitWinTimer(), @aBegin) ?



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




Пост N: 4980
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 16:14. Заголовок: Неа с LETO я не буду..


Неа с LETO я не буду смотреть пример , нет его у меня уже да и сервис ставить не хочу , давай без LETO ;)

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




Пост N: 4981
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 16:16. Заголовок: Andrey пишет: HB_TH..


Andrey пишет:

 цитата:
HB_THREAD_INHERIT_PUBLIC


Андрей есть описание в доке Александра !!!

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




Пост N: 4312
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 16:17. Заголовок: Dima пишет: Неа с L..


Dima пишет:

 цитата:
Неа с LETO я не буду смотреть пример , нет его у меня уже да и сервис ставить не хочу , давай без LETO ;)



Извиняюсь, не та ссылка. Вот правильная ссылка - https://cloud.mail.ru/public/BdQH/CiZE7Ubz1

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




Пост N: 4982
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 16:34. Заголовок: Ну так ты конкретно ..


Ну так ты конкретно переделал ;)
В потоке окно создаешь , не знаю правильно ли это.
Вот DEMO4.pRG рабочий (не забудь DEMO4.RC)
Скрытый текст




А пример понятно чего падает ;)
Ты в начале убиваешь окно которое создано в потоке а пока оно убивается поток все еще пишет на это
окно а затем убиваешь поток в котором это же окно и создавалось.
Как то не стыкуется все для меня как новичка ;)
И я не уверен что поток увидит STATIC переменную заявленную в MAIN модуле (это догадка)
До кучи ,окно создано в потоке и я так понимаю доступа к нему из основной программы не получить.

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




Пост N: 4313
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 17:10. Заголовок: Dima пишет: Ну так ..


Dima пишет:

 цитата:
Ну так ты конкретно переделал ;)


Зато более понятный код становиться.

Dima пишет:

 цитата:
И я не уверен что поток увидит STATIC переменную заявленную в MAIN модуле (это догадка)


Переменную то видит. Можно проверить.
Вот простой код:
WaitWinClose(cStaticIdWinWait) // убить окно ожидания
......
//////////////////////////////////////////////////////////////////////
FUNCTION WaitWinClose(cFormName)

Domethod(cFormName,"Release") // строка 136

DO MESSAGE LOOP

RETURN NIL

Самое интересное что окно в потоке не видит, из-за этого наверно и ошибка:
Error MGERROR/0 Window: WaitWin_16944 is not defined. Program terminated.
Called from MSGMINIGUIERROR(94)
Called from DOMETHOD(4663)
Called from WAITWINCLOSE(136)

Как сделать (убить окно в потоке) ?

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




Пост N: 4983
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 17:16. Заголовок: Наверное Минигуи (эт..


Наверное Минигуи (это предположение) ни чего не знает про окна созданные в потоке , если я не прав ,
пусть меня поправят

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




Пост N: 4984
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 17:29. Заголовок: Можно попробовать пе..


Можно попробовать перед тем как убить окно (WaitWinClose) , средствами Минигуи получить список всех дочерних
окон , будет ли среди них окно заявленное в потоке.

И тогда все будет понятно ;)
Но по любасу если проблему с закрытием окно и решишь то на следующей строке
прога у тебя свалится так как поток будет жить и будет писать в окно которого уже нет.


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




Пост N: 4985
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 18:09. Заголовок: Вставь перед убитием..


Вставь перед убитием окна
aChild := {}
EnumChildWindows( GetFormHandle("Form1"), { |hChild| AADD( aChild, hChild ), .T. }, 0 )
там дальше я не знаю как по хендлу получить имя окна , если получишь выведи все
в MSGINFO и смотри есть ли там окно созданное в потоке
EnumChildWindows сырцы есть в примерах.

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




Пост N: 4315
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 19:11. Заголовок: Dima пишет: EnumChi..


Dima пишет:

 цитата:
EnumChildWindows сырцы есть в примерах.


Так я же его и делал...


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




Пост N: 4316
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 19:20. Заголовок: Вот можешь этой прог..


Вот можешь этой прогой пользоваться, я её до конца не доделал (картинки в ГРИД не поставил от окон) - но так работает.
https://cloud.mail.ru/public/FWC8/LhYGEB5R6

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




Пост N: 4317
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 19:47. Заголовок: http://f5.s.qip.ru/1..




Если указать при создании окна CHILD NOSIZE NOCAPTION тогда пропадает окантовка окна.
Как запретить изменение размера окна в этом случае ?

Пример тут - https://cloud.mail.ru/public/BGTY/nYFNYRSns

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




Пост N: 4988
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 28.06.15 20:04. Заголовок: Andrey пишет: тогда..


Andrey пишет:

 цитата:
тогда пропадает окантовка окна


А она нужна ? Без нее лучше смотрится !

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




Пост N: 4319
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.15 20:28. Заголовок: Dima пишет: А она н..


Dima пишет:

 цитата:
А она нужна ? Без нее лучше смотрится !



А если белый фон ? Тогда как ?

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




Пост N: 765
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.06.15 20:33. Заголовок: Andrey пишет: Как з..


Andrey пишет:

 цитата:
Как запретить изменение размера окна в этом случае ?


Можно попробовать сделать так
   DEFINE WINDOW &cFormName ; 
ROW 0 COL 0 ;
WIDTH 420 HEIGHT 230 ;
TITLE '' ;
MINWIDTH 420 MINHEIGHT 230 ;
MAXWIDTH 420 MAXHEIGHT 230 ;
CHILD NOCAPTION ;
TOPMOST ;
BACKCOLOR WHITE ;
FONT 'Tahoma' SIZE 12


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




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


gfilatov2002 пишет:

 цитата:
Можно попробовать сделать так


Спасибо ! Я это тоже хотел попробовать (помнил об этом) но хотелось услышать ответ Гуру !

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




Пост N: 4331
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 17:20. Заголовок: Dima смотри, что мне..


Dima смотри, что мне Григорий прислал... Я его немного подрихтовал.
https://cloud.mail.ru/public/Bd52/P5hnX8H38
Теперь можно по базе делать расчеты в несколько потоков....
Хотя ранее об этом писал alkresin, да всё руки не доходили...

Наверно тему нужно бы передвинуть из Флейма ?

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




Пост N: 4999
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.06.15 17:46. Заголовок: Andrey Это без пото..


Andrey

Тему двинул

Andrey пишет:

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


Да только в расчетах не используй INKEYGUI это все таки задержка.

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




Пост N: 4332
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 18:00. Заголовок: Dima пишет: Да толь..


Dima пишет:

 цитата:
Да только в расчетах не используй INKEYGUI это все таки задержка.


Конечно. Это просто для примера сейчас сделано !

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




Пост N: 4423
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.07.15 23:27. Заголовок: Инструкция по создан..


Инструкция по созданию своего прелодера (Окна ожидания):
1) Идем на сайт http://preloaders.net/ru
2) Выбираем понравившуюся gif-ку и сохраняем в нужном размере
3) Берем пример MiniGUI\SAMPLES\Advanced\AnimatedGif\demo.prg
и правим функцию Function OnClose(), удаляем строку или комментируем:
// AEVal( aPictures, {|f| FErase( f ) } )
и исправляем еще функцию:
LoadGif( picture, @aPictInfo, @aPictures, @aImageInfo )
на
LoadGif( picture, @aPictInfo, @aPictures, @aImageInfo, GetCurrentFolder() )

4) Собираем пример, запускаем и указываем свою *.gif
5) Получаем несколько файлов .gif - так называемые фреймы.
Например: 350_frame_0001.gif .... 350_frame_0018.gif
6) Переписываем свои фреймы к себе в проект и подключаем
в свой ресурсный файл проекта, например:
FR01 GIF res\350_frame_0001.gif
FR02 GIF res\350_frame_0002.gif
......................
FR18 GIF res\350_frame_0018.gif

7) Для показа этого прелодера берем и добавляем к себе в проект.
Смотрите примеры из папки MiniGUI\SAMPLES\BASIC\WAIT_WINDOW_2

///////////////////////////////////////////////////////////////////////////

У себя в проекте можно использовать мой последний вариант без PUBLIC переменных:
https://gist.github.com/VerchenkoAG/be80f18c5e49a062a2d7

ВНИМАНИЕ !
Прелодер можно показывать только на одну операцию, т.е. одно окно "ожидания".
Для одновременного показа нескольких окон "ожидания" нужно править исходник.
Сделайте это самостоятельно.
Сборка программы для использования прелодера - ключ /mt !

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




Пост N: 4452
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.08.15 22:50. Заголовок: Не работает поток ! ..


Не работает поток ! Или нет прорисовки объектов в окне с потоком !
Что делать ? Какой командой можно перерисовать объекты ?

Исходник использую этот - https://gist.github.com/VerchenkoAG/be80f18c5e49a062a2d7

Добился прорисовки первого экрана, а дальше НИЧЕГО не помогает ! Прошу помощи.

Видео как это выглядит на медленном коннекте выкладываю - https://cloud.mail.ru/public/JLiD/uALv1MTx7


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




Пост N: 5004
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.16 20:07. Заголовок: Опять проблема с пот..


Опять проблема с потоком... Не показываются картики, как будто висит отдельный поток и всё тут...
Может из-за того что инет медленный использую, через модем, но всё равно же отдельный поток должен рисовать прелодер !!!
Использовал рабочий пример, выше который https://gist.github.com/VerchenkoAG/be80f18c5e49a062a2d7

Делаю так:
// создаём окно ожидания с потоком
WaitThreadCreate( 'Connect PostgreSQL ...' )
// коннект к базе в интернете
oServer := TPQServer():New(cHost, cDatabase, cUser, cPass,,schema)

msgDebug("oServer:NetErr()",oServer:NetErr())

WaitThreadClose() // закрыть окно "ожидания"

И всё, висим - белое окно, через 25 сек показ что завершилась операция с ошибкой - Connection timed out (0x0000274C/10060)....

Исправил в исходнике - теперь показывает первый экран нормально:
DEFINE WINDOW &cFormName ;
ROW 0 COL 0 ;
WIDTH 420 HEIGHT 230 ;
TITLE '' ;
MINWIDTH 420 MINHEIGHT 230 ;
MAXWIDTH 420 MAXHEIGHT 230 ;
MODAL NOCAPTION ;
BACKCOLOR WHITE ;
ON MOUSECLICK MoveActiveWindow() ;
ON INIT {|| ProcessMessages() }


Но далее поток не выводит картинки... висит....
Как сделать показ картинок в потоке пока идёт другая операция ?

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




Пост N: 7244
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.04.22 19:03. Заголовок: Вот в инете нашёл но..


Вот в инете нашёл новые анимированные красивые картинки для прелодера
https://icons8.com/preloaders/en/circular/3/

И ещё красивые сочетающиеся цвета для форм
https://coolors.co/

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




Пост N: 7283
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.02.23 17:49. Заголовок: Григорий, а можно ув..


Григорий, а можно увеличить скорость бегунка этого человечка в примере WAIT_WINDOW_3(10).7z ?
Пробовал менять циферку - не помогает...
     @ 40, (420-128)/2 ANIGIF Gif_1 OBJ oStaticGif PARENT &cFormName PICTURE "Ani3dMan128" ; 
WIDTH 142 HEIGHT 128 ;
DELAY 5 BACKGROUNDCOLOR WHITE

Может быть из-за того что в отдельном потоке работает эта гифка ?

И ещё глюк словил, если открывается большое окно и по нему начать кликать мышкой по кнопкам,
то бегущий человек не останавливается (это хорошо), но прекращается подсчёт итоговый - 28/50, т.е. он сбоит !
Это плохо конечно, но у меня есть категория НЕТЕРПЕЛИВЫХ юзеров которые тупо кликают мышкой в таких местах.
Типа быстрей задача считаться будет.
Может сделать блокировку всей формы ? Так можно делать ? И как лучше это сделать ?
Пример у тебя есть...

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




Пост N: 2089
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.02.23 20:43. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может сделать блокировку всей формы ? Так можно делать ?


Блокировать форму можно командой

 цитата:
DoMethod ( cForm, "DisableUpdate" )


а по окончании расчета надо сделать разблокировку

 цитата:
DoMethod( cForm, "EnableUpdate" )



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




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


gfilatov2002 пишет:

 цитата:
Блокировать форму можно командой


А где нужно блокировать ?
В ON INIT окна не работает .... вот так выглядит.... счётчик идёт и окно ожидания может висеть пока AlertInfo() не убрать.


Пример выслал на почту.

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




Пост N: 7287
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.02.23 13:49. Заголовок: Да так работает... ..


Да так работает...
            :Event( 1, {| ow | // ON INIT windows + close the "calculation" window 
LOCAL cMsg, Ctrl
This.Topmost := .F.
This.oBut_Help.Enabled := .F. // это наверное не нужно ? ниже же все обьекты блокируем !
DoMethod(ow:Name, "DisableUpdate") // блокировать всю форму
// block the whole form
FOR EACH Ctrl IN HMG_GetFormControls( ow:Name )
IF "oBut" $ Ctrl
SetProperty( ow:Name, Ctrl, "Enabled", .F. )
ENDIF
NEXT
....


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




Пост N: 2090
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.02.23 17:57. Заголовок: Andrey пишет: This...


Andrey пишет:

 цитата:
This.oBut_Help.Enabled := .F. // это наверное не нужно ? ниже же все обьекты блокируем !


Согласен.
Уже поправил у себя

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




Пост N: 7353
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.04.23 19:27. Заголовок: А как получить разме..


А как получить размеры Gif-файла ?
Не в ресурсах, а на диске ?
Посмотрел примеры, нашёл MiniGUI\SAMPLES\Advanced\AnimatedGif , ну уж очень мудрёно получаем размеры.
Есть уже готовая функция в МиниГуи ?

Григорий, а в справку все функции нельзя добавить ?

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




Пост N: 2123
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.04.23 19:43. Заголовок: Andrey пишет: Посмо..


Andrey пишет:

 цитата:
Посмотрел примеры, нашёл MiniGUI\SAMPLES\Advanced\AnimatedGif


Немного промахнулся с примером
Надо было смотреть в папке MiniGUI\SAMPLES\Advanced\tGif, там найдешь функцию GetGIFSize()

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




Пост N: 7354
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.04.23 20:02. Заголовок: Спасибо БОЛЬШОЕ ! :..


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

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




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


gfilatov2002 пишет:

 цитата:
Надо было смотреть в папке MiniGUI\SAMPLES\Advanced\tGif


А удалить объект oGif с формы можно без FormReSize( oGif ) ?
Есть типа такого - oGif:Delete() - oGif:Release() ?
Блин, из-за одной картинки всю форму перерисовывать с таблицей - НЕ ХОЧЕТСЯ !

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




Пост N: 2124
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.04.23 20:38. Заголовок: Andrey пишет: А уда..


Andrey пишет:

 цитата:
А удалить объект oGif с формы можно


Для корректного полного удаления gif-картинки можно использовать

 цитата:
_ReleaseAniGif ( GifName, FormName )



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

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