WyciagnaBezPetli parametru uniklanego dyanmicznego komponetu

0

No właśnie tworze sobie kilkaset timerów z intervalem 5ms, wiec nie mogę puścić pętli po wszykich bo sie wywróci wszystko. Próbowałem robić to metoda żeby timer zwracał self.tag ale oczywiście zwraca mi taga formy = 0 , każdy z timerow ma przypisany inny tag, muszę wyciągnac to w ułamku setnej sekundy, szkoda ze nie da sie to zrobi taką metoda timer[handle].tag nie mam pojecia jak sie za to zabrac pomoze ktos ?

Dziekuje wam :P SZCZESLIWEGO NOWEGO ROKU :P!

0
nikus napisał(a)

No właśnie tworze sobie kilkaset timerów z intervalem 5ms

Wow, a czemu nie jeden timer ? I nie self.tag tylko o ile sie nie myle to TImage(sender).Tag (jezeli stosujesz to do funkcji przypisanej do wszystkich timerow).

0
-=arhi=- napisał(a)
nikus napisał(a)

No właśnie tworze sobie kilkaset timerów z intervalem 5ms

Wow, a czemu nie jeden timer ? I nie self.tag tylko o ile sie nie myle to TImage(sender).Tag (jezeli stosujesz to do funkcji przypisanej do wszystkich timerow).

wiesz ze to nie działa a co do timerów bombe atomowa buduje ;) hihi próbowałem wcześniej z (Sender as XX).tag ale to samo zwraca 0 mimo iz wszystkie juz dynamiczne komponenty maja 5;/ niemam pojecia co moze byc grane ;/

0

A pokaz jak tworzysz i inicjujesz te timery.

0

napsize z glowy bo NIE MA mnie w domu tera siedze na dachu :P

g:array of ttimer;

SetLenght...
g[x]:=TTimer.create(self);
g[x].onTime:=timer1.ontime;
g[x].Iterval:=5;
g[x].Tag:=X; // w tagu trzymany jest numer timera w tablicy gdybym pobral tag senderem to odowlnaie do tego byloby bardzo porste g[tag].procedura...

chodzi m i o wyciągneicie tag'a z tiemera z tym żeby to było pewne gdyż jest tam jeszcze kilkaset timerów po 5 ms wiec żeby sender nie przechwycił taga' któregoś z tamtych bo mailoby to katastrofalne skutki.

PS. mógłbym użyc TThread szybciej i latwiej ale nie w tym wypadku co ja robie :P to tak na marginesie żebyśmy nie musieli gadać o ewnetulanej zamianie ;) wiec musi to byc timer :P! ;) hehe

0

Hmmm... gdy zadeklaruje tablice tak jak Ty to zrobiłeś to mam błędy przy create, natomiast gdy ograniczę dlugość tablicy (g:array[1..100] of ttimer; ) to wszystko działa.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption:=inttostr(TImage(sender).Tag);
end;
0

Nie wiem po cholere Ci kilka set timerow? Takich rzeczy sie nie robi. W grach nie ma osobnego "timera" dla animacji innego od renderingu. Wszystko jest w jednej petli i tak sie to powinno zrobi. Moze lepiej uzyc wielowatkowosci? tam mozesz uzyskac czasy jednego cyklu duzo ponizej 1 ms

1 użytkowników online, w tym zalogowanych: 0, gości: 1