//----------------- Ein sehr einfacher Terminkalender --------------------- #include #pragma hdrstop #include "termin1_u.h" #include "Kl_Datum.cpp" // <- Datei "Kl_Datum.cpp" einfügen //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- // globale Datentypen und Variablen //........................................................................... const MAX_ANZ = 10; Datum *termin[MAX_ANZ]; int freiAb = 0; //--------------------------------------------------------------------------- // Funktionen um die Beziehung zwischen zwei Daten festzustellen //........................................................................... int berechneTage( Datum *pDat1, Datum *pDat2 ) { const int TAGE_IM_MONAT[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // Lü return pDat2->gibTag() - pDat1->gibTag(); // Test } //--------------------------------------------------------------------------- // Ereignisroutinen //........................................................................... __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { for (int i = 0; i < MAX_ANZ; i++) termin[i] = new Datum(); // Objekte erzeugen } //--------------------------------------------------------------------------- void __fastcall TForm1::btnUebernehmenClick(TObject *Sender) { int j, m, t; if (edtTag->Text != "" && edtMonat->Text != "" && edtJahr->Text != "") { if (freiAb < MAX_ANZ) { t = StrToInt(edtTag->Text); m = StrToInt(edtMonat->Text); j = StrToInt(edtJahr->Text); termin[freiAb]->setzeDatum(t, m, j); freiAb++; if (freiAb == MAX_ANZ) ShowMessage(" Achtung! \n Die Kartei ist jetzt voll! "); } else ShowMessage(" Fehler! \n Die Kartei ist voll!"); } else ShowMessage(" Das Datum ist unvollständig! "); } //--------------------------------------------------------------------------- void __fastcall TForm1::PageControl1Change(TObject *Sender) { int i, diff; AnsiString heute_Str, datum_Str; if (PageControl1->ActivePage == TabSheet1 && freiAb > 0) { lBoxTermin->Clear(); lBoxTermin->Items->Add("Datum Differenz"); for (i = 0; i < freiAb; i++) { datum_Str = termin[i]->gibDatum_deutsch( ); if (i > 0) diff = berechneTage(termin[i-1], termin[i]); else diff = 0; lBoxTermin->Items->Add( datum_Str + " : " + FormatFloat("000",diff) ); } } if (PageControl1->ActivePage == TabSheet2) { btnLoeschenClick(this); edtJahr->Text = IntToStr( 2008 ); edtMonat->Text = IntToStr( 12 ); edtTag->Text = IntToStr( 31 ); if (freiAb == MAX_ANZ) ShowMessage(" Achtung! \n Die Kartei ist voll! "); } } //--------------------------------------------------------------------------- void __fastcall TForm1::btnLoeschenClick(TObject *Sender) { edtTag->Clear(); edtMonat->Clear(); edtJahr->Clear(); } //---------------------------------------------------------------------------