Verwenden von TRelativePanel
Nach oben zu VCL
TRelativePanel ist ein Container-Steuerelement, das die Positionierung von untergeordneten Steuerelementen relativ zum Bereich selbst oder relativ zu anderen untergeordneten Steuerelementen dieses Bereichs ermöglicht.
Da dieses Steuerelement nicht restriktiv ist, können Sie möglicherweise bei Nichtbeachtung bestimmter Richtlinien sich widersprechende Ausrichtungsregeln festlegen.
Inhaltsverzeichnis
Priorität von Ausrichtungsregeln
Die Informationen in diesem Abschnitt sollten Sie bei der Verwendung von TRelativePanel unbedingt beachten. Die Positionierung von Steuerelementen, die einem relativen Bereich untergeordnet sind, wird in der folgenden Reihenfolge ausgeführt:
- AlignXxWithPanel: Alle "Align"-Eigenschaften im Zusammenhang mit "Panel", wie z. B. AlignLeftWithPanel.
- Zentrieren (AlignXxCenterWithPanel) hat Vorrang vor seitlichen Ausrichtungen.
- Links hat Vorrang vor rechts und oben hat Vorrang vor unten.
- AlignXxWith: Die restlichen "Align"-Eigenschaften.
- Zentrieren (AlignXxCenterWith) hat Vorrang vor seitlichen Ausrichtungen.
- Links hat Vorrang vor rechts und oben hat Vorrang vor unten.
- Seitliche Ausrichtungen: LeftOf, RightOf, Above und Below.
- Links hat Vorrang vor rechts und über hat Vorrang vor unter.
Die Reihenfolge, in der die untergeordneten Steuerelement in Schritt 2 und 3 positioniert werden, hängt von ihrem Index im Array mit den untergeordneten Steuerelementen ab. Wenn ein Steuerelement bei einer sich widersprechenden Ausrichtung Vorrang haben soll, setzen Sie den Index des vorrangigen Steuerelements auf einen höheren Wert.
Besondere Aspekte
Nicht sichtbare Ausrichtung (Steuerelemente, die verschwinden)
Es stehen keine Überprüfungen zur Verfügung, die das Festlegen einer Ausrichtung verhindern könnten, bei der ein Steuerelement aus dem relativen Bereich geschoben wird. In diesem Fall verschwindet das Steuerelement aus dem Bereich. Dies ist beabsichtigt und kann sich in bestimmten Fällen als nützlich erweisen.
Zirkuläre Abhängigkeit
Die Beziehung zwischen Elementen in einem TRelativePanel bildet einen gerichteten Graphen (EN). Eine zirkuläre Abhängigkeit liegt vor, wenn dieser Graph einen Kreis enthält; das heißt, zwei Elemente sind gegenseitig voneinander abhängig, auch über Zwischenelemente.
Wenn Sie eine zirkuläre Abhängigkeit festlegen, ermittelt die Komponente TRelativePanel
diese und löst eine Exception aus. Geschieht dies beim Entwurf, zeigt der Designer eine Fehlermeldung an. Code, der den Member EnableAlign
oder Realign
aufruft, kann die Exception auch auslösen.
Widersprüchliche Beziehungen
Das Festlegen mehrerer Ausrichtungen für dieselbe Seite eines Steuerelements kann zu einem Konflikt führen. Im Abschnitt Priorität von Ausrichtungsregeln finden Sie weitere Informationen über die Priorität der Ausrichtungsregeln.
Ausrichtung von gegenüberliegenden Seiten und automatische Größenanpassung
Wenn Sie die Ausrichtung für die gegenüberliegenden Seiten (links und rechts oder oben und unten) eines Steuerelements auf dasselbe Ziel (entweder "Panel" oder ein anderes gleichgeordnetes Steuerelement) festlegen, ändert das betroffene Steuerelement automatisch seine Breite oder Höhe, damit sie der Breite bzw. Höhe des Ziels entsprechen. Wenn Sie beispielsweise AlignLeftWithPanel und AlignRightWithPanel für eine Schaltfläche festlegen, ändert diese Schaltfläche seine Breite, um sie der Breite des relativen Bereichs anzupassen.
Dieses Verhalten kann eventuell zu unerwarteten Situationen führen. Wenn Sie beispielsweise AlignLeftWithPanel| und AlignRightWithPanel für ein Eingabe-Steuerelement festlegen und dessen Position als links neben (LeftOf) einer Schaltfläche festlegen, nimmt das Eingabe-Steuerelement die Breite des relativen Bereichs an, aber aufgrund der Positionierungsregel "left of" verschwindet das Eingabe-Steuerelement aus dem relativen Bereich.