TFindDialog — Suchen
Der einzige Standarddialog in Vega, der nicht modal läuft — zusammen mit seiner Ableitung TReplaceDialog. Das ist kein Versehen, sondern der Zweck: während das Fenster offen steht, soll man im Text weiterarbeiten und immer wieder „Weitersuchen“ drücken können.
Unit: Vega.FindDlg · Basis: keine — eigene Wurzel
→ Alle Steuerelemente · Guide: Dialoge · TReplaceDialog
Vererbung
Kette: TFindDialog — eigene Wurzel, kein Vorfahr. Was diese Klasse kann, steht vollständig auf dieser Seite.
Direkte Nachfahren: TReplaceDialog
Quelle: vega/finddlg.lyx
Verwendung
fn AufSuchen(sender: TFindDialog): void {
// Der Handler sucht selbst — der Dialog kennt weder Text noch Editor.
Print(sender.FindText.AsPChar());
Print(IntToStr(sender.HasOption(frDown) as int64)); // 1 = abwärts
Print(IntToStr(sender.HasOption(frMatchCase) as int64));
}
var d: TFindDialog := new TFindDialog();
d.SetTitle("Suchen");
d.SetFindText("Bello");
d.SetOption(frMatchCase, true);
d.OnFind := AufSuchen;
d.OnClose := AufZu;
d.Execute(app); // zeigt das Fenster und kehrt SOFORT zurück
// ... das Programm läuft weiter, der Dialog bleibt offen
d.CloseDialog();
Nicht modal — was daraus folgt
Execute(app)kehrt sofort zurück. Es gibt keinen Rückgabewert „der Nutzer hat OK gedrückt“; alles kommt über die Ereignisse.- Ein zweites
Executeöffnet kein zweites Fenster — es holt das vorhandene nach vorn. Formist öffentlich: ein nicht-modales Fenster muss von außen erreichbar sein, etwa um es zu verschieben oder gezielt zu schließen.Visiblesagt, ob es gerade steht.
| Ereignis | Wann |
|---|---|
OnFind | „Weitersuchen“ wurde gedrückt |
OnClose | Das Fenster ist zu |
Gemessen: drei Klicks auf „Weitersuchen“ ergeben drei OnFind-Meldungen bei weiterhin offenem Fenster.
Optionen
| Bit | Wert | Bedeutung |
|---|---|---|
frDown | 1 | Abwärts suchen (Vorgabe) |
frMatchCase | 2 | Groß- und Kleinschreibung beachten |
frWholeWord | 4 | Nur ganze Wörter |
frReplaceAll | 8 | Alle ersetzen — nur bei TReplaceDialog |
Options ist eine Bitmaske; gelesen wird mit HasOption(bit), gesetzt mit SetOption(bit, v). Beide Richtungen greifen: ein Klick ins Kästchen ändert Options, und SetOption schaltet das Kästchen um.
Besonderheiten
- Der Dialog sucht nicht. Er kennt weder Text noch Editor; der Handler liest
FindTextundOptionsund macht die Arbeit. Delphi teilt es genauso auf — anders ginge es auch nicht, ohne dem Dialog ein Textmodell aufzuzwingen. ReadFromControls()zieht den Stand aus den Eingabefeldern in die Felder des Dialogs; vor jedem Ereignis passiert das von selbst.BuildForm,AddButtons,DialogHeightundDialogWidthsind virtuell — daran hängt sich TReplaceDialog ein, statt das Fenster ein zweites Mal zu bauen. Gemessen:DialogHeight()liefert 190, beim Ersetzen-Dialog 226 — auch über eineTFindDialog-Variable, der virtuelle Aufruf greift also über die Unit-Grenze.- Weggelassen sind die
fr*-Bits aus Delphi, die nur die Windows-Dialogvorlage steuern (frShowHelp,frHidden,frDisableUpDown…): Vega zeichnet den Dialog selbst, ein Schalter zum Ausgrauen eines fremden Vorlagenfelds hätte hier keine Wirkung. Geblieben sind die drei, die den Suchvorgang betreffen.
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 |
|---|---|---|---|
Form | TForm | Das Fenster selbst — öffentlich, weil ein nicht-modaler Dialog von außen erreichbar sein muss | eigen |
FindText | TTextBuffer | Der gesuchte Text | eigen |
Options | int64 | Suchoptionen als Bitmaske: frDown (1), frMatchCase (2), frWholeWord (4), frReplaceAll (8) | eigen |
Title | TTextBuffer | Titel des Fensters | eigen |
Visible | bool | Wird gezeichnet und nimmt am Layout teil | eigen |
Methoden
Alle Methoden, auch die geerbten.
| Signatur | Zweck | Herkunft |
|---|---|---|
Create(): void | Konstruktor | eigen |
Destroy(): void | Gibt eigene Ressourcen frei | eigen |
SetTitle(s: pchar): void | Fenstertitel setzen | eigen |
SetFindText(s: pchar): void | Suchtext setzen | eigen |
HasOption(bit: int64): bool | Ist dieses Optionsbit gesetzt | eigen |
SetOption(bit: int64, v: bool): void | Optionsbit setzen — schaltet auch das Kästchen um | eigen |
DialogHeight(): int64 | Höhe des Fensters — überschreibbar | eigen |
DialogWidth(): int64 | Breite 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 |
SetOptionQuiet(bit: int64, v: bool): void | Optionsbit setzen, ohne die Kästchen anzufassen | eigen |
Execute(app: TApplication): bool | Fenster zeigen und sofort zurückkehren; ein zweiter Aufruf holt es nach vorn | eigen |
CloseDialog(): void | Fenster schließen | eigen |
DoFind(): void | OnFind auslösen — als ob „Weitersuchen“ gedrückt worden wäre | eigen |
Ereignisse
| Name | Typ | Wann | Herkunft |
|---|---|---|---|
OnFind | TFindEvent | „Weitersuchen“ wurde gedrückt | eigen |
OnClose | TFindEvent | Fenster wird geschlossen | eigen |
Letzte Aktualisierung: 2026-08-20 — API maschinell aus Vega/FindDlg.lyx erhoben, Beispiel mit lyxc 1.1.4B übersetzt und ausgeführt.
