Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

timer+forma   Найти похожие ветки 

 
Петр   (2008-02-11 11:29) [0]

как сделать чтобы форма плавно выезжала, через таймер както не очень выглядит....
procedure TForm1.Timer2Timer(Sender: TObject);
begin
repeat
form1.Top := Form1.Top -1;
until (form1.Top = -form1.Height);
Timer2.Enabled := false;
end;


 
Dib@zol ©   (2008-02-11 11:34) [1]

Поставь у таймера задержку поменьше. Хотя то, что ты хочешь сотворить, имхо, дурь :) Впрочем, сам так один раз делал :) Поэтому предупреждаю: если будешь также сворачивать, юзай ClientHeight а не просто Height. Иначе рискуешь, что на другом компе окно просто не "свернётся", а грациозно уплывёт вниз из-за того, что слишком большой заголовок окна помешает окну достичь "пороговой" для завершения проги высоты %)


 
Петр   (2008-02-11 12:01) [2]

спасибо за совет, а других вариантов нету,по "выползанию" формы?


 
Петр   (2008-02-11 12:04) [3]

просто пока форма двигается то контролы немного глючат(как то мерцают),когда прячется то сама чуток дергается форма :(
мне кажется надо как то иначе делать...


 
Dib@zol ©   (2008-02-11 12:11) [4]

Ну напр возникновение по частям, щас сбацаю исходник.


 
АИК   (2008-02-11 12:12) [5]

А зачам repeat until в таймере непойму

form1.Top := Form1.Top -1;
if form1.Top = -form1.Height then
Timer2.Enabled := false;


 
АИК   (2008-02-11 12:21) [6]

Кстати для хорошего эфекта интервал у таймере сделай  наприер 10 и

form1.Top := Form1.Top -5;
if form1.Top = -form1.Height then
Timer2.Enabled := false;


 
Anatoly Podgoretsky ©   (2008-02-11 12:33) [7]

> Петр  (11.02.2008 12:01:02)  [2]

Не через таймер делай, а через sleep


 
Dib@zol ©   (2008-02-11 14:00) [8]

тэкс, вот пример "собирания из кусочков".
http://webfile.ru/1736947

Все вопросы - сюда.
Только, боюсь, на VCL это не прокатит...


 
Петр   (2008-02-11 14:57) [9]

спасибо поразбираюсь с этим!


 
Elec3C ©   (2008-02-11 18:46) [10]

Попробуй при выезжании выключить перерисовку формы, а затем включить обратно.

procedure TForm1.Timer2Timer(Sender: TObject);
begin
LockWindowUpdate(Form1.Handle);
repeat
form1.Top := Form1.Top -1;
until (form1.Top = -form1.Height);
Timer2.Enabled := false;
LockWindowUpdate(0);
end;


P.S. Не проверял...


 
Palladin ©   (2008-02-11 18:49) [11]


> [10] Elec3C ©   (11.02.08 18:46)

и что это за бред?
1 LockWindowUpdate заблокирует отрисовку окна вообще, независимо от изменений его размера
2 А не приходило ли твоему гениальному мозгу в голову целесообразность использования таймера, нафик он вообще?
3 так моежт будем вдумываться в код прежде чем ерундистику писать?


 
Elec3C ©   (2008-02-11 21:01) [12]


> Palladin ©

У меня прекрасно работает.

> целесообразность использования таймера

[0]


 
{RASkov} ©   (2008-02-11 21:43) [13]

> [12] Elec3C ©   (11.02.08 21:01)
> У меня прекрасно работает.

Спрашивается: Зачем цикл в обработчике таймера.... или зачем вообще таймер, если делаем циклом.....



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

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
4-1184532413
Eugem
2007-07-16 00:46
2008.03.09
Работа с модемом


2-1202681612
Artem
2008-02-11 01:13
2008.03.09
Динамически созданный Memo на PageControl


15-1201971894
Fixi4eeG
2008-02-02 20:04
2008.03.09
Как можно синхронизировать два компонента HeaderControl и memo


15-1202083836
Германн
2008-02-04 03:10
2008.03.09
Дни недели


2-1202754186
Patric
2008-02-11 21:23
2008.03.09
Автоматизация процесса