Login
Newsletter
Werbung

Sa, 30. August 2003, 00:00

GTK+-Programmierung mit FreePascal (Referenz)

Textboxen

Textboxen sind große Eingabefelder. Sie unterstützen automatisch Copy und Paste und Wortumbruch. Die Position im Text wird durch ein Adjustment bestimmt, welches mit Scrollbars oder ähnlichen Widgets verbunden werden kann. Textboxen sind fähig, ein Adjustment selbst zu erstellen, was speziell für eine Textbox geeignet ist. Sie ändern die Einstellungen dieses Adjustments dann automatisch hingehend ihrer Größe und ähnlichen Faktoren. Folgendermaßen wird eine Textbox erstellt:

gtk_text_new(hadj, vadj);

Rene van Bevern

Als hadj und vadj werden Adjustments für horizontale und vertikale Scrollrichtung übergeben. Wird hier anstelle eines Adjustments nil (ein NULL-Zeiger) übergeben, so werden diese automatisch erstellt. Auf die selbsterstellten Adjustments muss über den record der Textbox zugegriffen werden. Dies geschieht über GTK_TEXT(textbox)^.vadj bzw. GTK_TEXT(textbox)^.hadj.

Wichtige Funktionen zu Textboxen

FunktionBedeutung
gtk_text_set_editable(textbox, true/false)Legt fest, ob textbox editierbar ist oder nicht
gtk_text_set_word_wrap(textbox, 1/0)Legt fest, ob textbox Wortumbruch machen soll oder nicht. Wegen "schlampiger" Implementierung muss hier 1 und 0 anstelle von true oder false verwendet werden, da ein integer verlangt wird
gtk_text_freeze(texbox)
gtk_text_thaw(texbox)
Friert eine Textbox ein bzw. taut sie auf. Das ist nötig, wenn am Text programmseitig Änderungen vorgenommen werden sollen. Im gefrorenen Zustand kann der Benutzer die Änderungen nicht live sehen.
gtk_text_insert(texbox, vordergrund_farbe,<br />hintergrund_farbe, schrift, text, länge) Fügt einen Text in eine Textbox ein, für die Farb- und Schriftwerte kann nil übergeben werden, da diese in diesem Artikel nicht behandelt werden. text ist der einzufügende Text, von dem länge Zeichen eingefügt werden. Wird als länge der Wert -1 übergeben, wird der String bis zum Ende eingefügt.
gtk_text_get_length(text)Gibt die Länge des eingegebenen Textes zurück

Da Textboxen eine Untergruppe der GtkEditables sind, kann man auch folgende Funktionen auf sie anwenden:

Wichtige Funktionen zu Editables

FunktionBedeutung
gtk_editable_insert_text(textbox, text, länge, position)Fügt neuen text bis zu länge Zeichen an position ein
gtk_editable_delete_text(textbox, start, ende)Löscht Text von start bis ende
gtk_editable_cut_clipboard(textbox)<br /> gtk_editable_copy_clipboard(texbox)<br /> gtk_editable_paste_clipboard(texbox)Macht cut/copy/paste
gtk_editable_get_chars(texbox, start, ende)Gibt den Text von start bis ende als pchar zurück

Beispielprogramm zu Textboxen

Dieses Beispielprogramm enthält eine scrollfähige Textbox mit automatischem Wortumbruch. Bei Beendigung des Programms wird der Text auf der Standard-Ausgabe mit writeln vollständig ausgegeben. Hier darf nicht {$APPTYPE GUI} verwendet werden, da die Standard-Ausgabe dort fehlt.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung