Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Вниз

Останавливается информация о ходе выполнения процесса   Найти похожие ветки 

 
Сергей М. ©   (2009-11-07 21:50) [80]


> это типа Delay()?


Да.


> Ты же сказал он не нужен, если Animate.Timers = False


Так у тебя де на форме не только Animate, но и какие-то другие виз.контролы !
Их то надо обновить..


> Кого тогда конкретно слип тормозить будет?


Я же сказал - вызывающий поток. Т.е. основной в дан.случае.
А поскольку анимация выполнаяется в дополнительном, слип основного потока не должен никак на нее повлиять


 
kyn66 ©   (2009-11-07 21:57) [81]


> Так у тебя де на форме не только Animate, но и какие-то
> другие виз.контролы !Их то надо обновить..


Там простр лабел информационный MesFrm.Lab1.Caption := "Формируется документ, ожидайте...";

> А поскольку анимация выполнаяется в дополнительном, слип
> основного потока не должен никак на нее повлиять

Ща проверю. А могет чуть позже.....
У меня есть одно место в программе, я уже как то описывал здесь на форуме, при удалении SQL-ем  из таблицы затрачивается определенное кол-во времени. Не понятно почему так долго происходит удаление, но речь ща не об этом, просто это то место, где можно проверит анимационность.ДА и еще, Сергей, не подскажежь как подсчитать время выполнения процесса, через тикеты как то помню вроде...


 
Сергей М. ©   (2009-11-07 22:00) [82]


> Там простр лабел


Вот он как раз и требует обновления

> как подсчитать время выполнения процесса


Процесса или потока ?
Разные же разницы ..


> через тикеты


тикет - это билет)
а тик - это тик)

см. GetTickCount


 
Igorishe   (2009-11-07 22:02) [83]


> тикет - это билет)


смешно...шутник вы эткий сударь)))


 
kyn66 ©   (2009-11-07 22:06) [84]


> Вот он как раз и требует обновления


Для перерисовки? Так ведь инфа в нем не меняется. Это же не меняющиеся проценты...


> Процесса или потока ?Разные же разницы ..

Операции выбора данных для отчета. Так скажем.


> тикет - это билет)а тик - это тик)


:) Именно это и имел ввиду :)


 
Сергей М. ©   (2009-11-07 22:16) [85]


> инфа в нем не меняется


Как это не меняется ?
Ты же сам перед визуализацией записал туда  "Формируется документ, ожидайте..." !

> Операции выбора данных для отчета


Ну так и говори - потока, занимающегося этой операцией..


 
kyn66 ©   (2009-11-07 22:27) [86]


> Ну так и говори - потока, занимающегося этой операцией..


Да... с мастерами пообщаешься, начнешь хоть грамотно изъясняться... ;) (Заставят, блин... :))


> Ты же сам перед визуализацией записал туда  "Формируется
> документ, ожидайте..." !


Но к ней претензий нету, не исчезает. Сейчас смотрю про GetTickCount. Но он считает в миллисекундах. Сейчас хочу привести к секундам...

Не знаю где найти каких других анимационных персонажей для сопровождения выполнения операции. Хотелось бы сравнить, есть ли какая разница. Или ими всеми в конечном итоге управляет один TAnimation?


 
Сергей М. ©   (2009-11-07 22:31) [87]


> Хотелось бы сравнить, есть ли какая разница


А какая м.б. разница, кроме собственно различных анимированных сцен, видимых юзером ?


 
kyn66 ©   (2009-11-07 22:36) [88]


> А какая м.б. разница, кроме собственно различных анимированных
> сцен, видимых юзером ?


Вот и я так подумал. Ок, Сергей, на время прервем осуждение. Хочу потестировать со слипом.


 
Сергей М. ©   (2009-11-07 22:48) [89]


> к ней претензий нету, не исчезает


