Schritt 4 - Festlegen der Größe und der Ausrichtung (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Erstellen einer FireMonkey-Komponente (C++)


Zum Testen dieser Komponente müssen die Schaltflächen in einem als modales Dialogfeld mit ShowModal geöffneten Formular platziert werden.

  1. Aktivieren Sie das Projekt PanelTester.exe, und öffnen Sie das Hauptformular PanelTest.cpp. Dieses Formular öffnet das Dialogfeldformular.
  2. 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.
  3. Benennen Sie dann in TestDialog.h das Formular (Form2) in TTestDialogForm um, damit dessen Referenz TestDialogForm lautet.
  4. 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 erwünscht, weil die Stilressource dem Steuerelement untergeordnet ist, und die visuelle Realisierung dieses Steuerelements sollte nicht auf einen Teil davon beschränkt sein, ganz egal, wie Sie die Größe oder Ausrichtung des Steuerelements zu ändern versuchen.
    • 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 – festlegen. Deklarieren und implementieren Sie dazu einen Konstruktor. Deklarieren Sie zudem den Standardwert für die Eigenschaft, und legen Sie die Eigenschaften "Height" und "Width" fest (mit Bottom; die Breite ist eigentlich nicht wichtig, Sie können sie aber auf einen entsprechenden Minimalwert setzen). Dies erfolgt in der Unit DialogButtons des DialogButtonsPackage-Package:
 public:
	__fastcall TDialogButtonPanel(TComponent* Owner);
__published:
	__property Align = { default = TAlignLayout::Bottom };
__fastcall TDialogButtonPanel::TDialogButtonPanel(TComponent* Owner)
: TStyledControl(Owner) {
	Height = 46;
	Width = 300;
	Align = TAlignLayout::Bottom;
}
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 im 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. Legen Sie die Ereignisbehandlungsroutine OnClick für die Schaltfläche wie folgt fest:
void __fastcall TPanelTestForm::Button1Click(TObject *Sender)
{
	int ModalResult;
	ModalResult = TestDialogForm->ShowModal() ;
	Label1->Text = IntToStr(ModalResult);
}
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.


Zurück

Weiter

Siehe auch