Schritt 4 - Festlegen der Größe und der Ausrichtung (Delphi)
Nach oben zu Erstellen einer FireMonkey-Komponente (Delphi)
Zum Testen dieser Komponente müssen die Schaltflächen in einem als modales Dialogfeld mit ShowModal geöffneten Formular platziert werden.
- Aktivieren Sie das Projekt PanelTester.exe, und öffnen Sie das Hauptformular PanelTest.pas. Dieses Formular öffnet das Dialogfeldformular.
- Benennen Sie die Klasse (automatisch erzeugt als Form1) in TPanelTestForm mit Refactor > Umbenennen um. Dadurch wird auch die globale Referenzvariable automatisch in
PanelTestForm
geändert. - Benennen Sie dann in TestDialog.pas das Formular (Form2) in TTestDialogForm um, damit dessen Referenz
TestDialogForm
lautet. - Wechseln Sie in den Formular-Designer. Legen Sie eine TDialogButtonPanel-Komponente aus der Kategorie Beispiele der Tool-Palette auf dem Formular ab.
- Die TPanel-Komponente hat weder die korrekte Größe noch ist sie am unteren Rand ausgerichtet. Und zwar aus folgenden Gründen:
- Die Größe und die Ausrichtung des erstellten Steuerelements sind unabhängig von der Stilressourcenkomponente, mit der das Steuerelement gerendert wird.
- Obwohl die Stamm-Stilressource (TRectangle) auf Bottom gesetzt ist, wäre das in den meisten Fällen nicht gewünscht, weil die Stilressource dem Steuerelement untergeordnet ist, und die visuelle Realisierung dieses Steuerelements sollte nicht auf einen Teil davon beschränkt sein, selbst wenn Sie versuchen, die Größe oder Ausrichtung des Steuerelements zu ändern.
- Wenn Stilressourcen übernommen werden, wird deren Eigenschaft Align immer auf Contents gesetzt, damit die Stilressourcen die gesamte Inhaltsbox des Steuerelements einnehmen, das sie rendern.
- Eigentlich sollten Sie aber die Eigenschaft Align der benutzerdefinierten Komponente – nicht deren Stilressource – setzen. Deklarieren und implementieren Sie dazu einen Konstruktor. Deklarieren Sie zudem den Standardwert für die Eigenschaft, und setzen Sie die Eigenschaften Height und Width (mit Bottom; die Breite ist eigentlich nicht wichtig, Sie können sie aber auf einen entsprechenden Minimalwert setzen):
public
constructor Create(AOwner: TComponent); override;
published
property Align default TAlignLayout.Bottom;
constructor TDialogButtonPanel.Create(AOwner: TComponent);
begin
inherited;
Height := 46;
Width := 300;
Align := TAlignLayout.Bottom;
end;
- 5. Installieren Sie das Komponenten-Package erneut, um diese Änderungen anzuzeigen: Klicken Sie in der Projektverwaltung mit der rechten Maustaste auf das Package-Projekt, und wählen Sie Installieren.
- 6. Löschen Sie dann in dem Dialogfeldformular die Komponente, und fügen Sie eine andere aus der Tool-Palette hinzu. Die Größe und Ausrichtung der TPanel-Komponente sollte nun korrekt sein.
- 7. Um die Funktionsweise der Komponente zu testen, platzieren Sie im Hauptformular eine Schaltfläche (zum Öffnen des Dialogfeldes) und eine Beschriftung (zum Anzeigen des modalen Ergebniscodes).
- 8. Setzen Sie die Ereignisbehandlungsroutine OnClick für die Schaltfläche wie folgt:
uses
TestDialog;
procedure TPanelTestForm.Button1Click(Sender: TObject);
var
ModalResult: Integer;
begin
ModalResult := TestDialogForm.ShowModal;
Label1.Text := IntToStr(ModalResult);
end;
- 9. Führen Sie nun das Projekt PanelTester.exe aus, und klicken Sie zum Öffnen des Dialogfeldes auf die Schaltfläche. Durch Klicken auf eine der drei Schaltflächen wird das Dialogfeld geschlossen und das entsprechende modale Ergebnis zurückgegeben.