Text markieren
Nach oben zu Mit Steuerelementen arbeiten - Index
Bevor Text aus Eingabefeldern in die Zwischenablage kopiert werden kann, muss er markiert werden. Eingabefelder heben markierten Text automatisch hervor. Text, den der Benutzer markiert, wird hervorgehoben angezeigt.
Die folgende Tabelle enthält die Eigenschaften, die zum Bearbeiten markierter Textblöcke verwendet werden können.
Eigenschaft | Beschreibung |
---|---|
SelText |
Ein String mit dem in der Komponente markierten Text. |
SelLength | Die Länge des markierten Textes. |
SelStart | Der Beginn der Markierung in Relation zum Anfang des Eingabefeldtextpuffers. |
Die folgende OnFind-Ereignisbehandlungsroutine durchsucht beispielsweise eine Memokomponente nach dem Text, der durch die Eigenschaft FindText einer FindDialog-Komponente (die ein Dialogfeld Suchen repräsentiert) angegeben wird. Sofern vorhanden, wird das erste Vorkommen des Textes in der Komponente Memo1 markiert.
procedure TForm1.FindDialog1Find(Sender: TObject);
var
I, J, PosReturn, SkipChars: Integer;
begin
for I := 0 to Memo1.Lines.Count do
begin
PosReturn := Pos(FindDialog1.FindText, Memo1.Lines[I]);
if PosReturn <> 0 then { found! }
begin
SkipChars := 0;
for J := 0 to I - 1 do
SkipChars := SkipChars + Length(Memo1.Lines[J]);
SkipChars := SkipChars + (I * 2);
SkipChars := SkipChars + PosReturn - 1;
Memo1.SetFocus;
Memo1.SelStart := SkipChars;
Memo1.SelLength := Length(FindDialog1.FindText);
Break;
end;
end;
end;