Вверх ↑
Ответов: 44
Рейтинг: 0
#1: 2006-08-29 01:16:03 ЛС | профиль | цитата
Galkov, понял Вас. Повторюсь покороче:
Имеется задача - свернуть окно в трей через N (=1...3) секунд после запуска программы и отрисовки её окна на Рабочем столе. Решение "в лоб" - использование Timer:

Add(MainForm,10125320,21,105)
{
Left=20
Top=105
Width=246
Height=182
}
Add(TrayIcon,6277117,203,105)
{
link(onClick,4559153:doCompare,[])
}
Add(Timer,6063357,147,112)
{
Interval=2000
AutoStop=1
link(onTimer,6277117:doHide,[(187,118)(187,118)])
}
Add(If_else,4559153,252,105)
{
Op2=Integer(1)
link(onTrue,6277117:doShow,[(294,111)(294,95)(193,95)(193,111)])
}
Add(InfoTip,2811524,147,161)
{
Info=#50:Сворачивает окно в трей через 2 сек после запуска.|45:Развернуть окно из трея - Правый клик в трее.|
HAlign=0
Width=295
Height=39
}

Этот вариант работает, но имеет недостаток: присутствие Timer-а в схеме приводит к "Runtime Error" при закрытии такой программы в Windows 9X/ME.

При использовании же элемента Sleep получается совсем другой эффект - задержка отрисовки формы на экране:

Add(MainForm,10125320,91,91)
{
Left=20
Top=105
Width=246
Height=182
link(onCreate,10181966:doSleepMks,[(150,132)(150,122)])
}
Add(Sleep,10181966,168,116)
{
Delay=2000000
link(onSleep,6277117:doHide,[(219,122)(219,111)])
}
Add(TrayIcon,6277117,231,98)
{
link(onClick,4559153:doCompare,[])
}
Add(If_else,4559153,280,98)
{
Op2=Integer(1)
link(onTrue,6277117:doShow,[(322,104)(322,88)(221,88)(221,104)])
}

Ну а вопрос остается прежним: чем можно горю помочь
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0