====== TDrawGrid — Raster, das der Aufrufer zeichnet ====== Ein [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]], das seine Zellen **nicht selbst füllt**: ''DefaultDrawing'' steht auf ''false'', und jede Zelle geht durch den eigenen Zeichen-Handler. Für alles, was kein Text ist — Farbfelder, Symbole, Balken, gemischte Darstellungen. Unit: ''vega.grids'' · Basis: [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] → [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:klassenbaum|Klassenbaum]] · [[lyx_-_programmiersprache:vega:guides:komponenten|Guide: Komponenten]] ---- ===== Vererbung ===== **Kette:** [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] → [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]] → [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] → **TDrawGrid** **Direkte Nachfahren:** keine — diese Klasse wird nicht weiter abgeleitet. **Quelle:** ''vega/grids.lyx'' ---- ===== Verwendung ===== var g: TDrawGrid := new TDrawGrid(); g.SetBounds(8, 8, 400, 200); g.SetColCount(4); g.SetRowCount(20); g.OnDrawCell := ZelleZeichnen; g.SetParent(f); ---- ===== Besonderheiten ===== * **Der einzige Unterschied zur Basis ist ''DefaultDrawing = false''.** Alles andere — Spalten, Zeilen, Auswahl, feste Bereiche, Rollen — steht bei [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]]. * **Zellinhalte kann man trotzdem ablegen.** Das Gitter führt seine Zeichenketten weiter; sie werden nur nicht mehr automatisch gemalt. * Wer nur einzelne Spalten selbst zeichnen will, nimmt das Gitter mit eingeschaltetem ''DefaultDrawing'' und färbt im Handler nach. ---- ===== Eigenschaften ===== Alle Eigenschaften, auch die geerbten. ^ Name ^ Typ ^ Bedeutung ^ Herkunft ^ | ''ComponentState'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zustand als Bitmaske (''csLoading'', ''csDestroying'' …) | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentStyle'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Stil als Bitmaske; Vorgabe ''csInheritable'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Name'' | [[lyx_-_programmiersprache:sprache:datentypen#8_zeiger|pchar]] | Name der Komponente — für ''FindComponent'' und beim Laden aus LFM | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''OwnedComponents'' | [[lyx_-_programmiersprache:vega:controls:tobjectlist|TObjectList]] | Die Komponenten, die DIESER gehoeren. Delphis Components[]. Zeigerliste, keine Kopien: TObjectList hält int64-Adressen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Owner'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | Wer diese Komponente wegraeumt. Nicht der Elternteil im Zeichenbaum — das ist bei TControl `Parent` | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Tag'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Freier Wert für eigene Zwecke; die Bibliothek fasst ihn nicht an | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''CancelSelect'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Im Handler setzen, um die Auswahl zu verhindern | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Cells'' | [[lyx_-_programmiersprache:vega:controls:tstringlist|TStringList]] | Zellinhalte, flach: row * ColCount + col | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ChangedIndex'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Betroffene Spalte bzw. Zeile der letzten Änderung | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ChangedIndex2'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zweiter Index der letzten Änderung | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ChangedIsRow'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Ob die letzte Änderung eine Zeile betraf | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ClickedCol'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zuletzt angeklickte Spalte | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Col'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Auswahl (nicht in den festen Bereichen) | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ColCount'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zahl der Spalten | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ColWidths'' | [[lyx_-_programmiersprache:vega:controls:tintarray|TIntArray]] | Auf dem Heap statt als `[64]int64`: ein Inline-Array in einer Ableitung von TControl ragt in dessen Children-Array hinein (#1630). Hier fiel es nie auf, weil ein Grid in der Regel keine … | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''DefaultColWidth'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Vorgabebreite neuer Spalten | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''DefaultDrawing'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Zeichnet das Gitter den Zellinhalt selbst? Delphis DefaultDrawing. Bei false bleiben Hintergrund, Auswahl und Netz stehen, der INHALT aber leer — dafuer ist dann OnDrawCell da. Das ist … | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''DrawCol'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Welche Zelle gerade gezeichnet wird — der Handler bekommt sie über diese Felder, weil Lyx keine Ereignisdaten-Objekte kennt | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''DrawRect'' | ''TRect'' | Rechteck der Zelle, die gerade gezeichnet wird | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''DrawRow'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zeile, die gerade gezeichnet wird — nur im Zeichen-Handler gültig | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Editable'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Darf der Nutzer Zellen ändern? Delphis goEditing. Aus, weil ein Gitter oft nur anzeigt und eine versehentliche Änderung dort teurer wäre als ein zusätzlicher Schalter | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''EditorMode'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Wird gerade getippt? Der Inhalt steht dann in _editBuf und noch nicht in der Zelle — Escape verwirft ihn, Eingabe übernimmt ihn | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''FixedCols'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zahl der festen Spalten links | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''FixedRows'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zahl der festen Zeilen oben | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''GridLines'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Gitterlinien zeichnen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''KeyNavigation'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Darf die Auswahl mit den Pfeiltasten wandern? | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''LeftCol'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Erste sichtbare Spalte | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Modified'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Hat der Nutzer seit dem letzten Zuruecksetzen etwas geaendert? Wie bei TEdit zählt Programmcode nicht mit | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Row'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Aktuelle Zeile | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''RowCount'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zahl der Zeilen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''RowHeight'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Einheitliche Zeilenhoehe. Delphi kennt zusätzlich RowHeights je Zeile — die stehen in _rowHeights; 0 heißt "diese Vorgabe" | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''RowSelect'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Was der Nutzer im Gitter darf. In Delphi eine Menge von Optionen; hier einzelne Schalter — eine Bitmaske wäre kuerzer, aber man muesste sie beim Lesen jedes Mal aufloesen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ShowHeader'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Zeigt das Gitter seine feste Kopfzeile hervorgehoben? | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''TopRow'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Erste sichtbare bewegliche Zeile/Spalte | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | ---- ===== Methoden ===== Alle Methoden, auch die geerbten. ^ Signatur ^ Zweck ^ Herkunft ^ | ''ClearState(bits: int64): void'' | Zustandsbits löschen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentCount(): int64'' | Anzahl der eigenen Komponenten | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentIndex(): int64'' | Delphis ComponentIndex: der eigene Platz in der Liste des Besitzers | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Components(index: int64): TComponent'' | Eigene Komponente an dieser Stelle | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Destroy(): void'' | Raeumt die eigene Liste ab, aber NICHT die Einträge — welche Komponenten ihre Besitztuemer mitnehmen, entscheidet die Ableitung über DestroyComponents() | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''DestroyComponents(): void'' | Baut die Besitztuemer ab. Von hinten, weil jedes Destroy() sich selbst aus der Liste austraegt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''FindComponent(name: pchar): TComponent'' | Sucht unter den EIGENEN Komponenten, eine Ebene tief — wie in Delphi | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetName(): pchar'' | Namen lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetNamePath(): pchar'' | Der eigene Name. Delphi hängt bei Unterkomponenten den des Besitzers davor; Vega hat keine, also ist es der Name selbst | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetTag(): int64'' | ''Tag'' lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''HasState(bits: int64): bool'' | Sind diese Zustandsbits gesetzt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''InitComponent(): void'' | Kein Konstruktor: lyxc vererbt Konstruktoren nicht, jede Ableitung ruft InitComponent() im eigenen Create() | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''InsertComponent(c: TComponent): void'' | Komponente in Besitz nehmen; ein bisheriger Besitzer gibt sie ab | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''RemoveComponent(c: TComponent): void'' | Komponente aus dem Besitz nehmen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetName(v: pchar): void'' | Setzt ''Name'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetState(bits: int64): void'' | Zustand setzen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetTag(v: int64): void'' | Setzt ''Tag'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''AutoSizeColumn(col: int64): void'' | Spaltenbreite an den laengsten Text anpassen — Delphis AutoSizeColumn. Der Innenabstand entspricht dem beim Zeichnen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''AutoSizeColumns(): void'' | Passt alle Spaltenbreiten an den Inhalt an | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''CellIndex(col: int64, row: int64): int64'' | Interner Index einer Zelle | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ClampSelection(): void'' | Auswahl in gültige Grenzen bringen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Clean(mitFesten: bool): void'' | Alle Zellen eines Bereichs leeren — Delphis Clean. Die festen Zeilen und Spalten bleiben stehen, wenn nur der Inhalt gemeint ist | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ColAtX(x: int64): int64'' | Spalte an einer x-Position | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ColLeft(col: int64): int64'' | Linke Kante einer Spalte in Pixeln, oder -1 wenn nicht sichtbar | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ColWidth(col: int64): int64'' | Spaltenbreite lesen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ColsTo(col: int64, dst: TStringList): void'' | Eine ganze Spalte bzw. Zeile in eine Liste — Delphis Cols[] und Rows[]. Kopiert, statt eine lebende Sicht zu liefern: der Inhalt liegt flach, eine Sicht muesste mitgefuehrt werden | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Create(): void'' | Anlegen; ''new TDrawGrid()'' | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''DeleteCol(index: int64): void'' | Entfernt Spalte ''index'' | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''DeleteRow(index: int64): void'' | Zeile an dieser Stelle entfernen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''EditText(): pchar'' | Der Text, der gerade bearbeitet wird | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ExchangeCols(a: int64, b: int64): void'' | Tauscht zwei Spalten | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ExchangeRows(a: int64, b: int64): void'' | Zwei Zeilen bzw. Spalten tauschen — Delphis ExchangeColRow | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''FixedHeight(): int64'' | Höhe des festen Kopfes. Mit eigenen Zeilenhoehen ist das keine Multiplikation mehr, sondern eine Summe | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''FixedWidth(): int64'' | Breite aller festen Spalten — sie stehen links und scrollen nicht | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''GetCell(col: int64, row: int64): pchar'' | Zelleninhalt lesen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''GetObject(col: int64, row: int64): int64'' | Delphis Objects: eine Zahl je Zelle, die die Anwendung fuellt | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''InitGrid(): void'' | Kein Konstruktor für die Ableitung: Lyx vererbt Create nicht, deshalb steht der Rumpf hier und TDrawGrid.Create ruft ihn | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''InsertCol(index: int64): void'' | Eine Spalte einfuegen. Teurer als eine Zeile, weil die Zellen flach liegen: es wird in jeder Zeile eine Stelle eingeschoben | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''InsertRow(index: int64): void'' | Eine Zeile einfuegen. Delphis InsertColRow, auf Zeilen beschraenkt — Spalten wandern in einem Gitter selten, und jede Spaltenoperation muesste zusätzlich die Breiten verschieben | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''LoadFromCSVFile(pfad: pchar): bool'' | Datei lesen und das Gitter darauf einstellen. Zeilen- und Spaltenzahl ergeben sich aus dem Inhalt; die feste Kopfzeile bleibt, wie sie eingestellt ist | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''MoveCol(von: int64, nach: int64): void'' | Verschiebt eine Spalte von ''von'' nach ''nach'' | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''MoveRow(von: int64, nach: int64): void'' | Eine Zeile an eine andere Stelle schieben — Delphis MoveColRow | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnColRowExchangedRef(): TNotifyEvent'' | Lyx hat keine Ereignisfelder ohne Namen — dieser Umweg hält ExchangeRows/ExchangeCols bei OnColRowMoved, statt ein zweites Feld einzufuehren, das dasselbe meldet | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''RowAtY(y: int64): int64'' | Zeile an einer y-Position | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''RowHeights(row: int64): int64'' | Höhe einer Zeile. 0 im Feld heißt "die gemeinsame Vorgabe" — so bleibt ein Gitter ohne eigene Höhen genau so schnell wie vorher. Der Wachhund auf _rowHeights ist Pflicht: Konstruktoren … | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''RowTop(row: int64): int64'' | Obere Kante einer Zeile, oder -1 wenn nicht sichtbar | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''RowsTo(row: int64, dst: TStringList): void'' | Schreibt Zeile ''row'' nach ''dst'' | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SaveToCSVFile(pfad: pchar): bool'' | Schreibt das Gitter als CSV-Datei | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''ScrollToCell(): void'' | Auswahl sichtbar machen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetCell(col: int64, row: int64, s: pchar): void'' | Zeichen an diese Stelle setzen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetColFrom(col: int64, src: TStringList): void'' | Füllt Spalte ''col'' aus ''src'' | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetColWidth(col: int64, w: int64): void'' | Spaltenbreite setzen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetEditText(s: pchar): void'' | Setzt den Text der laufenden Bearbeitung | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetObject(col: int64, row: int64, v: int64): void'' | Hängt einen Wert an die Zelle (''col'',''row'') | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetRowFrom(row: int64, src: TStringList): void'' | Füllt Zeile ''row'' aus ''src'' | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetRowHeights(row: int64, h: int64): void'' | Setzt die Höhe von Zeile ''row'' | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetSelection(col: int64, row: int64): void'' | Auswahl auf ''start'' mit ''laenge'' setzen | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SetSize(cols: int64, rows: int64): void'' | Zeilen und Spalten festlegen. Vorhandene Inhalte gehen dabei verloren — das Umsortieren einer flachen Liste bei geaenderter Spaltenzahl wäre mehr Aufwand als es wert ist; wer Inhalte … | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''SortByColumn(col: int64, aufsteigend: bool): void'' | Nach einer Spalte sortieren. Die festen Zeilen bleiben oben stehen — sie sind Überschriften und gehoeren nicht in die Ordnung | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''VisibleRows(): int64'' | Wie viele Zeilen unter den Kopf passen — ab der ersten sichtbaren | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''Create(): void'' | Anlegen; ''new TDrawGrid()'' | eigen | ---- ===== Ereignisse ===== ^ Name ^ Typ ^ Wann ^ Herkunft ^ | ''OnColRowDeleted'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Eine Spalte oder Zeile wurde gelöscht | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnColRowInserted'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Zeilen und Spalten kamen dazu, gingen weg oder haben den Platz getauscht. Welche es waren, steht in ChangedIndex/ChangedIndex2, und ob es Zeilen oder Spalten waren, in ChangedIsRow | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnColRowMoved'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Eine Spalte oder Zeile wurde verschoben | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnDrawCell'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TDrawCellEvent]] | Eine Zelle selbst zeichnen. Ist der Handler gesetzt, malt das Gitter Hintergrund und Rahmen und überlaesst den Inhalt der Anwendung — das ist der Unterschied zwischen TStringGrid und … | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnHeaderClick'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Klick auf eine feste Zeile (Überschrift). Die Spalte steht in ClickedCol | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnSelectCell'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Eine Zelle wurde ausgewählt | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnSelectingCell'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Vor dem Wechsel der Auswahl. Setzt der Handler CancelSelect auf true, bleibt sie stehen — der Weg für "erst speichern" | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | | ''OnSetEditText'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Nach dem Bearbeiten einer Zelle | [[lyx_-_programmiersprache:vega:controls:tstringgrid|TStringGrid]] | ---- Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus ''vega/grids.lyx'' im Repo ''lyx-vcl''.