Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.01.2009, 01:26
Xcopy Xcopy вне форума
Прохожий
 
Регистрация: 06.10.2008
Сообщения: 35
Репутация: 10
Вопрос 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  
Старый 18.01.2009, 04:24
Alexo Alexo вне форума
Начинающий
 
Регистрация: 24.01.2007
Сообщения: 191
Репутация: 15
По умолчанию

Перед Sleep попробуй
Код:
Application.ProcessMessages
__________________
Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя.
Ответить с цитированием
  #3  
Старый 18.01.2009, 09:15
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
label1.show;
self.update;
sleep(2000);
label2.show;
self.update;
.....
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 18.01.2009, 12:49
Аватар для hkdkest
hkdkest hkdkest вне форума
Начинающий
 
Регистрация: 06.05.2008
Адрес: Рязань
Сообщения: 180
Репутация: 10
По умолчанию

попробуй
Код:
Delay
__________________
Делаю курсовые и лабораторные на Delphi, GPSS, Assembler, C++.
Заказать и почитать отзывы можно на сайте, который указан в этой теме
Дешево!
Ответить с цитированием
  #5  
Старый 18.01.2009, 13:16
Xcopy Xcopy вне форума
Прохожий
 
Регистрация: 06.10.2008
Сообщения: 35
Репутация: 10
Радость СПАСИБО!

Спасибо большое, сделал как M.A.D.M.A.N. сказал, работает!
Нехочу тупо копировать неразобравшись. Что такое sleep(2000) я понимаю, а что такое self.update;???
Ответить с цитированием
  #6  
Старый 18.01.2009, 19:21
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Self.Update-обновить(перерисовать) форму. В обычных случаях не обязательно, но в циклах, sleep'ах и т.п. вещь незаменимая. Только замедлить выполнение циклов может. Сильно.
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #7  
Старый 19.01.2009, 15:12
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

[Error] Unit1.pas(116): Undeclared identifier: 'self'

решил попробовать... ужас...
Ответить с цитированием
  #8  
Старый 19.01.2009, 19:56
Alexo Alexo вне форума
Начинающий
 
Регистрация: 24.01.2007
Сообщения: 191
Репутация: 15
По умолчанию

Form1.Update
__________________
Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя.
Ответить с цитированием
  #9  
Старый 20.01.2009, 19:42
Xcopy Xcopy вне форума
Прохожий
 
Регистрация: 06.10.2008
Сообщения: 35
Репутация: 10
Печаль ппц...

Вообщем как мне подсказали, так я и сделал... все в принцапе работает, строки появляются одна за другой!
Цитата:
label1.show;
self.update;
sleep(2000);
label2.show;
self.update;
.....
Но тут такое дело я хотел чтобы строки еще и меняли свой цвет, например появляется строка и мигает разным цветом, и в это же время другая, и мигает, и т.д.... но вот проблема! видимо sleep приостанавливает всю прогу и пока все строки непоявяться цвет миняться небудет(потому что небудет работать таймер с помощью которого я реализовал смену цвета). как мне быть?
Ответить с цитированием
  #10  
Старый 20.01.2009, 19:46
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -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  
Старый 20.01.2009, 19:48
Xcopy Xcopy вне форума
Прохожий
 
Регистрация: 06.10.2008
Сообщения: 35
Репутация: 10
По умолчанию и что типо...

и что типо типо если я так напишу то sleep 2 таймер незатронет?
Ответить с цитированием
  #12  
Старый 20.01.2009, 19:51
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

зачем тебе sleep??
Ответить с цитированием
  #13  
Старый 20.01.2009, 19:53
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

кстати лучше так будет:

Код:
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  
Старый 20.01.2009, 20:03
Xcopy Xcopy вне форума
Прохожий
 
Регистрация: 06.10.2008
Сообщения: 35
Репутация: 10
Вопрос хм..

я незнаю понял ли ты меня... дело в том что есть несколько десятков label(ов) изначально их невидно, и мне нужно релизовать появление их по очереди... это я сделал, с помощью sleep и все было бы хорошо еслибы во время появления label(ов) мне недано было чтобы они динамически изменялись в цвете... я создал кнопку и прописал в ней
Цитата:
label1.show;
self.update;
sleep(2000);
label2.show;
self.update;
и т.д.
таким образом я реализовал постепеное появление label(ов) друг за другом, потом я создал таймер и захотел чтобы label(ы) изменяли цвет через рандом, ну я и это сделал, запускаю прогу и вижу что одновременного появления лабелов и изминения их цвета непроисходит! вместо этого происходит следующее: сначала появляются лабелы а уже потом они изменят свой цвет... дык вот... как мне сделать так чтобы они и изменяли свой цвет и появлялись идновременно?
Ответить с цитированием
  #15  
Старый 20.01.2009, 20:08
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

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 сек)

еще раз повторяю, что это второй таймер...

а в первом меняешь цвета...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:14.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter