![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Народ подскажите please Короче у меня код нахотся в таймере ну код на движение компонента Image в верх, я его вставил в таймер чтобы моно было смтреть как компонент поднимается вверх на форме, а можно ли это сделать не используя таймер.
|
#2
|
||||
|
||||
![]() в форм криейт пропиши xD
|
#3
|
|||
|
|||
![]() Цитата:
1. Можно ручками ![]() 2. Сдвиг в цикле в потоке. 3. По нажатию кнопки на форме. В большинстве случаев, кроме потоков, тебе нужн производить событие (клавиатурой, мышкой или еще чем-то) |
#4
|
||||
|
||||
![]() Цитата:
Код:
procedure TForm1.FormShow(Sender: TObject); procedure MoveUp; begin while not Application.Terminated do begin Form1.Image1.Top:=Form1.Image1.Top - 1; Sleep(100); end; end; var ThreadId: Cardinal; begin CreateThread(nil, 0, @MoveUp, nil, 0, ThreadId); end; Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#5
|
|||
|
|||
![]() Красиво. А кто будет граничные условия задавать???
А как у нас дела с синхронизацией? В общем работающий, но опасный вариант. |
#6
|
|||
|
|||
![]() Вопрос чно называется в догонку. Я думаю автор топика на меня не обидется
![]() Есть примерно такой код Код:
procedure TMyThread.Execute; begin while not Terminated do begin Synchronize(DoWork); sleep(10); end; end; проценура DoWork содержит OpenGL и рисует прямо на форме. Так вот при таком исполнение команда sleep тормозит основномй поток в котором должны обрабатываться другие события. Суть вопроса вот в чём, можно ли организовать прогрмную задержку каким-нибудь другим способом кроме Sleep. заранее спасибо ! |
#7
|
|||
|
|||
![]() Боюсь, что в данном случае любой код будет тормозить. Хотя попробуй засекать время и в цикле While (Now - StartTime) < Delay Do ;
|