Thema: Delphi Zeit, Datum überwachen

Einzelnen Beitrag anzeigen

SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#7

Re: Zeit, Datum überwachen

  Alt 12. Aug 2007, 13:46
Die Idee, ein dynamisches Array zu benutzen, ist für den ersten Einstieg ganz gut. Aber eigentlich sind dynamische Arrays dafür nicht wirklich geeignet. Jedesmal, wenn Du das Array verkleinerst oder vergrößerst, wird der gesamte Inhalt des Array vom bisherigen Speicherplatz zum neuen Speicherplatz rüberkopiert.

Stattdessen benutzt man besser eine Liste. Diese verwaltet Ihren Speicherplatz selbst und wird größer und kleiner, je nachdem wieviele Elemente Du hinzufügst oder löschst. Zum Hinzufügen gibt es die Funktion (Methode) "Add", zum Löschen "Delete" oder "Remove". Und das, was Du da hinzufügst, muss ein Objekt sein. So ein Objekt ist eigentlich nichts anderes als ein Record, nur mit ein paar mehr Möglichkeiten. Siehe Online-Hilfe.

Versuche dich al, an folgendes heranzutasten:

Du definierst Dir eine Klasse, die jeweils einen Termin verwaltet:

Delphi-Quellcode:
type
  TTermin = class(TObject)
    Datum: TDate;
    Uhrzeit: TTime;
    Titel: String;
    Aktiv: Boolean;
  end;
(Hinweis: Eigentlich ist das getrennte Speichern von Datum und Uhrzeit Schwachsinn, weil es auch den Datentype TDateTime gibt, der in einer Variablen beides abspeichern kann. Aber zur Verdeutlichung hier mal getrennt)

Wenn Du so eine Klasse hast, kannst Du Deine Termin in einer TObjectList speichern:
Delphi-Quellcode:
var
  Termine: TObjectList;
und später im Programm musst Du im Programm diese ObjectList erzeugen und beim Programmende wieder löschen:

Beim Programmstart:
  Termine := TObjectList.Create; Beim Programmende:
  FreeAndNil(Termine); // gibt den genutzten Speicher wieder frei und löscht die Terminliste Die einzelnen Termine legst Du so an:
Delphi-Quellcode:
var termin: TTermin;
begin
  termin := TTermin.Create;
  termin.Datum := ...
  termin.Uhrzeit := ...
  termin.Titel := ...
  Termine.Add(termin);
und Zugreifen kannst Du auf diese Liste so:
Delphi-Quellcode:
var i: Integer;
    t: TTermin;
begin
  for i:=0 to Termine.Count-1 do begin
    t := TTermin(Termine[i]);
    ... // hier irgendwas mit dem Termin machen
  end;
So, zum Thema "Objekte" etc sollte es genügend Tutorials und Hilfen hier geben, schau dich einfach mal um.
  Mit Zitat antworten Zitat