Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi] Мигающие "лампочки" 
:(
    Опции темы
Delphinic
Дата 19.10.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.10.2006

Репутация: нет
Всего: нет



Собстно вот начал вспоминать как программят на Delphi.
Последний раз программил на turbo паскале 7.0 11 лет назад.
Все забыл. Поэтому щас начинаю все почти заново!
Ну не важно. 
Вопрос!!
Есть 2 файла 1.Jpg 2.Jpg. Это фотки светодиода на стиральной машинке. 1 фотка зажженая лампочка 2 фотка потухшая.
Вот мне надо написать прогу так чтоб мигало.
Я сделал так, (тока не смейтесь). smile

Код

procedure TForm2.OpenValve_IClick(Sender: TObject); // нажал кнопку.
begin
   Repeat
   OffValve_I.visible := True; // это фотка не светящейся лампочки должна убраться с экрана или стать прозрачной. (за ней расположена фотка горевшей лампочки).  OffValve_I это  Additional - Image.
   begin
   I := I+1;
Sleep(400); 
OffValve_I.Visible := False;  // тут фотка потухшей лампочки появляется и загораживает фотку горевшей.
Sleep(400);
   end
  Until I = 20;
end;


И вообщем ничего не получается: Фотка убирается только тогда когда процедура завершится полностью. Тоесть в цикле свойства не присваиваются или неработают..
Голову сломал, непойму.
Может эффект мигания можно и другим способом получить, но уж больно красивую лампочку можно в программу встроить, И не лепить топорные кружки..

Поможите плиз будущему программеру внешних устройств. А то в электронике шарю а вот хотца делать устройства подключаемые к компу.
 smile 

Модератор: Для выдления кода у нас имеется кнопочка "код" (рядом с окном редактора), которая позволяет выбрать тип подсветки и аккуратно и красиво его отобразить. 

p.s. В связи с тем, что на сервере производятся работы некоторые фунции редактора могут быть временно недоступны


Это сообщение отредактировал(а) alexeis1 - 19.10.2006, 16:10
PM MAIL   Вверх
Alexeis
Дата 19.10.2006, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459




M
alexeis1
Модератор: Название темы должно отражать ее суть!



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
comtat
Дата 19.10.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 8
Всего: 71



Сделал вот так :
Код
procedure TForm2.OpenValve_IClick(Sender: TObject); // нажал кнопку.
begin
   {присваиваем горящей visible=true}
   ...
    {присваиваем потухшей visible=true}
   OffValve_I.visible := True; // фотка потухшая
   sleep(400); 
   {присваиваем горящей visible=false}
   OffValve_I.Visible := False;  // тут фотка потухшей лампочки появляется и загораживает фотку горевшей.
   sleep(400);
end;


И все работает, как вариант можно использовать анимацию (мигающую лампочку)



Это сообщение отредактировал(а) comtat - 19.10.2006, 16:22


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
ivashkanet
Дата 19.10.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 9
Всего: 149



Я с Дельфи не сильно то и знаком, но все же, как у него дело с потоками обстоит?

Delphinic, твой код работает в потоке приложения и поэтому окно не перерисовывается до тех пор, пока до него не дойдет очередь.
А так как сейсас поток приложения занят работой с твоим методом, то пока он не отработает очередь до обновления формы не дойдет  smile 
Это лечиться либо таймером вместо 
Цитата(comtat @  19.10.2006,  16:05 Найти цитируемый пост)
 sleep(400); 
 либо надо запускать твой код в отдельном потоке 

Удачи  smile

Добавлено @ 16:27 
Цитата(Delphinic @  19.10.2006,  15:42 Найти цитируемый пост)
   Repeat  
 OffValve_I.visible := True; // это фотка не светящейся лампочки должна убраться с экрана или стать прозрачной. (за ней расположена фотка горевшей лампочки).  OffValve_I это  Additional - Image.   
begin

Как вообще понимать такую конструкцию?
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.