Тогда зачем в твоей редакции стоит MesFrm.Update ?


 
kyn66 ©   (2009-11-07 23:21) [90]


> Тогда зачем в твоей редакции стоит MesFrm.Update ?


Для перерисовки метки. Первый раз наверное.
Сергей, короче проверил сейчас аничасики на другой затяжной операции по удалении данных из таблицы. Так вот, при таком раскладе, как показано ниже, часики НЕ ТИКАЮТ. Ваш выход, Мастер!

procedure TTiragSLFrm.DelBtnClick(Sender: TObject);
Var
 tir : Integer;
begin
 if VoprosMsg("Вы действительно хотите удалить тираж "" +
               DM1.SvodTSLTblTir.AsString + "" ?", 2) then
  begin
    Screen.Cursor := crHourGlass;
    SplashFrm := TSplashFrm.Create(Application);
    SplashFrm.Lab1.Caption := "Выполняется удаление, ожидайте...";
    SplashFrm.Show;
    SplashFrm.Update;
    tir := DM1.SvodTSLTblTir.Value;
    with TAdsQuery.Create(nil) do
     try
       AdsConnection := DM1.AdsConnection1;
       ParamCheck := True;
       SQL.Add("DELETE FROM TiragSL WHERE Tir = :p0");
       Params[0].Value := tir;
       ExecSQL;
     finally
       Free;
     end;
    If DM1.SvodTSLTbl.FindKey([Tir]) then
     begin
       DM1.SvodTSLTbl.Delete;
       DM1.SvodTSLTbl.Refresh;
       DelTir := True;
     end;
    CountRec;
    SplashFrm.Hide;
    SplashFrm.Free;
    Screen.Cursor := crDefault;
  end;
end;


Только в данном куске уже SplashFrm играет роль инфо-формы, на которой расположены аничасики.


 
Сергей М. ©   (2009-11-07 23:33) [91]

а если все что после TSplashFrm.Update до end заменить на while true do - картина меняется ?


 
kyn66 ©   (2009-11-07 23:35) [92]

Для справки:
Вышеприведенный код удалял 121"421 запись из 2"693"521 . Затраченное время - 98.156 сек.  Celeron 2400, 1Гб


 
Сергей М. ©   (2009-11-07 23:40) [93]

Да по барабану что он там делал)
Принципиальна лишь занятость осн.потока какой либо (не важно какой) блокирующей операцией, изменяющей или не изменяющей приоритеты потоков ..


 
kyn66 ©   (2009-11-07 23:40) [94]


> а если все что после TSplashFrm.Update до end заменить на
> while true do - картина меняется ?


Тоже молчат... Странно...


 
Сергей М. ©   (2009-11-07 23:41) [95]

А тема раб.стола у тебя какая-либо установлена ?


 
Сергей М. ©   (2009-11-07 23:42) [96]


> Странно


Я ж тебе сказал уже три раза - замени Update после Show на Processmessages


 
kyn66 ©   (2009-11-07 23:48) [97]


...
    SplashFrm := TSplashFrm.Create(Application);
    SplashFrm.Lab1.Caption := "Выполняется удаление, ожидайте...";
    SplashFrm.Show;
//     SplashFrm.Update;
    Application.ProcessMessages;
    while true do
