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

Вниз

Таймер   Найти похожие ветки 

 
Sp1r1t   (2006-11-06 19:43) [0]

type
    Thr = class(TThread)
         procedure Execute; override;
    end;
    MyTimer = class(TTimer);
var
    Time : MyTimer;

implementation

procedure Thr.Execute;
begin
   Time.Interval:=500;
   Time:=MyTimer.Create(Time);
   {
      Здесь мне надо запустить таймер и написать
      действия которые он будет выполнять. Как это
      сделать?
   }
   Time.Destroy;
end;

end.


 
Percent   (2006-11-06 19:49) [1]

Что это за бред?


 
Ketmar ©   (2006-11-06 19:57) [2]

осень...


 
Sp1r1t   (2006-11-06 20:04) [3]

Какая разница што это. Вы мне скажите пожалуйста как запустить таймер и как написать обработчик события OnTimer


 
Percent   (2006-11-06 20:09) [4]

Какая разница што это.

Это %ля ващще!
Жжош!

Вы мне скажите пожалуйста как запустить таймер и как написать обработчик события OnTimer

Берешь будильник.
Открываешь окно.
Запускаешь будильник в окно.
Идешь спать.

То есть, или ты забываешь, что такое программирование вообще, или уходишь в "Начинающим".
Другого тебе пока не дано.
Смирись.


 
Sp1r1t   (2006-11-06 20:12) [5]

Шо тут такого конченого? Сказать можешь? можь ты не чихлишь шо я делаю и что хочу


 
Percent   (2006-11-06 20:20) [6]

можь ты не чихлишь шо я делаю и что хочу

Ты же сам не говоришь: "Какая разница што это." - твое?

А вот за это:

Time.Interval:=500;
Time:=MyTimer.Create(Time);


тебе - в начинающие.

И еще. Ты можешь обїяснить, зачем тебе в потоке таймер?


 
Sp1r1t   (2006-11-06 20:25) [7]

Ну може я плохо придумал работать с Объектом - ну это пока сырой/обобщенный код. Дело не в том. Я хочу знать как обратиться к методу OnTimer. Мне нужно чтобы создавался отдельный поток, который будет генерировать числа с заданным интервалом времени.


 
Sp1r1t   (2006-11-06 20:28) [8]

Т.е не обратиться а написать обработчик метода OnTimer


 
Percent   (2006-11-06 20:42) [9]

Зачем тебе поток?


 
RASkov   (2006-11-06 21:56) [10]

> [8] Sp1r1t   (06.11.06 20:28)
> Т.е не обратиться а написать обработчик метода OnTimer


procedure OnTime(Sender: TObject);
.....
procedure TForm1.Button4Click(Sender: TObject);
var tm: TTimer;
begin
 tm:=TTimer.Create(self);
 tm.Interval:=2000;
 tm.OnTimer:=OnTime;
end;

procedure TForm1.OnTime(Sender: TObject);
begin
 ShowMessage("Ну нахрена в потоке таймер");
end;



> Мне нужно чтобы создавался отдельный поток, который будет
> генерировать числа с заданным интервалом времени.

Отдельный поток это и есть "таймер". И дополнительно в нем создавать еще таймер нет смысла.


 
RASkov   (2006-11-06 21:58) [11]

> procedure TForm1.Button4Click(Sender: TObject);
> var tm: TTimer;
> begin
> tm:=TTimer.Create(self);

Не совсем верно.... или совсем не верно.... Вообщем так не надо. Просто после выхода из процедуры Button4Click потеряется ссылка на Таймер.


 
Ketmar ©   (2006-11-06 22:03) [12]

>[11] RASkov 6-Nov-2006, 21:58
>Просто после выхода из процедуры Button4Click
>потеряется ссылка на Таймер.
ну и фиг с ним. форма при умирании и таймер пришибёт.


 
RASkov   (2006-11-06 22:07) [13]

> [12] Ketmar ©   (06.11.06 22:03)

Но нельзя будет изменить, например Interval:)


 
Ketmar ©   (2006-11-06 22:08) [14]

>[13] RASkov 6-Nov-2006, 22:07
>Но нельзя будет изменить, например Interval:)
неправда.


 
RASkov   (2006-11-06 22:11) [15]

> [14] Ketmar ©   (06.11.06 22:08)

procedure TForm1.OnTime(Sender: TObject);
begin
(Sender as TTimer).Interval:=1500;
end;

:)) или как еще?


 
Ketmar ©   (2006-11-06 22:13) [16]

>[15] RASkov 6-Nov-2006, 22:11
>:)) или как еще?
или свойство Components ещё.


 
MetalFan ©   (2006-11-06 22:20) [17]

> [15][16]
ну пошли извращенства)))
кто там мне говорил через горло в попе у соседа ковыряться? ;)


 
Sp1r1t   (2006-11-07 00:59) [18]

спасибо RASkov - все работает. То я шото правда загнул нащет таймера в потоке. :D


 
Германн ©   (2006-11-07 01:39) [19]

<offtop>
Хорошо, что хоть кто-то понял, что доппотоки не есть панацея. Теперь бы вот как-нибудь убедить всех, кто работает с СОМ-портом в этом!
</offtop>


 
Сергей М. ©   (2006-11-07 08:53) [20]


> Sp1r1t


type
   TMyThread = class(TThread)
   private
      procedure DoTimer(Sender: TObject);
   protected
      procedure Execute; override;
   end;
..
var
   MyTimer : TTimer;

implementation

procedure TMyThread.DoTimer;
begin
 Windows.Beep(1000, 200);
end;

procedure TMyThread.Execute;
var
 Msg: TMsg;
begin
try
  MyTimer:=TTimer.Create(nil);
  try
    MyTimer.Interval:=500;
    MyTimer.OnTimer := DoTimer;
    MyTimer.Enabled := True;
    while not Terminated do begin
      if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
        DispatchMessage(Msg);
      Sleep(0);
    end;
  finally
    MyTimer.Free;
  end;
except
  MessageBox(0, "Грабли !", "", mb_ok or mb_setforeground);
end;
end;

...

var
 MyThread: TMyThread;

..

 MyThread := TMyThread.Create(False);
 ShowMessage("Поток с таймером создан, послушай как он бибикает. Как надоест, жмакни ОК для прекращения этого безобразия ...");
 MyThread.Free;


 
evvcom ©   (2006-11-07 12:18) [21]

> [20] Сергей М. ©   (07.11.06 08:53)

Любые извращения за ваши деньги! :-)))))))



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

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

Наверх




Память: 0.51 MB
Время: 0.04 c
15-1162977163
Думкин
2006-11-08 12:12
2006.11.26
Москва. Инструкция по перемещению.


5-1143724023
AlexeyT
2006-03-30 17:07
2006.11.26
Ошибка при удалении ActiveX контрола


15-1162651416
SkySpeed
2006-11-04 17:43
2006.11.26
СРОЧНО! Как сделать, чтобы показывался нормально рус. язык?


3-1158678700
*Ray*
2006-09-19 19:11
2006.11.26
авторизация пользователей


6-1152152056
verybadbug
2006-07-06 06:14
2006.11.26
webmodule