|
#1
|
|||
|
|||
sleep!
Вообщем я хочю сделать такую тему: есть 3 lable, visible у них false, мне необходимо сделать так чтобы свойство visible у них стало true, но только не сразу, а поочереди! как бы 1 label появляется за другим (скажем через 2 секунды). Я прочел что есть такая тема как sleep пишу:
label1.visible:=true; sleep(20); label2.visible:=true; sleep(20); label3.visible:=true; Я думал что появится первая натпись, через 2 сек вторая и еще через 2 третяя... но нифига нажимаю на кнопку и через некоторое время появляются срузу 3 label'a... что мне сделать? как решить проблемму? может мне использовать не sleep помогите плиз! Последний раз редактировалось Admin, 18.01.2009 в 13:06. |
#2
|
|||
|
|||
Перед Sleep попробуй
Код:
Application.ProcessMessages Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя. |
#3
|
||||
|
||||
Код:
label1.show; self.update; sleep(2000); label2.show; self.update; ..... — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
СПАСИБО!
Спасибо большое, сделал как M.A.D.M.A.N. сказал, работает!
Нехочу тупо копировать неразобравшись. Что такое sleep(2000) я понимаю, а что такое self.update;??? |
#6
|
||||
|
||||
Self.Update-обновить(перерисовать) форму. В обычных случаях не обязательно, но в циклах, sleep'ах и т.п. вещь незаменимая. Только замедлить выполнение циклов может. Сильно.
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |
#7
|
|||
|
|||
[Error] Unit1.pas(116): Undeclared identifier: 'self'
решил попробовать... ужас... |
#8
|
|||
|
|||
Form1.Update
Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя. |
#9
|
|||
|
|||
ппц...
Вообщем как мне подсказали, так я и сделал... все в принцапе работает, строки появляются одна за другой!
Цитата:
|
#10
|
|||
|
|||
создаешь timer
пишешь: Код:
var global: integer=0; {можно byte} ... procedure TForm1.Timer2Timer(Sender: TObject); begin case global of 0: label1.show; 1: self.update; 2: label2.show; 3: self.update; {сколько угодно, пока не будет переполнения типа))))} end; global := global+1 end end; Последний раз редактировалось ApplicatiOn, 20.01.2009 в 19:48. Причина: tegs |
#11
|
|||
|
|||
и что типо...
и что типо типо если я так напишу то sleep 2 таймер незатронет?
|
#12
|
|||
|
|||
зачем тебе sleep??
|
#13
|
|||
|
|||
кстати лучше так будет:
Код:
var global: integer=0; {можно byte} ... procedure TForm1.Timer2Timer(Sender: TObject); begin case global of 0: begin label1.show; self.update; end; 1: begin label2.show; self.update; end; {сколько угодно, пока не будет переполнения типа))))} end; global := global+1 end end; а еще лучше присвоить каждому tag и обрабатывать (пардон, не в цикле а в таймере) Последний раз редактировалось ApplicatiOn, 20.01.2009 в 19:58. |
#14
|
|||
|
|||
хм..
я незнаю понял ли ты меня... дело в том что есть несколько десятков label(ов) изначально их невидно, и мне нужно релизовать появление их по очереди... это я сделал, с помощью sleep и все было бы хорошо еслибы во время появления label(ов) мне недано было чтобы они динамически изменялись в цвете... я создал кнопку и прописал в ней
Цитата:
|
#15
|
|||
|
|||
1ый таймер изменяет цвета.
2ой таймер отображает label's (таймер, пример которого дал тебе я) что непонятного? если их десятки, то: Код:
var global: integer=0; {можно byte} ... procedure TForm1.Timer2Timer(Sender: TObject); begin case global of 0: begin label1.show; self.update; end; 1: begin label2.show; self.update; end; 2: begin label3.show; self.update; end; 3: begin label4.show; self.update; end; 4: begin label5.show; self.update; end; // и т.д. end; global := global+1 end end; а в интервале у таймера ставиш 2000 (2 сек) еще раз повторяю, что это второй таймер... а в первом меняешь цвета... |