Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
sunshine270882
Anmeldungsdatum: 23.02.2005 Beiträge: 3 Wohnort: bei Hamburg
|
Verfasst am: 14. Feb 2006 00:48 Titel: DrawGrid <-> StringGrid |
|
|
Hallo an alle!
Ich habe gerade ein Entscheidungsproblem:
Und zwar möchte ich ein Grid benutzen, um einen Kalender darzustellen, in dessen Zellen ich Strings mit verschiedenen Farben reinschreiben kann (String farbig schreiben) - auch mit Zeilenumbrüchen - und ich möchte z.B. die Wochenenden grau unterlegen (Zelle farbig füllen).
Dabei habe ich gerade das Problem, dass ich mich für keine der beiden Komponenten entscheiden kann:
Das StringGrid ermöglicht mir ja einen indizierten Zugriff auf die Zellen, den ich gerne nutzen möchte; da kann ich einen String farbig reinschreiben, es ist mir aber ein Rätsel, wie ich dann einen Zeilenumbruch realisere und wie der nächste String dann in einer anderen Farbe geschrieben werden soll
Davon mal abgesehen weiß ich auch nicht, wie ich Zellen farbig markieren kann
Das DrawGrid soll ja für alles, was mit zeichen/Farben usw zu tun hat, besser sein als das StringGrid; aber da habe ich ja keinen indizierten Zugriff auf die Zellen, weiß also nicht, wie ich da dann meine Daten reinschreiben soll....
Klar ist mir, dass ich für beide Fälle das OnDrawCell-Ereignis nutzen muss, aber wie...
Zur Info: Meine Daten (Datum, Uhrzeit, Terminnotiz) befinden sich zeitlich sortiert in einer doppelt verketteten Liste. Da es ein Mehrbenutzersystem ist, hat jeder Benutzer seine eigene Farbe und einen Verweis auf seine Termin-Liste; deswegen sollen die Termine in der Benutzerfarbe dargestellt werden.
Wenn jetzt also jemand eine super Idee hat und mir bei meiner Entscheidung für oder gegen eine der Komponenten helfen kann...
... immer her mit den Vorschlägen
Freu mich auf jeden Fall
Liebe Grüße, Sunny |
|
Nach oben |
|
 |
|
sunshine270882
Anmeldungsdatum: 23.02.2005 Beiträge: 3 Wohnort: bei Hamburg
|
Verfasst am: 22. Feb 2006 22:34 Titel: Endlich entschieden! |
|
|
Hab mich doch jetzt tatsächlich entschieden!
Mein Problem lag gar nicht direkt bei den beiden Komponenten und deren Vor- und Nachteilen.
Das eigentliche Problem war, dass ich meine Daten aus meiner Liste ausgelesen und beim Stringgrid mit indizierten Zugriff in die Zellen geschrieben habe, die Zelleninhalte dann wieder ausgelesen habe und anschließend versucht habe, die Strings farbig zu malen, was nihct umsetzbar ist, weil mir die Farbinformation beim ersten Schreiben verloren gegangen ist.
Deshalb arbeite ich jetzt ausschließlich mit dem OnDrawCell-Ereignis, was mir ja die Koordinaten für die gerade zu zeichnende Zelle liefert, lese meine Daten aus und schreibe diese dann farbig in die Zelle, markiere auch den Hintergrund farbig bei den Zellen, wo es sein muss
Der Zeilenumbruch hat nach vielem Ausprobieren jetzt auch endlich geklappt
Das einzige, was jetzt noch nicht geht, ist das Anpassen der Zellenhöhe
Bei dem, was ich jetzt mache, flackert die Anzeige sehr stark und die CPU ist zu 100% ausgelastet.
Also habe ich da wohl eine Endlosschleife produziert, die ich aber nicht lokalisieren kann...
Da scheint jedenfalls beim Repaint des Grids was schief zu laufen
Vielleicht hat ja jemand einen Tipp für mich?
Würde mich wirklich freuen!
LG Sunny |
|
Nach oben |
|
 |
Felix Gast
|
Verfasst am: 15. März 2006 15:52 Titel: |
|
|
Hallo,
Also die Spaltenbreite geht mit; Form1->StringGrid1->ColWidths[index]=int;
Die Zeilenhöhe müsst also mit: Form1->StringGrid1->RowHeights[index]=int;
Bei der endlosschleife kann ich dir leider nicht helfen.
Noch ne Frage an dich:
Wie hast du das mit den einzelnen farbigen Zellen umgesetzt?
Wie heißt dort der Befehl?
Felix |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum nicht herunterladen
|
|