Marcus Denker wrote:
Am 15.11.2003 um 14:21 schrieb Klaus Füller:
Ich habe eine einfache Turtle-Graphik in squeak geschrieben, um sie im Jahrgang 6 in Mathematik einzusetzen (es geht da um Winkel). Ich müsste nun einige Meldungen des Compilers und des Laufzeitsystems ändern und möchte das "quick-and-dirty" tun.
Wie finde ich Meldungen, wie "Nothing more expected" oder "Message not understood"?
Es gibt eine String-Suchfunktion: Wort markieren, Strg-E drücken. By "Nothing more" findet man dabei eine Methode in Parser, die diesen Ausdruck enthält: [self expected: 'Nothing more']
Das kann man einfach ändern. Man kann dann nach weiteren Benutzern von #expected: suchen (Alt-N) und finded die anderen erwarteten Dinge. Aber natürlich kann man auch #expected selbst ändern, so wie Marcus das beschreibt.
Bei MessageNotUnderstood ist die sache etwas ungeschickter, das das der Name des Klasse ist. Hier koennte man folgendes machen: [...]
Nee, das will man nicht wirklich machen ;-)
Der Fenstertitel wird erzeugt, in dem #description an die Exception gesandt wird. Die Default-Implementierung ist in Exception und hängt den #messageText an den Klassennamen an. Durch Überschreiben von #description in einer Unterklasse wie z.B. MessageNotUnderstood kann man sich also leicht eigene Meldungen erzeugen:
description "Return a textual description of the exception."
| mt | ^(mt := self messageText) == nil ifTrue: ['Nachricht unbekannt'] ifFalse: ['Das verstehe ich nicht: ', mt]