home *** CD-ROM | disk | FTP | other *** search
INI File | 1992-04-01 | 2.0 KB | 65 lines |
- [Und was lernen wir hier?]
- Dieses überaus lehrreiche Beispiel zeigt, wie
- man komplexe Dialoge unter deLite realisiert.
- Und wer einen nicht ganz farbechten Monitor
- hat, kann diesem Beispiel zudem noch einen
- ganz praktischen Nutzen abgewinnen.
- Voraussetzung ist allerdings, daß Sie eine
- VGA-Karte ihr eigen nennen.
-
- [OOPS!]
- Richtig! Zur Realisierung der bunten Schalter-
- leiste für die Farbauswahl wurde durch Verer-
- bung und Ableitung das neue Dialogelement
- "ColorUserRadioButton" erzeugt. Es unterschei-
- det sich vom UserRadioButton durch die zusätz-
- lich wählbare Farbe. Geändert wurde im Wesent-
- lichen die Draw-Methode.
-
- [Der Event-Handler]
- Dieses im deLite-Handbuch etwas stiefmütterlich
- behandelte Thema kann anhand dieses Beispiels
- vertieft werden. Der Event-Handler des Paletten-
- Dialoges muß auf Bewegungen der Slider und
- Auswahlen der Radio-Buttons reagieren.
-
- [Die Hausaufgabe]
- Aufmerksame Leser des Quelltextes werden es
- bemerkt haben: Zur Anzeige der ausgewählten
- Farbe wird einfach ein BAR-Befehl verwendet.
- Nachteil: Der Befehl muß sowohl im Event-
- Handler als auch unmittelbar nach dem Show-
- Aufruf verwendet werden. Besser wäre es,
- hierfür ein Dialogelement "ColorBar" zu
- verwenden.
-
- [Jetzt sind Sie dran!]
- Versuchen Sie es! Ein Tip: So lautet die Dekla-
- ration
-
- TYPE ColorBar = object(DlgItem)
- constructor Init(x,y,dx,dy: integer);
- procedure Draw; virtual;
- procedure SetColor(c: byte);
- procedure GetColor(c: byte);
- destructor Done; virtual;
- private
- color : byte;
- end;
-
- [Noch ein Tip]
- Damit Ihr neues Objekt nicht fokussiert wird
- und auch nicht in die Verlegenheit kommt,
- selbst Ereignisse verarbeiten zu müssen,
- sollten Sie im Konstruktor die Statusflags
- sfBlind und sfNoFocus setzen.
-
- constructor Init;
- begin
- DlgItem.Init(x,y);
- Area.Assign(x,y,x+dy,y+dy);
- Status := Status or (sfBlind + sfNofocus);
- end;
-
-