(*
    tir := DM1.SvodTSLTblTir.Value;
...


Ничего не меняется.

Внутри SplashFrm есть этот кусочек (для справки)

procedure TSplashFrm.FormShow(Sender: TObject);
begin
 SplashFrm.Width := Lab1.Width + 100;
end;


Может это как влияет?


 
kyn66 ©   (2009-11-07 23:49) [98]


> А тема раб.стола у тебя какая-либо установлена ?


Нет, стандартно все. Это каким то боком тоже может влиять? Так глубоко?


 
Сергей М. ©   (2009-11-07 23:50) [99]

А вот так

   SplashFrm := TSplashFrm.Create(Application);
   SplashFrm.Lab1.Caption := "Выполняется удаление, ожидайте...";
   SplashFrm.Show;
   while true do Application.ProcessMessages;

тикают ?


 
Сергей М. ©   (2009-11-07 23:51) [100]


> Нет, стандартно все


И никакой XP-манифест тоже не используется ?


 
kyn66 ©   (2009-11-07 23:52) [101]


> И никакой XP-манифест тоже не используется ?


В проге да, XPManifest1: TXPManifest;


 
Сергей М. ©   (2009-11-07 23:54) [102]


> В проге да


Убирай.
И пробуй сначала вариант с
while true do;
затем с
while true do Application.ProcessMessages;


 
kyn66 ©   (2009-11-07 23:54) [103]


> Сергей М. ©   (07.11.09 23:50) [99]
> А вот так    SplashFrm := TSplashFrm.Create(Application);
>     SplashFrm.Lab1.Caption := "Выполняется удаление, ожидайте.
> ..";    SplashFrm.Show;    while true do Application.ProcessMessages;
> тикают ?


Да, заводятся сразу, даже без задержки.


 
kyn66 ©   (2009-11-08 00:01) [104]


> Сергей М. ©   (07.11.09 23:54) [102]


Убрал - разницы нет
while true do; - не работает
while true do Application.ProcessMessages; - работает;

Удалил с главной формы компонент XPManifest1: TXPManifest, моуль  XPMan. Но кнопки остались как с манифестом. Он еще куда не записывается?


 
Сергей М. ©   (2009-11-08 00:08) [105]


> while true do Application.ProcessMessages; - работает;

Значит либо у тебя на самом деле Animate.Timers = True либо придется выкорчевывать манифесты, так чтобы ими даже не пахло в приложении.
Проблема с работой TAnimate в XP-приложении, использующем манифесты, фигурирует в Гугле. Если это подтвердится и у тебя, значит придется отказываться либо от манифестов либо от TAnimate (в пользу аналогов типа JvAnimate или иных)


 
kyn66 ©   (2009-11-08 00:13) [106]


> придется выкорчевывать манифесты,

Так вот я и спрашиваю, куда он еще прописывается, если я его положил только на MainFrm, а все формы его "видят" и отвечают... Нужно действительно тогда проверить эту версию


 
kyn66 ©   (2009-11-08 00:43) [107]

Уже и в самой винде переключал на Классический стиль - все тоже.


 
Anatoly Podgoretsky ©   (2009-11-08 11:08) [108]

> kyn66  (07.11.2009 23:52:41)  [101]

Говорил же, что будет более 100 сообщений, как в воду глядел.


 
Anatoly Podgoretsky ©   (2009-11-08 11:09) [109]

> kyn66  (08.11.2009 00:01:44)  [104]

Удалять надо со всех форм и не только компонент, но и записи во всех uses


 
Anatoly Podgoretsky ©   (2009-11-08 11:10) [110]

> kyn66  (08.11.2009 00:43:47)  [107]

Посторонние Супер компоненты.


 
kyn66 ©   (2009-11-08 13:11) [111]


> Anatoly Podgoretsky ©   (08.11.09 11:09) [109]
> > kyn66  (08.11.2009 00:01:44)  [104]Удалять надо со всех
> форм и не только компонент, но и записи во всех uses


Компонент манифеста устанавливает с собою модуль XPMan. Так вот, этот модуль обнаружен только в главном(MainFrm), где он конкретно и был установлен. Dj всех остальных модулях проекта в секциях Uses он не обнаружен. Кстати, меня всегда интересовал этот компонент. Как он влияет на все формы, если установлен только в одной.


> Говорил же, что будет более 100 сообщений, как в воду глядел.


Связано с множеством одиночных наводящих вопросов. Был бы то чат или... другой способ, тема была бы поменьше. А с kheujq стороны на форуме и пытаешься достичь истины. В 75% это удается.


 
{RASkov} ©   (2009-11-08 13:26) [112]

> [111] kyn66 ©   (08.11.09 13:11)
> Кстати, меня всегда интересовал этот компонент. Как он влияет
> на все формы, если установлен только в одной.

У компонента функционала - ноль. Единственное в его коде - это добавление к исполняемому модулю ресурса с этим самым манифестом.
Отсюда следует что сам компонент как таковой вообще не нужен, достаточно в любом uses проекта(хоть в самом *.dpr) указать юнит XPMan.


 
{RASkov} ©   (2009-11-08 13:29) [113]

Вот его полный код:
unit XPMan;
{$WEAKPACKAGEUNIT ON}
interface
uses SysUtils, Classes;
type TXPManifest = class(TComponent) end;
{$R WindowsXP.res} - Единственная "полезная" строка в коде компонента
implementation
end.


 
kyn66 ©   (2009-11-08 13:31) [114]


> {RASkov} ©   (08.11.09 13:26) [112]


Согласен.


 
kyn66 ©   (2009-11-08 13:38) [115]


> Сергей М. ©   (08.11.09 00:08) [105]
> Проблема с работой TAnimate в XP-приложении,
>  использующем манифесты, фигурирует в Гугле. Если это подтвердится
> и у тебя, значит придется отказываться либо от манифестов
> либо от TAnimate (в пользу аналогов типа JvAnimate или иных)


Сергей, ты как всегда прав! Дело в манифесте. Проверил на новом проекте. Значит я думаю проще отказаться от анимации, нежеле разрушать вид программы(XP-шная мягкость фейса). Если не найдется отдельного , не конфликтующего с манифестом компонента анимации, то предется оставить как есть.


 
kyn66 ©   (2009-11-08 14:04) [116]

Вот нашел обсуждение этого вопроса в Королевстве http://www.delphikingdom.com/asp/answer.asp?IDAnswer=36617. Получается что при взаимодействии с манифестом Animate не воспроизводится в отдельном потоке, согласно доки. Значит может стоит попробывать запустить его через таймер? Ну, как вариант проверки...


 
Anatoly Podgoretsky ©   (2009-11-08 14:06) [117]

> kyn66  (08.11.2009 13:11:51)  [111]

Это ресурс


 
kyn66 ©   (2009-11-08 14:13) [118]


> Anatoly Podgoretsky ©   (08.11.09 14:06) [117]
>Это ресурс


Так чтобы этот ресурс задействовать, нужно сделать на него сылку...


 
Anatoly Podgoretsky ©   (2009-11-08 14:30) [119]

> kyn66  (08.11.2009 14:13:58)  [118]

Не требуется никаких ссылок, более того и бросать компонент не требуется, достаточно факта самого наличия ресурса в программа, его даже и без Дельфи можно подключить к программе, практически любым редактором ресурсов.


 
kyn66 ©   (2009-11-08 14:58) [120]


> Не требуется никаких ссылок, более того и бросать компонент
> не требуется, достаточно факта самого наличия ресурса в
> программа, его даже и без Дельфи можно подключить к программе,
>  практически любым редактором ресурсов.


Можно и так, по разному можно. Однако это не решает первоначальной проблемы(конфликт Tanimate & Manifest).



Страницы: 1 2 3 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.71 MB
Время: 0.009 c
15-1256434719
Antoxa
2009-10-25 04:38
2009.12.27
Почему сайт "умер"..?


15-1256851810
Юрий
2009-10-30 00:30
2009.12.27
С днем рождения ! 30 октября 2009 пятница


1-1230592103
ivanoff
2008-12-30 02:08
2009.12.27
Форма MDIChild не разворачвается полностью


2-1257618815
andrewtitoff
2009-11-07 21:33
2009.12.27
Как разбить строку


15-1256507534
POOP
2009-10-26 00:52
2009.12.27
Помогите с Latex





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский