Vega.Types — Punkt, Größe, Rechteck, Farbe

Die Werttypen, auf denen alles andere aufsetzt. Diese Unit importiert nichts — sie ist die Wurzel des Abhängigkeitsbaums, und jede andere Vega-Unit hängt direkt oder mittelbar an ihr.

Quelldatei: Vega/Types.lyx

Alle Units · Alle Steuerelemente · Vega VCL


Typaliase

Name Ist Zweck
TPoint struct { X: int64; Y: int64 } Ein Punkt in Pixeln
TSize struct { CX: int64; CY: int64 } Eine Größe in Pixeln
TRect struct { Left: int64; Top: int64; Right: int64; Bottom: int64 } Ein Rechteck; Right und Bottom liegen außerhalb der Fläche
TColor int64 Farbe als Zahl, 8 Bit je Kanal plus Alpha

Aufzählungen

Enum Werte Zweck
TAlign AL_NONE (0), AL_TOP (1), AL_BOTTOM (2), AL_LEFT (3), AL_RIGHT (4), AL_CLIENT (5) Ausrichtung eines Kindes im Elternteil

Konstanten

Name Typ Wert Bedeutung
DOCK_NONE int64 0 Andockstelle: nirgends
DOCK_TOP int64 1 Andockstelle: oben
DOCK_BOTTOM int64 2 Andockstelle: unten
DOCK_LEFT int64 3 Andockstelle: links
DOCK_RIGHT int64 4 Andockstelle: rechts
DOCK_FILL int64 5 Andockstelle: ganze Fläche
VEGA_RESIZE_TOPLEFT int64 0 Ziehgriff oben links
VEGA_RESIZE_TOP int64 1 Ziehgriff oben
VEGA_RESIZE_TOPRIGHT int64 2 Ziehgriff oben rechts
VEGA_RESIZE_RIGHT int64 3 Ziehgriff rechts
VEGA_RESIZE_BOTTOMRIGHT int64 4 Ziehgriff unten rechts
VEGA_RESIZE_BOTTOM int64 5 Ziehgriff unten
VEGA_RESIZE_BOTTOMLEFT int64 6 Ziehgriff unten links
VEGA_RESIZE_LEFT int64 7 Ziehgriff links
VEGA_DRAG_MOVE int64 8 Kein Griff — das Fenster wird verschoben
VEGA_DBLCLICK_MS int64 400 Längster Abstand zweier Klicks, die als Doppelklick gelten
VEGA_DRAG_THRESHOLD int64 4 Pixel, die der Zeiger wandern muss, bevor aus dem Drücken ein Ziehen wird
DM_MANUAL int64 0 Ziehen beginnt erst auf BeginDrag()
DM_AUTOMATIC int64 1 Ziehen beginnt von selbst, sobald die Schwelle überschritten ist
ANCHOR_LEFT int64 1 Anker links (Bitmaske)
ANCHOR_TOP int64 2 Anker oben (Bitmaske)
ANCHOR_RIGHT int64 4 Anker rechts (Bitmaske)
ANCHOR_BOTTOM int64 8 Anker unten (Bitmaske)

Freie Funktionen

Signatur Zweck
Point(x: int64, y: int64): TPoint Punkt bauen
Size(cx: int64, cy: int64): TSize Größe bauen
Rect(left: int64, top: int64, right: int64, bottom: int64): TRect Rechteck aus vier Kanten bauen
Bounds(x: int64, y: int64, w: int64, h: int64): TRect Rechteck aus Lage und Größe bauen — der übliche Weg
RectWidth(r: TRect): int64 Breite Right - Left
RectHeight(r: TRect): int64 Höhe Bottom - Top
RectIsEmpty(r: TRect): bool Keine Fläche (Breite oder Höhe ist 0 oder negativ)
RectContains(r: TRect, x: int64, y: int64): bool Liegt der Punkt im Rechteck
RectIntersect(a: TRect, b: TRect): TRect Schnittmenge zweier Rechtecke; leer, wenn sie sich nicht berühren
RectUnion(a: TRect, b: TRect): TRect Kleinstes Rechteck, das beide umschließt
RectOffset(r: TRect, dx: int64, dy: int64): TRect Rechteck verschieben
RectInflate(r: TRect, dx: int64, dy: int64): TRect Rechteck an allen Seiten aufweiten (negativ: schrumpfen)
RGBA(r: int64, g: int64, b: int64, a: int64): TColor Farbe aus Rot, Grün, Blau und Deckkraft
RGB(r: int64, g: int64, b: int64): TColor Farbe aus Rot, Grün, Blau, voll deckend
Gray(v: int64): TColor Grauwert, dreimal derselbe Kanal
ColorR(c: TColor): int64 Rotanteil
ColorG(c: TColor): int64 Grünanteil
ColorB(c: TColor): int64 Blauanteil
ColorA(c: TColor): int64 Deckkraft
ColorWithAlpha(c: TColor, a: int64): TColor Dieselbe Farbe mit anderer Deckkraft
ClBlack(): TColor Schwarz
ClWhite(): TColor Weiß
ClRed(): TColor Rot
ClGreen(): TColor Grün
ClBlue(): TColor Blau
ClYellow(): TColor Gelb
ClGray(): TColor Grau
ClSilver(): TColor Hellgrau
ClTransparent(): TColor Vollständig durchsichtig

Zu beachten

  • Right und Bottom zählen nicht mehr zur Fläche: Bounds(0, 0, 10, 10) ergibt Right = 10, und Pixel 10 gehört schon nicht mehr dazu. RectWidth rechnet deshalb ohne +1.
  • Bounds ist beim Schreiben von Layoutcode fast immer die richtige Wahl — Rect verleitet dazu, Breite statt Kante einzusetzen.
  • TColor ist eine gewöhnliche int64; Farben lassen sich vergleichen und in Feldern ablegen, ohne Umweg über ein Objekt.
  • Die ANCHOR_*-Werte sind eine Bitmaske und werden mit | verbunden, die AL_*-Werte dagegen sind eine Aufzählung — genau einer davon gilt.

Abhängigkeiten