Thema: Delphi Kalender programmieren?

Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#26

AW: Praxis Terminplaner

  Alt 12. Jan 2016, 19:42
@Perlsau
Das Bild von deinem Terminkalender gefällt mir sehr gut.
Was für eine Komponente hast du für die Darstellung genommen.
Was nutz du als Datenspeicherung? (SQL?)
Das ist ein ganz normales StringGrid bzw. das TjvStringGrid aus den Jedi-Komponenten. Es gibt in meinem Terminator vier Ansichten auf vier TabSheets: Tages-, Wochen-, Monats- und Jahresüberblick. Zugrunde liegt eine Firebird-Datenbank, als DB-Komponenten kommt IbDac zum Einsatz, die Termintabelle sieht so aus:
Code:
CREATE TABLE TERMINE (
    IDX_TERMINE  BIGINT NOT NULL,
    BENUTZER     INTEGER DEFAULT 0 NOT NULL,
    DATUM_START  DATE,
    ZEIT_START   TIME,
    DATUM_ENDE   DATE,
    ZEIT_ENDE    TIME,
    BESCHREIBUNG VARCHAR(200) DEFAULT '' NOT NULL COLLATE UNICODE,
    ERLEDIGT     INTBOOLEAN DEFAULT 0 /* INTBOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (VALUE IN (0,1)) */,
    ALARMEIN     INTBOOLEAN DEFAULT 1 /* INTBOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (VALUE IN (0,1)) */,
    ANLEGER      INTEGER DEFAULT 0 NOT NULL,
    DATUM        TIMESTAMP,
    DAUER        TIME);
Allerdings ist mein Konzept nicht wirklich ausgereift, genügt aber meinen Ansprüchen bzw. denen eines gemeinnützigen Vereins, für den ich das vor bald drei Jahren zu entwickeln begonnen hatte. Heute würde ich vieles anders angehen.

Die Felder welche ein "N:" oder "I:" oder "P:" haben werden anders eingefärbt. Ich nutze dazu eben diese "zwei Zeichen(der buchstabe und der doppelpunkt)" um die Celle im onDrawEvent zu identifizieren - gibt es da noch eine andere Möglichkeit?
Das liegt an dir. Irgendwo in deinen Ursprungsdaten, aus denen heraus du dein StringGrid befüllst, steht doch sicher die Information, die du benötigst, um die entsprechende Zelle anders einzufärben. Im Falle einer SQL-Datenbank hätte ich da eine Spalte z.B. mit dem Namen KATEGORIE oder so. Beim Abklappern der Tabelle zum Ausgeben der Werte in ein StringGrid fragst du in OnDrawCell eben einfach diese Spalte in deiner Tabelle ab und zeichnest die entsprechende Zelle dann mit der entsprechenden Farbe.

Geändert von Perlsau (12. Jan 2016 um 19:48 Uhr)
  Mit Zitat antworten Zitat