Автор | Сообщение |
|
| |
Пост N: 347
Зарегистрирован: 17.06.10
|
|
Отправлено: 18.06.15 09:11. Заголовок: Картинка "ожидания"
Кто чем изображает ожидание выполнения процесса (напр.коннекта) ? Удобно использовать анимированный gif. У меня есть какой-то, крутящуюся шестеренку изображает. Все нормально, но иногда может пуститься в инверсном режиме
|
|
|
Ответов - 62
, стр:
1
2
3
4
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 4317
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.06.15 19:47. Заголовок: http://f5.s.qip.ru/1..
|
|
|
|
| |
Пост N: 4988
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.06.15 20:04. Заголовок: Andrey пишет: тогда..
Andrey пишет: цитата: | тогда пропадает окантовка окна |
| А она нужна ? Без нее лучше смотрится !
|
|
|
|
| постоянный участник
|
Пост N: 4319
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.06.15 20:28. Заголовок: Dima пишет: А она н..
Dima пишет: цитата: | А она нужна ? Без нее лучше смотрится ! |
| А если белый фон ? Тогда как ?
|
|
|
|
| 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
|
|
|
|
| постоянный участник
|
Пост N: 4320
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.06.15 20:37. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Можно попробовать сделать так |
| Спасибо ! Я это тоже хотел попробовать (помнил об этом) но хотелось услышать ответ Гуру !
|
|
|
|
| постоянный участник
|
Пост N: 4331
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.06.15 17:20. Заголовок: Dima смотри, что мне..
Dima смотри, что мне Григорий прислал... Я его немного подрихтовал. https://cloud.mail.ru/public/Bd52/P5hnX8H38 Теперь можно по базе делать расчеты в несколько потоков.... Хотя ранее об этом писал alkresin, да всё руки не доходили... Наверно тему нужно бы передвинуть из Флейма ?
|
|
|
|
| |
Пост N: 4999
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.15 17:46. Заголовок: Andrey Это без пото..
Andrey Тему двинул Andrey пишет: цитата: | Теперь можно по базе делать расчеты в несколько потоков |
| Да только в расчетах не используй INKEYGUI это все таки задержка.
|
|
|
|
| постоянный участник
|
Пост N: 4332
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.06.15 18:00. Заголовок: Dima пишет: Да толь..
Dima пишет: цитата: | Да только в расчетах не используй INKEYGUI это все таки задержка. |
| Конечно. Это просто для примера сейчас сделано !
|
|
|
|
| постоянный участник
|
Пост 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 !
|
|
|
|
| постоянный участник
|
Пост N: 4452
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.08.15 22:50. Заголовок: Не работает поток ! ..
|
|
|
|
| постоянный участник
|
Пост 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() } Но далее поток не выводит картинки... висит.... Как сделать показ картинок в потоке пока идёт другая операция ?
|
|
|
|
|
| постоянный участник
|
Пост N: 7244
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.04.22 19:03. Заголовок: Вот в инете нашёл но..
|
|
|
|
| постоянный участник
|
Пост 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, т.е. он сбоит ! Это плохо конечно, но у меня есть категория НЕТЕРПЕЛИВЫХ юзеров которые тупо кликают мышкой в таких местах. Типа быстрей задача считаться будет. Может сделать блокировку всей формы ? Так можно делать ? И как лучше это сделать ? Пример у тебя есть...
|
|
|
|
| moderator
|
Пост N: 2089
Зарегистрирован: 11.02.10
|
|
Отправлено: 02.02.23 20:43. Заголовок: Andrey пишет: Может..
Andrey пишет: цитата: | Может сделать блокировку всей формы ? Так можно делать ? |
| Блокировать форму можно командой цитата: | DoMethod ( cForm, "DisableUpdate" ) |
| а по окончании расчета надо сделать разблокировку цитата: | DoMethod( cForm, "EnableUpdate" ) |
|
|
|
|
|
| постоянный участник
|
Пост N: 7286
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.02.23 08:20. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Блокировать форму можно командой |
| А где нужно блокировать ? В ON INIT окна не работает .... вот так выглядит.... счётчик идёт и окно ожидания может висеть пока AlertInfo() не убрать. Пример выслал на почту.
|
|
|
|
| постоянный участник
|
Пост 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 ....
|
|
|
|
| moderator
|
Пост N: 2090
Зарегистрирован: 11.02.10
|
|
Отправлено: 03.02.23 17:57. Заголовок: Andrey пишет: This...
Andrey пишет: цитата: | This.oBut_Help.Enabled := .F. // это наверное не нужно ? ниже же все обьекты блокируем ! |
| Согласен. Уже поправил у себя
|
|
|
|
| постоянный участник
|
Пост N: 7353
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.04.23 19:27. Заголовок: А как получить разме..
А как получить размеры Gif-файла ? Не в ресурсах, а на диске ? Посмотрел примеры, нашёл MiniGUI\SAMPLES\Advanced\AnimatedGif , ну уж очень мудрёно получаем размеры. Есть уже готовая функция в МиниГуи ? Григорий, а в справку все функции нельзя добавить ?
|
|
|
|
| moderator
|
Пост N: 2123
Зарегистрирован: 11.02.10
|
|
Отправлено: 04.04.23 19:43. Заголовок: Andrey пишет: Посмо..
Andrey пишет: цитата: | Посмотрел примеры, нашёл MiniGUI\SAMPLES\Advanced\AnimatedGif |
| Немного промахнулся с примером Надо было смотреть в папке MiniGUI\SAMPLES\Advanced\ tGif, там найдешь функцию GetGIFSize()
|
|
|
|
| постоянный участник
|
Пост N: 7354
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.04.23 20:02. Заголовок: Спасибо БОЛЬШОЕ ! :..
Спасибо БОЛЬШОЕ !
|
|
|
Ответов - 62
, стр:
1
2
3
4
All
[только новые]
|
|