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



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


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

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


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




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

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