C++ builder - Timer

Programovacie jazyky, rady, poradňa...
jozi341
Light Expert
Light Expert
Príspevky: 39
Registrovaný: 29 dec 2007, 16:02

C++ builder - Timer

Príspevok od používateľa jozi341 »

Este som nerobil s Timerom ale skusil som to takto ale nefunguje to .. ako to ma byt aby mi to fungovalo?? ono mi to preskoci vsetko a po 150 ms vykona len ten posledny prikaz... ale ja chcem aby mi vykonalo vsetky prikazy kazdych 150 ms.... :)

Kód: Vybrať všetko

Graphics::TBitmap *bmp;   

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  bmp=new Graphics::TBitmap;
    bmp->LoadFromFile("MG.bmp");


  Image1->Canvas->Draw(0, 0, bmp);
  Image1->Refresh();

Timer1->Interval = 150;
  Image1->Canvas->Draw(-135, 0, bmp);
  Image1->Left = Image1->Left + 5;
  Image1->Refresh();

Timer1->Interval = 150;
  Image1->Canvas->Draw(-200, 0, bmp);
  Image1->Left = Image1->Left + 5;
  Image1->Refresh();

Timer1->Interval = 150;
  Image1->Canvas->Draw(-270, 0, bmp);
  Image1->Left = Image1->Left + 5;
  Image1->Refresh();

Timer1->Interval = 150;
  Image1->Canvas->Draw(-340, 0, bmp);
  Image1->Left = Image1->Left + 5;
  Image1->Refresh();

Timer1->Interval = 150;
  Image1->Canvas->Draw(0, 0, bmp);
  Image1->Refresh();

} 
vopred dakujem za odpovede :never:
Silent
Star
Star
Príspevky: 555
Registrovaný: 28 apr 2008, 14:03

Re: C++ builder - Timer

Príspevok od používateľa Silent »

Ted nevim presne, ale me se zda je Timer nastavis interval opakovani ve vlastnostech, a potom jen do kodu das co by mel delat takze, Image1->Canvas->Draw(-200, 0, bmp); , snad je to dobre ze by se kazdy urcity inreval posune o 200x
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: C++ builder - Timer

Príspevok od používateľa chrono »

Budeš t musieť celé prerobiť. Tá obsluha sa volá cyklicky a v tvojom prípade sa vždy urobí úplne všetko, takže budeš musieť urobiť funkciu, ktorá vykresľuje a vždy sa zobrazí len časť (dáš tam napr switch/case a pomocnú premennú, ktorú budeš postupne zvyšovať...).
jozi341
Light Expert
Light Expert
Príspevky: 39
Registrovaný: 29 dec 2007, 16:02

Re: C++ builder - Timer

Príspevok od používateľa jozi341 »

dobre ale ako to mam urobit ??? co mam dat do switchu ??? :o
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: C++ builder - Timer

Príspevok od používateľa chrono »

Urobiť to môžeš tak, ako ti to bude vyhovovať. ;)

Ten switch (alebo case, či čo sa používa v Delphi) bude vyzerať zhruba takto:

Kód: Vybrať všetko

case i of
0: begin
    // niečo sa vykreslí
  end;
1: begin
    // vykreslí sa ďalšia časť
  end;
2: begin
    // a ďalšia...
  end;
end;
i = i+1;
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ builder - Timer

Príspevok od používateľa audiotrack »

chrono napísal:Urobiť to môžeš tak, ako ti to bude vyhovovať. ;)

Ten switch (alebo case, či čo sa používa v Delphi) bude vyzerať zhruba takto:

Kód: Vybrať všetko

case i of
0: begin
    // niečo sa vykreslí
  end;
1: begin
    // vykreslí sa ďalšia časť
  end;
2: begin
    // a ďalšia...
  end;
end;
i = i+1;
on sa ale nepýtal na delphi :) (okrem toho ak to chceš už pre delphi, tak ti v príkaze priradenia toho íčka chýba dvojbodka, a hej, takto sa tam zapisuje case)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: C++ builder - Timer

Príspevok od používateľa chrono »

Z názvu témy som si zapamätal už len to, že išlo o nejaký produkt Borlandu a navyše C++ Builder vie kompilovať aj Pascal. :)

//audiotrack: výhovorky, a ten tvoj pascal s chybou by aj tak nezkompiloval :P
Napísať odpoveď