gegeben zwei Integer-Variablen 'a' und 'b' in einer Rechteck-Klasse, wie zeichnest du ein Rechteck? Ich bin neu zu Smalltalk und ich studiere es für einen Kurs. danke!Zeichnen eines Rechtecks in Smalltalk Squeak
Antwort
Squeak verwendet Morphic als Standardbenutzeroberfläche. So wäre die einfachste Sache zu schaffen, eine Morph:
RectangleMorph new
extent: [email protected];
openInWorld
alle drei Zeilen auf einmal auswerten. Dadurch wird eine neue RectangleMorph
Instanz setzt seine Ausdehnung auf eine erstellte Point
von 300
und 200
(durch die Nachricht @
-300
mit dem Argumente 200
Senden) und sendet sie auch die openInWorld
Nachricht, so dass es in der Welt erscheint. Es wird in der oberen linken Bildschirmecke geöffnet. Wir hätten die position:
Nachricht mit einem anderen Point
Argument senden können, aber Sie können es einfach mit Ihrem Mauszeiger greifen und es überall hin verschieben, Sie bitte.
In Ihrer Klasse können Sie [email protected]
verwenden, um den Ausdehnungspunkt zu erstellen (unter der Annahme a
und b
sind die Breite und Höhe des Rechtecks in Pixeln).
Morphic ist nett, weil es reale Objekte erstellt, die Sie interaktiv bearbeiten können, z. Mit dem Befehl cmd-click wird ein Halo angezeigt. Wenn Sie das nicht möchten, können Sie auch direkt auf dem Bildschirm malen. Z.B .:
Display fill: ([email protected] extent: [email protected]) fillColor: Color red.
... wo Display
eine globale Formular Instanz (enthaltend einen Bitmap) was dich auf den gesamten Squeak-Display ist. Aber da dieser Ausdruck nur Pixel auf den Bildschirm legt, werden sie schnell überschrieben. Morphs, im Gegensatz dazu wissen, wie man sich neu zu zeichnen, wann immer es nötig ist.
Es ist auch möglich, Ihre eigene Morph Unterklasse zu erstellen und eine benutzerdefinierte drawOn:
Methode zu implementieren. Aber das wäre ein Overkill für etwas so einfaches wie das Zeigen eines Rechtecks.
Wir müssen Ihren Smalltalk-Dialekt kennen, denn das Zeichnen ist für jede – Tobias
unterschiedlich. Ich bin mir nicht sicher, was Sie unter Dialekt verstehen - ich benutze Quietschen Smalltalk – Infested
Ah ja, ich verstehe, tut mir leid. – Tobias