//------------------------------------------- // Project Saie // Jyvaskylan Yliopisto // Copyright © 1996. All Rights Reserved. // // SUBSYSTEM: Saie Application // FILE: saiedemo.h // AUTHOR: Vesa Lappalainen // // OVERVIEW // ~~~~~~~~ // Class definition TFormSaieDemo (TDialog). // // Tämä esimerkkiohjelma luo lomakkeelle // tietyn määrän TButton-kenttiä. // Napin painalluksesta aletaan pyörittämään // erilisiä säikeitä, joista kukin laskee // 0:sta eteenpäin ja päivitää tietyn jakson // välein lukemaansa vastaavaan // TButton-ikkunnaan. // // Toimii vain BC 5.0 - // Tämä poikkeaa vastaavasta Delphi- // ohjelmasta seuraavasti: // - Säikeen loppumisesta ei saada viestiä. // - Jos säikeitä ei siivota ennen ohjelman // loppua, niin tulee ajonaikainen virhe. // - TStatic-ikkunoista ei saada viestiä // => korvattu TButton-ikkunoilla //------------------------------------------ #if !defined(saiedemo_h) #define saiedemo_h #include #include #include "saieapp.rh" // Def of all resources const int SAIKEITA = 20; // Säikeiden lkm const int PAIVITYS = 100000;// Minkä väl.päiv. const int KIERROKSIA = 1000000; class cLaskuri : public TThread // Laskurisäie perit.yleisestä säikeestä // ja siihen lisätään omat erikoispiirt. { TControl *Text; //Mihin teksti-ikkunaan int n; //Sis. laskurin arvo int raja; //Mihin asti lasketaan protected: void count(); //Yhden laskuaskeleen suor //Perit.luokan Run korvataan omalla int Run(); public: //Rakentaja, joka alustaa mm. sis. muut. cLaskuri(TControl *oLabel,int r) : Text(oLabel), raja(r), n(0) {} ~cLaskuri() { ;} }; //{{TDialog = TFormSaieDemo}} class TFormSaieDemo : public TDialog { // Lomake,jossa laskureita pyöritetään TControl *Labels[SAIKEITA]; cLaskuri *saikeet[SAIKEITA]; public: TFormSaieDemo(TWindow* parent, TResId resId = IDD_SAIEDEMO, TModule* module = 0); virtual ~TFormSaieDemo(); //{{TFormSaieDemoVIRTUAL_BEGIN}} public: virtual bool Create(); virtual TResult EvCommand(uint id, THandle hWndCtl, uint notifyCode); virtual bool CanClose(); //{{TFormSaieDemoVIRTUAL_END}} //{{TFormSaieDemoRSP_TBL_BEGIN}} protected: void BNKaynnistaClicked(); //{{TFormSaieDemoRSP_TBL_END}} DECLARE_RESPONSE_TABLE(TFormSaieDemo); }; //{{TFormSaieDemo}} #endif