GLnB: Group, Label & Button
Wie beschreibt man am besten eine Universal-Komponente?
Also gut: GLnB ist die Komponente, die Ihr Leben verändern wird!
O.K., O.K., vielleicht fragen wir doch besser, was GLnB (Group, Label & Button) eigentlich ist:
Ist es eine Groupbox?
Es kann aussehen wie eine Groupbox und vor allem kann es wie eine Groupbox Elemente aufnehmen, die dann mit ihr wandern.
Trotzdem: Nein, denn:
Ist es ein Button?
Fast: Es kann aussehen, wie jede Art von Button. Dabei können alle Farben frei bestimmt werden, sogar Bitmap-Raster können eingesetzt werden.
Es können aber auch extreme Tiefen- oder Höheneffekte erzeugt werden, gerahmte oder völlig transparente Klickflächen, z.B. für dahinterliegende Bitmaps, mit und ohne sichtbarem Klickeffekt.
Die größten Ähnlichkeiten bestehen zu einem Speedbutton:
Ist es also ein Label?
Hier lautet die Anwort eindeutig: Ja.
Das Label war für uns Ausgangspunkt unserer Überlegungen, da es
ohnehin ein allgegenwärtiger Begleiter von anderen sichtbaren Komponenten
in Formularen ist.
Es ist nicht nur wichtig, weil viele Dialogelemente beschriftet werden
müssen, sondern weil es zusätzlich die Tastenkürzel für
diese Eingabefelder regelt.
In seiner Funktion als Label kann GLnB daher alles, was ein normales Label
auch kann.
Aber es kann natürlich noch mehr:
Diese Vielzahl von Gestaltungsmöglichkeiten ist perfekt geeignet, andere Komponenten zu verbessern und sie zu kombinieren.
Es ist praktisch unmöglich, die ganze Vielfalt von Gestaltungen und
Funktionen zu schildern, die sich durch GLnB eröffnet.
Genau das wollten wir mit GLnB erreichen!
Und genau diese Vielseitigkeit wird es für Sie wie schon für uns
bald unentbehrlich machen!
Was kann GLnB sonst noch alles?
Das Skalierungskonzept
GLnB vor allem dafür vorgesehen, andere Komponenten auszugestalten und
zu kombinieren. Wichtig dafür sind die multifunktionalen Ebenen, welche
als Rahmen, Hintergründe, Schatten, Buttons usf. dienen könen.
Dabei ist es meist sinnvoll, daß Rahmen bei Größenänderungen ihren Abstand zu den äußeren Rändern des GLnB behalten, Buttons dagegen ihre feste Größe und Position (z.B. rechts oben).
Vielleicht aber auch umgekehrt, wie Sie wollen:
GLnB verfügt daher über ein ausgefeiltes Skalierungskonzept mit absoluten und relativen Ausrichtungen, welches keinen Wunsch offenläßt.
Damit können Sie sich Ihre Layouts entwickeln, welche Sie immer wieder verwenden werden.
Ein enormer Produktivitätsgewinn.
Eigene Integrationsfähigkeit
Neben der Möglichkeit, beliebig viele Komponenten mit einem GLnB zu
verknüpfen, welche übrigens auch wieder GLnBs sein können
(Verkettung), kann ein GLnB auch in ein TWinControl integriert werden. Also
z.B. in (DB-)Edits, (DB-)Grids, TabSets etc..
Auf diese Weise können Statusanzeigen oder Buttons in unbenutzten Bereichen dieser Dialogelemente untergebracht werden.
Unterstützung des Laufzeitverhaltens
Unsere Komponenten sollen nicht nur zur Entwurfszeit besonders produktiv
und flexibel sein, sondern auch zur Laufzeit:
Eine Anzeige- oder Dialogkomponente sollte vor allem ihren Zustand, d.h. ihre Eigenschaften jederzeit ändern können.
Vielleicht werden zusätzliche Ausgaben innerhalb oder außerhalb ihres Bereiches gebraucht, evtl. abgestimmt auf Anzeigenwechsel.
Was auch immer - es geht.
Vielleicht wird GLnB nicht Ihr Leben verändern.
Vielleicht wird es Ihr Leben doch ein bißchen verändern...
GLnB: Group, Label & Button
Eigenschaften (Übersicht):
Typen sind dort angegeben, wo sie nicht durch den Eigenschaftsnamen eindeutig sind.
Neben den unten aufgeführten Eigenschaften verfügt GLnB über alle Eigenschaften von TLabel. Der Vorfahre ist TGraphicControl.
(#: Eigenschaften, die sich anders verhalten als in TLabel.)
public
- # Alignment
- AlignmentVertical (avTop, avCenter, avBottom)
- # AutoSize
- BorderStyle
- Ctl3D
- FrameBack/Text/Top...
- ButtonState: set of (bsRounded, bsDown, bsInvertDown, bsFocused, bsEnabled, bsSwitch)
- Color2D
- Color3D
- FixMargin: set of (fmTop, fmLeft, fmBottom, fmRight)
- MarginBottom/Left/Right/Top: Integer
- Style: (bsAutoDetect, bsNew, bsWin31, fs2D, fs2DBordered, fs3D, fs3DBordered, fsFrame)
- Surface
- Color
- Pattern: TBitmap
- PatternColor
- Style: (ssSolidOrPattern, ssTransparent, ssShadow)
- Width
- LinkList: TLinkList
- ParentControl: TWinControl
- TransparentText: Boolean
Neue Ereignisse:
- OnBefore/AfterPaint
Neue Methoden:
- procedure DrawFrame(Var Client: TRect; Color2D,Color3D: TColor ; BevelWidth: Integer; Style: TFrameStyle; IsRounded, IsDown, IsFocused: Boolean)
- procedure DrawSurface(Const Frame: TFrameShape; Var Client: TRect)
- function FrameShapeRect(Const Frame:TFrameShape):TRect
Editoren:
- TLinkListEditor
- TLinkListComponentEditor