Standard-Dialog
Linux-Programmierung mit Kylix, Teil 5: Standarddialoge und Verteilung
Farbe und Font
Die Hintergrundfarbe des Memofeldes lässt sich mit dessen Color-Eigenschaft ändern. Dieser Eigenschaft können Sie direkt den Color-Rückgabewert der ColorDialog-Komponente zuweisen. Der Test über ein if sorgt dafür, dass der Anwender den Dialog abbrechen und die Zuweisung verhindern kann:
if ColorDialog1.Execute() then Memo1.Color:=ColorDialog1.Color;
Für die Schriftart des Memofeldes ist dessen Font-Eigenschaft zuständig. Die neue Schrift stammt vom Font-Rückgabewert der FontDialog-Komponente:
if FontDialog1.Execute() then Memo1.Font:=FontDialog1.Font;
Suchen, Neu und Ende
Den Suchdialog öffnen Sie per FindDialog1.Execute();. Die Suchaktion, die der Benutzer im Suchdialogfenster startet, müssen Sie selbst programmieren. Listing 3 zeigt eine einfache Implementierung: Als Reaktion auf den Suchen-Button im Suchen-Dialogfenster fahndet der Code per FindText nach einer passenden Stelle. Implementiert ist nur Case-Sensitive-Suche, sprich das Programm beachtet immer die Groß-Kleinschreibung. Den ersten Treffer markiert der Code mit SelStart und SelLength.
Listing 3
Suchen
procedure TForm1.FindDialog1Find(Sender: TObject);
var
SelPos: Integer;
begin
with TFindDialog(Sender) do
begin
{ Suche case-sensitive nach dem Wert von FindText in Memo1 }
SelPos := Pos(FindText, Memo1.Text);
if SelPos > 0 then
begin
Memo1.SelStart := SelPos - 1;
Memo1.SelLength := Length(FindText);
end
else
MessageDlg(Concat('Gesuchter String "', FindText, '" wurde nicht gefunden.'), mtError, [mbOk], 0);
end;
end;
Das Erstellen eines neuen Textes ist wieder sehr einfach. Setzen Sie den Inhalt des Memofeldes auf einen leeren String: Memo1.Text:='';. Um das Programm zu beenden genügt eine einfache Funktion: Application.Terminate;.
Das vollständige Projekt finden Sie auf der Heft-CD. Sie haben nun einen einfachen, aber funktionstüchtigen Editor zum Ansehen und Bearbeiten von Textdateien, den Sie auf Ihrem Rechner innerhalb der Kylix-IDE laufen lassen können. Um den Mini-Editor auch ohne Kylix-Umgebung auszuführen, sind noch ein paar Schritte nötig.



