Tech-Ecke / Delphi Inhalt / TStringGrid |
|
TStringGrid
Grundlegendes
Ein TStringGrid enthält Zellen,
welche in Zeilen und Spalten angeordnet sind. Der Inhalt einer
einzelnen Zelle
ist ein String.
Um Zellentext formatieren zu können, muss beim Zeichnen der Zellen Hand angelegt werden. Im Beispiel soll die erste Zeile (0) in rot und Fettdruck erscheinen. Dazu beim Ereignis OnDrawCell, der entsprechenden StringGrid (hier StringGrid1) folgenden Code hinterlegen.
Zeile markieren
StringGrid Zeile mit Rechtsklick markieren Durch einen Rechtsklick mit der Maus, wird die unter dem Mauscursor liegende Zeile markiert. Dazu hinter dem Event OnMouseDown folgenden Code hinterlegen:
Markierte Zeile ausgeben Bei Option goRowSelect wird die markierte Zeile über Selection.Top augegeben
Zellen / Zeilenmarkierung aufheben
Zeilen und Spalten zählen ( var Zahl: Integer;)
Zeilenhöhe und Spaltenbreite
An bestimmte Position scrollen (Scrollbarposition) Um an eine bestimmte Position zu springen wird die Eigenschaft TopRow verwenden. TopRow definiert die Zeile die als erste Zeile angezeigt wird. Also bei .TopRow := 5, wird die fünfte Zeile als erste Position angezeigt, demzufolge sind die Zeilen 1-4 oberhalb des Sichtbereiches.
Scrollbar vorhanden? Um zu prüfen ob eine Scrollbar vorhanden bzw. sichtbar ist oder nicht. Tipp: Die für die Spaltenbreite zur Verfügung stehende Pixelanzahl verringert sich um 17 Pixel wenn die vertikale Scrollbar eingeblendet ist.
Maus Scrollrad deaktivieren bzw. blockieren? Zum deaktivieren der Scrollfunktion über das Scrollrad der Maus in den beiden Events "OnMouseWheelDown" und "MouseWheelUp" den Handled auf "true" setzen.
Bild einer Zelle zuweisen Ein Bild bekommt man über die Klasse Canvas in eine Zelle. Dabei wird das Bild bei dem Event OnDrawCell in die Zelle gezeichnet. Folgender Code prüft beim OnDrawCell ob der Textinhalt, der gerade zu zeichnenden Zelle ein Pfad zu einer Datei ist. Ist dies der Fall, so wird diese Datei (Bitmapdatei) geladen und in die Zelle gezeichnet.
Anwendung Da das zuweisen eines Textes den OnDrawCell Event hervorruft, wird hier direkt das angegebene Bild in die entsprechende Zelle gezeichnet.
Eigener Hint-Text für jede Zelle
Zunächst muss veranlasst werden,
dass der Hint ständig aktualisiert wird, das wird
hier
gezeigt.
|
Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !
[letzte Aktualisierung 09.10.2006]