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.

258 12 Fenster-Bausteine<br />

12.4 Vereinbarung des Erfassungsfensters<br />

Im Abschnitt 2.2 haben wir erläutert, wie sich eine Methode (“createViews”) durch<br />

den Einsatz des Werkzeugs “WindowBuilder Pro/V” erzeugen läßt, durch die der<br />

Aufbau des von uns gewünschten Erfassungsfensters beschrieben wird. Die automatisch<br />

generierte Methode haben wir – den Erfordernissen entsprechend – im<br />

Abschnitt 2.4 geeignet verändert. Zusätzlich haben wir dieser Methode den von uns<br />

im Lösungsplan konzipierten Namen “initialisierenErfassung” gegeben.<br />

Auf der Basis der in diesem Kapitel und im Kapitel 10 erlangten Kenntnisse über<br />

den Aufbau eines Rahmenfensters und der Möglichkeit, geeignete Fenster-Bausteine<br />

in das Rahmenfenster zu integrieren, können wir an dieser Stelle ohne den Einsatz<br />

des Werkzeugs “Window Builder Pro/V” auskommen und die Methode “initialisierenErfassung”<br />

wie folgt vereinbaren:<br />

initialisierenErfassung<br />

werteBag := Bag new.<br />

self addView: (self topPaneClass new owner: self;<br />

labelWithoutPrefix: ’ ’;<br />

noSmalltalkMenuBar;<br />

viewName: ’erfassungsfenster’;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:1/2@(1/2)) extentFromLeftTop:1/2@(1/2) );<br />

addSubpane: (StaticText new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:1/8@(2/8)) extentFromLeftTop:2/8@(1/8) );<br />

contents: ’Wert:’);<br />

addSubpane: (EntryField new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:2/8@(2/8)) extentFromLeftTop:2/8@(1/8) );<br />

paneName: ’eingabeFeld’);<br />

addSubpane: (Button new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:2/8@(6/8)) extentFromLeftTop:2/8@(1/8) );<br />

contents: ’erfasse’;<br />

when: #clicked perform: #erfassenWert:);<br />

addSubpane: (Button new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:5/8@(6/8)) extentFromLeftTop:2/8@(1/8) );<br />

contents: ’Erfassungsende’;<br />

when: #clicked perform: #entfernenErfassungsfenster:)<br />

)<br />

Hinweis: Wie bereits in den Abschnitten 10.5 und 10.8 erläutert, geben wir die Plazierung<br />

eines Fenster-Bausteins stets durch den Einsatz der Methode “framingRatio:” zusammen<br />

mit den Messages “leftTopUnit”, “rightAndDown:” und “extentFromLeftTop:” an. Im<br />

Vergleich mit der im Anhang A.1 angegebenen Methode “createViews” setzen wir nicht die<br />

vom “WindowBuilder Pro/V” generierten Messages “iDUE:”, “xC”, “yC” und “cRDU:”

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!