AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit, Datum überwachen

Ein Thema von schrimm · begonnen am 11. Aug 2007 · letzter Beitrag vom 13. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
schrimm
(Gast)

n/a Beiträge
 
#1

Zeit, Datum überwachen

  Alt 11. Aug 2007, 19:47
Ich habe vor, eine Art Terminplaner mit Wecker zu machen.
Ich speichere jeden Termin in einer extra Textdatei, die Namen dieser Textdateien sind in einer Listbox eingetragen.
Nun brauch ich eine Idee, wie ich am besten einen abgleich machen kann, ob das gewünschte Datum, ... erreicht ist.
Ich dachte an ein array, wo ich die Taten reinschreibe und dann mit nem Timer kontrollieren lasse, ob es schon so weit ist.
Jedoch kenn ich bisher nur statische arrays und damit wäre die liste la beschränkt, dynamische arrays habe ich nicht wirklich was im Forum gefunden.
Vl. gibt es ja auch eine ganz andere Variante, um das zu realisieren.
Ich freue mich über jede anregung
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Zeit, Datum überwachen

  Alt 11. Aug 2007, 19:52
mit dynamischen arrays zuarbeiten ist eigentlich auch ganz einfach. du setzt halt nur die länge zur laufzeit mit setlength(...).
frage bei deinem vorhaben ist natürlich: wieviele termine willst du denn verwalten?
  Mit Zitat antworten Zitat
schrimm
(Gast)

n/a Beiträge
 
#3

Re: Zeit, Datum überwachen

  Alt 11. Aug 2007, 19:59
Wegen der Anzahl der Termine: das sollte 100% variabel sein, also so viel, wie der user will.
Wenn das mit den dynamischen arrays so geht, könnte man evtl. immer die anzahl der Termine nehmen (kann man ja aus der listbox einlesen).
Ich bräuchte nur mal ein kurzes Bsp, weil ich kenne arrays von der Deklaration her nur, indem man alles gleich festschreibt:
Delphi-Quellcode:
var
 Beistpeil: array[1..10,1..2] of string;
und dann wenn es möglich wäre auch noch, wie man dann die länge ändert
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zeit, Datum überwachen

  Alt 11. Aug 2007, 20:06
Es würde sich u.U. auch eine Datenbank anbieten.
Markus Kinzler
  Mit Zitat antworten Zitat
schrimm
(Gast)

n/a Beiträge
 
#5

Re: Zeit, Datum überwachen

  Alt 11. Aug 2007, 20:07
Zitat von mkinzler:
Es würde sich u.U. auch eine Datenbank anbieten.
ich kenn mich ja da ni soo aus, aber glaube, das wird recht aufwendig, dass zu lernen, da ham wir nächstes jahr in der schule 1 Jahr dafür zeit
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Zeit, Datum überwachen

  Alt 11. Aug 2007, 20:24
hier wird verdeutlicht wie man dynamisch die länge des arrays festlegt.
gibt aber auch genug beispiele im forum und im netz dazu.

Delphi-Quellcode:
unit frmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm3 = class(TForm)
    btnAdd: TButton;
    btnShowAll: TButton;
    procedure btnAddClick(Sender: TObject);
    procedure btnShowAllClick(Sender: TObject);
  private
    { Private declarations }
    FAppointmentArray: Array of String;
    procedure AddAppointment(const AValue: String);
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.AddAppointment(const AValue: String);
begin
  // die Länge neu festsetzen
  SetLength(FAppointmentArray, Length(FAppointmentArray)+1);
  // Wert zuweisen
  FAppointmentArray[High(FAppointmentArray)] := AValue;
end;

procedure TForm3.btnAddClick(Sender: TObject);
begin
  AddAppointment('Wert Nummer ' + IntToStr(Length(FAppointmentArray)));
end;

procedure TForm3.btnShowAllClick(Sender: TObject);
var
  i: Integer;
  ASL: TStringlist;
begin
  ASL := TStringlist.Create();
  try
    for i := 0 to high(FAppointmentArray) do
    begin
       ASL.Add(FAppointmentArray[i]);
    end;
    ShowMessage(ASL.Text);
  finally
    ASL.Free();
  end;
end;


end.
  Mit Zitat antworten Zitat
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
schrimm
(Gast)

n/a Beiträge
 
#8

Re: Zeit, Datum überwachen

  Alt 13. Aug 2007, 14:21
Hey, das ist ja eine Super BEschreibung, ich werd es gleich mal probieren
danke!!!
[Edit1]
bei TTermin = class(TObject) gibt es probleme:
": erwardet, aber = gefunen"
wenn ich da := hinmache kommt "ein Bezeicher erwardet, aber : gefunden"
wenn ich nur : hinmache kommt"ein Bezeicher erwardet, aber class gefunden"
ich hab das an folgender Stelle:
Delphi-Quellcode:
type
  TFHaupt = class(TForm) // mein Hauptformular
  TTermin = class(TObject)
    Datum: TDate;
    ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Zeit, Datum überwachen

  Alt 13. Aug 2007, 14:53
Und hier gibt es ein ganzen kurzes Tutorial dazu von mir:
http://www.michael-puff.de/Developer...er_Klassen.php

Und hier nochmal eine Demo in Form eine Memory-Spieles: http://www.delphipraxis.net/internal...=761178#761178
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
schrimm
(Gast)

n/a Beiträge
 
#10

Re: Zeit, Datum überwachen

  Alt 13. Aug 2007, 15:44
hmm, das Tutorial ist gut, aber bei dem aktuellem Problem hilft mir das nicht wirklich.
ich weiß nicht, wo ich das
TTermin = class(TObject)...
hinschreiben soll, weil wenn man das Unter, über, ... das Tform macht, dann gibt es immer Probleme

[Edit]
Hab das jetzte nochmal gemacht, ging auf einmal
aber jetzt kennt der das TObjektlist nicht, also undef. Bezeichner

//Edit2
Habe jetzt Einfach TList genommen, es geht
DANKE an alle, die mir geholfen haben
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz