====== TSyntaxEdit — Quelltextfeld mit Einfärbung ====== Ein [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]], das seinen Inhalt nach einer **Sprachdefinition** einfärbt: Schlüsselwörter, Zeichenketten, Zahlen und Kommentare. Gedacht für Quelltext in Werkzeugen und Editoren. Unit: ''vega.syntaxedit'' · Basis: [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] → [[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:tcustomedit|TCustomEdit]] → [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] → [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] → **TSyntaxEdit** **Direkte Nachfahren:** keine — diese Klasse wird nicht weiter abgeleitet. **Quelle:** ''vega/syntaxedit.lyx'' ---- ===== Verwendung ===== var se: TSyntaxEdit := new TSyntaxEdit(); se.SetBounds(8, 8, 500, 300); se.SetParent(f); se.SetSyntax(SyntaxLyx()); // eingebaute Sprachdefinition se.SetText(quelltext); Ohne Sprachdefinition (''Syntax = 0'') verhält sich das Feld wie ein [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] ohne Läufe. ---- ===== Besonderheiten ===== * **''OwnsSyntax'' regelt, wer die Sprachdefinition freigibt.** Wer sie über ''SetSyntax'' anhängt, behält sie; wer eine der eingebauten nimmt, übergibt sie an das Feld. * **''Colors'' hält die Farbzuordnung** je Kategorie — sie lässt sich einzeln umstellen, ohne die Sprachdefinition anzufassen. * **Nach jeder Änderung wird neu eingefärbt.** Das lässt sich abschalten, wenn ein Programm den Text in vielen Schritten aufbaut und erst am Ende ein Ergebnis sehen will. ---- ===== 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]] | | ''AutoSelect'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Beim Hineinspringen alles auswaehlen — so ersetzt die nächste Eingabe den alten Inhalt | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Backend'' | ''IVegaBackend'' | Die Zwischenablage laeuft über vega.clipbrd, nicht mehr über einen eigenen Backend-Verweis: die eine Ablage des Prozesses bekommt ihr Backend von TApplication.Init, und zwar BEVOR … | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''CaretPos'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Byteposition der Schreibmarke | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''CaretVisible'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Blinkt die Marke gerade sichtbar? Die Zeitsteuerung macht TApplication über einen Timer, der CaretVisible umschaltet | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''CharCase'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Gross-/Kleinschreibung erzwingen, siehe TEditCharCase | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''HideSelection'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Auswahl auch dann zeigen, wenn das Feld den Fokus verloren hat? Delphi-Vorgabe: nein | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''MaxLength'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Liest ''MaxLength'' | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Modified'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Hat der NUTZER seit dem letzten Zuruecksetzen etwas geaendert? Ein SetText aus dem Programm zählt nicht — sonst wäre die Frage "muss gespeichert werden?" nach jedem Laden mit ja beantwortet | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''NumbersOnly'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Nur Ziffern annehmen. Delphis NumbersOnly: gefiltert wird die EINGABE, nicht SetText — ein Programm darf weiter schreiben, was es will, sonst kann es einen Fehlwert nicht mehr anzeigen | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''ReadOnly'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Nur lesen, keine Eingabe | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''ScrollX'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Waagerechte Verschiebung in Pixeln, damit die Marke sichtbar bleibt | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SelStart'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Ankerpunkt der Auswahl; gleich CaretPos heißt "nichts ausgewählt" | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Text'' | [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] | [[lyx_-_programmiersprache:vega:controls:tcombobox | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''TextHint'' | [[lyx_-_programmiersprache:sprache:datentypen#8_zeiger|pchar]] | Graue Andeutung im leeren Feld ("Suchbegriff..."). Wird nicht ausgewählt, nicht kopiert und nicht mitgezaehlt — sie ist kein Text, sondern eine Beschriftung, die im Feld sitzt | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''UndoBuffer'' | [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] | Ein Schritt zurück. Delphi merkt sich genau einen Stand; ein zweites Undo stellt den Zustand davor wieder her (also Redo). Mehr Stufen wären eine eigene Verwaltung — die kommt mit … | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''UndoCaret'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Position der Schreibmarke im Rückgängig-Puffer | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''UndoValid'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Ob der Rückgängig-Puffer belegt ist | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''WantReturns'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Nimmt das Feld Eingabe- und Tabtaste selbst an? Nur mehrzeilige Felder werten das aus; die Felder stehen trotzdem HIER, weil jede Ableitung über InitEdit hochkommt und TMemo.Create nicht … | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''WantTabs'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Tabulator geht ins Feld statt zum nächsten Element | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Alignment'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Ausrichtung der Zeilen — Delphis Alignment am mehrzeiligen Feld. Sie gilt für ALLE Zeilen; Delphis Paragraph.Alignment je Absatz gibt es hier nicht, weil ein Absatzverzeichnis beim … | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''TopLine'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Erste sichtbare Zeile (senkrechtes Scrollen) | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''DefColor'' | ''TColor'' | Womit neu getippter Text ausgezeichnet wird — Delphis DefAttributes | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''DefStyle'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Schnitt für neu getippten Text | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''PlainText'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Nur Text, keine Auszeichnungen. Wie in Delphi: gesetzt, verhaelt sich das Feld wie ein TMemo, und die Laeufe bleiben unbeachtet | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''Runs'' | [[lyx_-_programmiersprache:vega:controls:tobjectlist|TObjectList]] | Die Laeufe, nach Start sortiert und überlappungsfrei | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''AutoHighlight'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Nach jeder Änderung neu einfaerben. Aus, wenn ein Programm den Text in vielen Schritten aufbaut und erst am Ende faerben will | eigen | | ''AutoIndent'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Bei Zeilenumbruch die Einrueckung der Vorzeile übernehmen | eigen | | ''BracketColor'' | ''TColor'' | Farbe für zusammengehörende Klammern | eigen | | ''Colors'' | ''TSyntaxColors'' | Farbe an dieser Stelle | eigen | | ''CurrentLineColor'' | ''TColor'' | Hintergrund der Zeile mit der Schreibmarke | eigen | | ''GutterColor'' | ''TColor'' | Farbe des Randstreifens | eigen | | ''HighlightCurrentLine'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Die Zeile mit der Schreibmarke hinterlegen. Hilft beim Wiederfinden der Stelle, wenn der Blick zwischen Fenstern gewandert ist | eigen | | ''LineNumberColor'' | ''TColor'' | Farbe der Zeilennummern | eigen | | ''MatchBrackets'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Zusammengehoerende Klammern hervorheben, sobald die Marke an einer steht | eigen | | ''OwnsSyntax'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Gehoert die Sprache diesem Feld? Wer sie über SetSyntax anhaengt, behaelt sie; wer eine der eingebauten nimmt, übergibt sie | eigen | | ''ShowLineNumbers'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Zeilennummern im Streifen links | eigen | | ''Syntax'' | ''TSyntaxDef'' | Die Sprache. 0 heißt: nichts einfaerben, dann verhaelt sich das Feld wie ein TRichEdit ohne Laeufe | eigen | | ''TabWidth'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Wie viele Leerzeichen eine Tabulatortaste einfuegt. WantTabs selbst steht seit dem Nachziehen an TMemo — die Taste bleibt im Feld, statt zum nächsten Control zu springen. Der Unterschied … | eigen | ---- ===== 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]] | | ''ApplyCharCase(cp: int64): int64'' | Ein Zeichen durch die Schreibweisenregel schicken. Nur ASCII — Umlaute richtig zu behandeln braucht eine Tabelle, und die gehört nicht in ein Eingabefeld | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Backspace(): void'' | Auch Loeschen ist eine Änderung durch den Nutzer — aber erst NACH der ReadOnly-Pruefung, sonst gilt ein Feld als geaendert, in dem gar nichts passieren konnte | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''CanUndo(): bool'' | Ob ein Rückgängig möglich ist | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Changed(): void'' | Änderung melden | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Clear(): void'' | Auswahl von Hand setzen, wie SelStart/SelLength in Delphi. Feld leeren. In Delphi an TCustomEdit, deshalb hier und nicht in TEdit — TMemo braucht dasselbe | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''ClearSelection(): void'' | Auswahl aufheben | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''ClearUndo(): void'' | Verwirft den Rückgängig-Puffer | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''CopyToClipboard(): bool'' | Ausgewaehlten Text kopieren. Ohne Auswahl passiert nichts — wie überall | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''CutToClipboard(): bool'' | Ausschneiden | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''DeleteForward(): void'' | Zeichen rechts löschen | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''DeleteSelection(): bool'' | Ausgewaehlten Text löschen. Liefert true, wenn etwas entfernt wurde | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''GetText(): pchar'' | Inhalt lesen | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''HasSelection(): bool'' | Es ist etwas ausgewählt | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''InitEdit(): void'' | Grundzustand des Eingabefelds | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''InsertChar(cp: int64): void'' | Zeichen einfügen | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''IsWordByte(b: int64): bool'' | Zaehlt ein Zeichen zum Wort? Ziffern, Buchstaben und der Unterstrich — alles ab 128 gilt als Buchstabe, damit Umlaute nicht mitten im Wort eine Grenze bilden. Eine echte Unicode-Tabelle … | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''MoveCaret(pos: int64, keep: bool): void'' | Marke setzen. `keep` behaelt den Ankerpunkt (Umschalt+Pfeil erweitert die Auswahl), sonst wird sie aufgehoben | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''PasteFromClipboard(): bool'' | Einfuegen ersetzt eine bestehende Auswahl — so erwartet man es | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SaveUndo(): void'' | Den jetzigen Stand als Rueckfallpunkt merken. Wird VOR jeder Änderung durch den Nutzer gerufen | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SelHigh(): int64'' | Größere Grenze der Auswahl | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SelLength(): int64'' | Länge der Auswahl in Bytes | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SelLow(): int64'' | Kleinere Grenze der Auswahl | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SelTextTo(dst: TTextBuffer): void'' | Der ausgewählte Text. Der Puffer gehört dem AUFRUFER — er hat ihn mitgebracht, damit hier nichts angelegt wird, das niemand freigibt | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SelectAll(): void'' | Alles auswählen | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SelectWordAt(pos: int64): void'' | Das Wort an einer Stelle auswaehlen — der Doppelklick. Steht die Stelle nicht IN einem Wort (Leerraum, Satzzeichen), wird das Zeichen darunter genommen: eine Auswahl von Länge null wäre … | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SetCharCase(v: int64): void'' | Setzt ''CharCase'' | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SetModified(v: bool): void'' | Setzt ''Modified'' | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SetSelText(s: pchar): void'' | Die Auswahl durch anderen Text ersetzen. Ohne Auswahl wird an der Marke eingefuegt — genau wie Delphis SelText-Zuweisung | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SetSelection(start: int64, laenge: int64): void'' | Auswahl auf ''start'' mit ''laenge'' setzen | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SetText(s: pchar): void'' | Setzt ''Text'' | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''SetTextHint(s: pchar): void'' | Setzt ''TextHint'' | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''ShowingTextHint(): bool'' | Zeigt das Feld gerade nur seine Andeutung? | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''TextLength(): int64'' | Länge | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''Undo(): bool'' | Tauschen statt überschreiben: so ist das zweite Undo das Redo | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''WordEnd(pos: int64): int64'' | Ende des Wortes, in dem pos liegt | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''WordStart(pos: int64): int64'' | Anfang des Wortes, in dem pos liegt | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''AddLine(s: pchar): void'' | Zeile anhängen | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''Append(s: pchar): void'' | Delphis Name für AddLine. Beides steht hier, weil Lines.Add der gewohnte Weg ist und Append der kurze | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''ClearLines(): void'' | Alles löschen | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''Create(text: pchar): void'' | Anlegen; ''new TSyntaxEdit()'' | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''GetLine(index: int64): pchar'' | Eine einzelne Zeile lesen bzw. anhaengen — der haeufigste Fall, ohne dass dafuer eine ganze Liste entstehen muss | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''GetLines(): TStringList'' | Aktuellen Inhalt als Liste. Der Aufrufer besitzt sie und gibt sie frei | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''LineAt(pos: int64): int64'' | In welcher Zeile liegt diese Byteposition? | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''LineCount(): int64'' | Anzahl Zeilen: Umbrueche plus eins. Ein leerer Text hat eine Zeile | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''LineEnd(line: int64): int64'' | Byteposition des Zeilenendes (vor dem Umbruch) | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''LineStart(line: int64): int64'' | Byteposition, an der Zeile `line` beginnt | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''LineTextTo(dst: TTextBuffer, line: int64): void'' | Eine einzelne Zeile in den Puffer des Aufrufers | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''LineX(line: int64, pad: int64): int64'' | Linker Rand EINER Zeile. Bei linksbuendigem Text ist das der Rand; sonst hängt er an der Breite dieser Zeile, und deshalb rechnet ihn auch die Schreibmarke über dieselbe Methode aus | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''LinesTo(dst: TStringList): void'' | Alle Zeilen in eine Liste. Die Liste gehört dem Aufrufer | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''RangeWidth(a: int64, b: int64): int64'' | Pixelbreite des Textes zwischen zwei BYTE-Positionen im Puffer. Der Puffer ist nicht je Zeile nullterminiert, deshalb kann hier nicht TextWidthUpTo benutzt werden — es wird bis zur … | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''SetAlignment(v: int64): void'' | Setzt ''Alignment'' | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''SetLines(l: TStringList): void'' | Inhalt aus einer Liste setzen. Hier stand einmal eine zweite Fassung weiter unten in derselben Klasse. lyxc übersetzt das ohne Fehler (#1668) und nimmt die ZUERST deklarierte — die … | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''TextLeft(): int64'' | Linke Kante des Textbereichs | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''VisibleLines(): int64'' | Wieviele Zeilen passen ins Feld? | [[lyx_-_programmiersprache:vega:controls:tmemo|TMemo]] | | ''ClearAttrs(): void'' | Entfernt alle Auszeichnungen | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''ClearRuns(): void'' | Entfernt alle Läufe | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''ColorAt(pos: int64): TColor'' | Farbe an dieser Stelle | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''Create(text: pchar): void'' | Anlegen; ''new TSyntaxEdit()'' | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''DoSelectionChange(): void'' | Meldet eine geänderte Auswahl nach außen | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''FindText(was: pchar, ab: int64, achteAufGrosz: bool): int64'' | Delphis FindText: liefert die Byteposition oder -1. Ohne Gross-/Kleinschreibung zu beachten wäre es die Haelfte der Faelle; deshalb ist es ein Schalter | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''Run(i: int64): TAttrRun'' | Ereignisschleife starten | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''RunAt(pos: int64): TAttrRun'' | Der Lauf, der die Byteposition enthaelt — oder null, wenn dort nichts ausgezeichnet ist | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''RunCount(): int64'' | Zahl der Läufe | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''SelColor(): TColor'' | Die Auszeichnung der Auswahl lesen. Uneinheitlich ausgezeichnet? Dann gilt, was am Anfang steht — wie in Delphi | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''SelHasUniformStyle(): bool'' | Traegt der ganze ausgewählte Bereich denselben Schnitt? Delphi liefert dafuer eine "unbestimmt"-Antwort; hier ist es eine Frage | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''SelStyle(): int64'' | Schnitt der Auswahl | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''SelectRange(a: int64, laenge: int64): void'' | Fundstelle auswaehlen — damit ist die Suche auch sichtbar | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''SetRangeAttrs(a: int64, b: int64, c: TColor, st: int64): void'' | Einen Bereich auszeichnen. Das ist der Kern: Delphis SelAttributes.Color := clRed | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''SetSelAttrs(c: TColor, st: int64): bool'' | Dasselbe für die aktuelle Auswahl — der übliche Weg | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''ShiftRuns(ab: int64, delta: int64): void'' | Verschiebt die Läufe nach einer Textänderung | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''StyleAt(pos: int64): int64'' | Schnitt an dieser Stelle | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''ToggleSelStyle(bit: int64): bool'' | Einen Schnitt an- oder abschalten, ohne die Farbe anzufassen | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | | ''BracketPos1(): int64'' | Position der ersten gefundenen Klammer | eigen | | ''BracketPos2(): int64'' | Position der zugehörigen Klammer | eigen | | ''Create(text: pchar): void'' | Anlegen; ''new TSyntaxEdit()'' | eigen | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | eigen | | ''FindMatchingBracket(pos: int64): int64'' | Den Partner zu der Klammer an `pos` suchen. -1, wenn keiner da ist. Gezaehlt wird mitlaufend: jede gleichartige Klammer erhoeht, jede gegenlaeufige senkt — bei null ist der Partner erreicht | eigen | | ''GutterWidth(): int64'' | Breite des Randstreifens | eigen | | ''IndentOfLine(line: int64, dst: TTextBuffer): void'' | Die Einrueckung einer Zeile als Zeichenkette — Leerzeichen und Tabulatoren, wie sie dort stehen | eigen | | ''InsertTab(): void'' | Leerzeichen bis zur nächsten Tabulatorspalte einfuegen. Nicht TabWidth Stück: wer in Spalte 3 steht, will auf 4, nicht auf 7 | eigen | | ''LineNumberDigits(): int64'' | Wieviele Stellen die groesste Zeilennummer hat. Danach richtet sich die Breite — eine Datei mit 80 Zeilen braucht keinen Platz für vier Ziffern | eigen | | ''Rehighlight(): void'' | Den ganzen Text neu einfaerben. Der Abtaster fragt an jeder Stelle in fester Reihenfolge: steht hier ein Blockkommentar, ein Zeilenkommentar, eine Zeichenkette, eine Zahl, ein Wort? Die … | eigen | | ''SetSource(s: pchar): void'' | Text von aussen setzen — danach ebenfalls faerben | eigen | | ''SetSyntax(s: TSyntaxDef): void'' | Eine Sprache anhaengen, die dem Aufrufer gehört | eigen | | ''SyntaxName(): pchar'' | Name der eingestellten Sprache | eigen | | ''TakeSyntax(s: TSyntaxDef): void'' | Eine Sprache übernehmen — das Feld raeumt sie später weg | eigen | | ''UpdateBrackets(): void'' | Nach jeder Bewegung der Marke: liegt sie an einer Klammer? Geprueft wird an der Marke UND davor — steht sie hinter einer schließenden Klammer, ist die gemeint, so wie es jeder Editor hält | eigen | ---- ===== Ereignisse ===== ^ Name ^ Typ ^ Wann ^ Herkunft ^ | ''OnChange'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Der Inhalt oder die Auswahl hat sich geändert | [[lyx_-_programmiersprache:vega:controls:tcustomedit|TCustomEdit]] | | ''OnSelectionChange'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Meldet sich, wenn sich Auswahl ODER deren Auszeichnung geaendert hat | [[lyx_-_programmiersprache:vega:controls:trichedit|TRichEdit]] | ---- Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus ''vega/syntaxedit.lyx'' im Repo ''lyx-vcl''.