@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.