====== TReplaceDialog — Suchen und Ersetzen ====== Dasselbe Fenster wie [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]], um ein Eingabefeld und zwei Knöpfe erweitert: „Ersetzen“ und „Alle ersetzen“. Ebenfalls **nicht modal**. Unit: ''Vega.FindDlg'' · Basis: [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] → [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:guides:dialoge|Guide: Dialoge]] ---- ===== Vererbung ===== **Kette:** [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] → **TReplaceDialog** **Direkte Nachfahren:** keine — diese Klasse wird nicht weiter abgeleitet. **Quelle:** ''vega/finddlg.lyx'' ---- ===== Verwendung ===== fn AufErsetzen(sender: TFindDialog): void { var r: TReplaceDialog := sender as TReplaceDialog; Print(sender.FindText.AsPChar()); // alt Print(r.ReplaceText.AsPChar()); // neu Print(IntToStr(sender.HasOption(frReplaceAll) as int64)); // 0 = einer, 1 = alle } var r: TReplaceDialog := new TReplaceDialog(); r.SetFindText("alt"); r.SetReplaceText("neu"); r.OnFind := AufSuchen; // „Weitersuchen“ gibt es weiterhin r.OnReplace := AufErsetzen; r.Execute(app); ---- ===== Besonderheiten ===== * **„Ersetzen“ und „Alle ersetzen“ sind dasselbe Ereignis.** Beide rufen ''OnReplace''; unterschieden wird allein über das Bit ''frReplaceAll'' — gemessen: 0 beim einzelnen, 1 beim Alle-Ersetzen. * Der Handler bekommt ein ''TFindDialog''. Für ''ReplaceText'' führt der Weg über ''sender as TReplaceDialog''; der Ereignistyp ist für beide Dialoge derselbe. * ''DialogHeight'' und ''BuildForm'' sind **überschrieben**, nicht neu geschrieben: das Fenster entsteht in der Basisklasse, hier kommen nur Feld und Knöpfe dazu. Gemessen: 226 statt 190 Pixel. * ''ReadFromControls'' ist ebenfalls überschrieben und holt zusätzlich den Ersetzungstext. * Alles Weitere — ''Execute'', ''CloseDialog'', ''Options'', ''OnFind'', ''OnClose'' — steht bei [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] und gilt unverändert. Letzte Aktualisierung: 2026-09-05 — gegen ''lyx-vcl/vega/*.lyx'' abgeglichen: Abschnitt „Vererbung" (Vorfahr-Kette, direkte Nachfahren, Quelldatei) ergänzt und die fehlenden Eigenschaften, Methoden und Ereignisse nachgetragen. Vorherige letzte Aktualisierung: 2026-08-20 — API maschinell aus ''Vega/FindDlg.lyx'' erhoben, Beispiel mit ''lyxc 1.1.4B'' übersetzt und ausgeführt. ===== Eigenschaften ===== Alle Eigenschaften, auch die geerbten. ^ Name ^ Typ ^ Bedeutung ^ Herkunft ^ | ''ReplaceText'' | [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] | Der Ersetzungstext | eigen | | ''Form'' | [[lyx_-_programmiersprache:vega:controls:tform|TForm]] | Das Fenster selbst — öffentlich, weil ein nicht-modaler Dialog von außen erreichbar sein muss | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''FindText'' | [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] | Der gesuchte Text | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''Options'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Suchoptionen als Bitmaske: ''frDown'' (1), ''frMatchCase'' (2), ''frWholeWord'' (4), ''frReplaceAll'' (8) | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''Title'' | [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] | Titel des Fensters | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''Visible'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Wird gezeichnet und nimmt am Layout teil | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | ---- ===== Methoden ===== Alle Methoden, auch die geerbten. ^ Signatur ^ Zweck ^ Herkunft ^ | ''Create(): void'' | Konstruktor | eigen | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | eigen | | ''SetReplaceText(s: pchar): void'' | Ersetzungstext setzen | eigen | | ''DialogHeight(): int64'' | Höhe des Fensters — überschreibbar | eigen | | ''BuildForm(): TForm'' | Das Fenster aufbauen — überschreibbar | eigen | | ''AddButtons(dlg: TForm, w: int64, h: int64): void'' | Die Knopfreihe anlegen — überschreibbar | eigen | | ''ReadFromControls(): void'' | Stand der Eingabefelder in die Felder des Dialogs übernehmen | eigen | | ''DoReplace(alle: bool): void'' | ''OnReplace'' auslösen; ''alle'' setzt ''frReplaceAll'' | eigen | | ''SetTitle(s: pchar): void'' | Fenstertitel setzen | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''SetFindText(s: pchar): void'' | Suchtext setzen | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''HasOption(bit: int64): bool'' | Ist dieses Optionsbit gesetzt | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''SetOption(bit: int64, v: bool): void'' | Optionsbit setzen — schaltet auch das Kästchen um | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''DialogWidth(): int64'' | Breite des Fensters — überschreibbar | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''SetOptionQuiet(bit: int64, v: bool): void'' | Optionsbit setzen, ohne die Kästchen anzufassen | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''Execute(app: TApplication): bool'' | Fenster zeigen und **sofort** zurückkehren; ein zweiter Aufruf holt es nach vorn | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''CloseDialog(): void'' | Fenster schließen | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''DoFind(): void'' | ''OnFind'' auslösen — als ob „Weitersuchen“ gedrückt worden wäre | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | ---- ===== Ereignisse ===== ^ Name ^ Typ ^ Wann ^ Herkunft ^ | ''OnReplace'' | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindEvent]] | „Ersetzen“ oder „Alle ersetzen“ — unterschieden über ''frReplaceAll'' | eigen | | ''OnFind'' | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindEvent]] | „Weitersuchen“ wurde gedrückt | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | | ''OnClose'' | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindEvent]] | Fenster wird geschlossen | [[lyx_-_programmiersprache:vega:controls:tfinddialog|TFindDialog]] | Letzte Aktualisierung: 2026-08-20 — API maschinell aus ''Vega/FindDlg.lyx'' erhoben, Beispiel mit ''lyxc 1.1.4B'' übersetzt und ausgeführt.