002
17.11.2003, 12:16 Uhr
~Luke1410
Gast
|
basetest.h
Code: |
#pragma once
#include "daoc-docdlg.h" #include "md5.h"
template<class Temp> class BaseTest : protected CDAoCDoCDlg, protected MD5{ public: inline void Adjust(Temp); // Aufurf bei Settingänderung -- tCurSetting = Temp inline void Fix(void); // ruft Save auf, wenn HasChanged TRUE und aktualisiert Settings // Aufruf bei Übernehmen -- tOldSetting = tCurSetting inline void Check(void); // ruft Test auf wenn bTest=true, aktualisiert Settings und Oberfläche // Aufruf bei Überprüfen protected: inline BaseTest(void); // bTest = TRUE inline ~BaseTest(void);
bool bTest; // wird auf FALSE gesetzt, wenn Test nicht mehr erforderlich private: inline bool HasChanged(void); // vergleicht tCurSetting mit tOldSetting -- = TRUE, falls ungleich
virtual void Save(Temp) = 0; // Speichert aktuelle Einstellungen virtual void Set(Temp) = 0; // Aktualisiert Oberfläche virtual Temp Test(void) = 0; // Testet, ob Fehler besteht, aktualisiert bTest, gibt Wert zurück
Temp tOldSetting; // aktuell gespeicherte Einstellungen Temp tCurSetting; // aktuell ausgewählte Einstellung };
template <class Temp> BaseTest<Temp>::BaseTest(void){ bTest = TRUE; }
template <class Temp> BaseTest<Temp>::~BaseTest(void){ }
template <class Temp> void BaseTest<Temp>::Adjust(Temp){ tCurSetting = Temp; }
template <class Temp> void BaseTest<Temp>::Fix(void){ if(HasChanged()){ Save(tCurSetting); tOldSetting = tCurSetting; } }
template <class Temp> bool BaseTest<Temp>::HasChanged(void){ return(tOldSetting != tCurSetting); }
template <class Temp> void BaseTest<Temp>::Check(void){ // testen, falls Test erforderlich ist (bTest = True) if(bTest){ tOldSetting = Test();
// Anzeige und Settings aktualisieren, falls Einstellungen verändert wurden if(HasChanged){ Set(tOldSetting); tCurSetting = tOldSetting; } } }
|
kann da leider auch keinen Fehler finden. |