03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

248 12 Fenster-Bausteine<br />

12.3.4 Eingabe- und Editierfelder<br />

Ein Eingabefeld ist als Instanz der Basis-Klasse “EntryField” und ein Editierfeld<br />

als Instanz der Basis-Klasse “TextEdit” einzurichten.<br />

Eingabefelder<br />

Soll im Rahmenfenster ein einzeiliger Text eingegeben werden können, so ist eine<br />

Instanziierung der Klasse “EntryField” durchzuführen.<br />

Sofern dieses Eingabefeld durch den Namen “entryField” gekennzeichnet werden<br />

soll, läßt sich dessen Einrichtung durch die Anforderung<br />

Fenster vereinbarungEntryField<br />

zur Ausführung der folgenden Methode bewirken:<br />

vereinbarungEntryField<br />

self addSubpane:<br />

(EntryField new owner: self;<br />

framingRatio:( ... );<br />

paneName: ’entryField’;<br />

when: #textChanged perform: #verarbeitenEntryField:)<br />

Durch die Message “when:perform:” ist gesichert, daß die Methode “verarbeitenEntryField:”<br />

ausgeführt wird, sofern das Ereignis “#textChanged” eintritt. Dies ist<br />

z.B. dann der Fall, wenn der Inhalt des Eingabefeldes durch eine Tastatureingabe<br />

geändert und danach ein anderer Fenster-Baustein des Rahmenfensters aktiviert<br />

wird.<br />

Hinweis: Innerhalb der Methode “verarbeitenEntryField:” ist festzulegen, welche Methoden<br />

– im Hinblick auf den jeweiligen Lösungsplan – ausgeführt werden sollen. Zum Test<br />

kann die Methode “verarbeitenEntryField:” z.B. wie folgt vereinbart werden:<br />

verarbeitenEntryField: anEntryField<br />

Transcript cr; show: (self paneNamed: ’entryField’) contents<br />

Editierfelder<br />

Soll im Rahmenfenster die Möglichkeit bestehen, einen mehrzeiligen Text in ein Editierfeld<br />

eingeben zu können, so ist eine Instanz der Klasse “TextEdit” erforderlich.<br />

Soll das Editierfeld den Namen “textEdit” tragen, so kann die Einrichtung dieses<br />

Feldes durch die Methode<br />

vereinbarungTextEdit<br />

self addSubpane:<br />

(TextEdit new owner: self;<br />

framingRatio:( ... );<br />

paneName: ’textEdit’;

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!