Skip to main content
Table of Contents

TTMSFNCToolBarButton.OnDropDown Event

Fires when the drop-down popup opens.

API unit family: TMSFNCToolBar Declaring type: TTMSFNCToolBarButton Inherited from: TTMSFNCDefaultToolBarButton Type: TNotifyEvent

Syntax

FMX.TMSFNCToolBar.hppPascalC++
property OnDropDown: TNotifyEvent;
__property System::Classes::TNotifyEvent OnDropDown = {read=FOnDropDown, write=FOnDropDown};

Usage examples

React to a button's dropdown lifecycle

Wires OnBeforeDropDown, OnDropDown, and OnCloseDropDown, and opens or closes the dropdown from code.

React to a button's dropdown lifecyclePascalC++
procedure TForm1.ConfigurePaletteButton;
begin
  FPalette := TMSFNCToolBar1.AddButton(120, 32, '', '', 'Palette');
  // ddkDropDown: the arrow opens the popup while the main area still fires OnClick.
  FPalette.DropDownKind := ddkDropDown;
  FPalette.DropDownControl := TMSFNCColorPicker1;
  FPalette.DropDownWidth := 220;
  FPalette.DropDownHeight := 240;

  FPalette.OnClick := PaletteClick;                 // main-area click
  FPalette.OnBeforeDropDown := PaletteBeforeDropDown; // cancel/prepare before it opens
  FPalette.OnDropDown := PaletteOpened;             // fired after it opens
  FPalette.OnCloseDropDown := PaletteClosed;        // fired after it closes
  TMSFNCToolBar1.Build;
end;

procedure TForm1.PaletteBeforeDropDown(Sender: TObject);
begin
  { Refresh the palette contents just before the popup appears. }
end;

procedure TForm1.PaletteOpened(Sender: TObject);
begin
  { The dropdown is now visible. }
end;

procedure TForm1.PaletteClosed(Sender: TObject);
begin
  { The dropdown has closed. }
end;

procedure TForm1.ShowPaletteFromCode;
begin
  // Open and close the dropdown programmatically.
  FPalette.DropDown;
  // ...later:
  FPalette.CloseDropDown;
end;
void __fastcall TForm1::ConfigurePaletteButton()
{
  FPalette = TMSFNCToolBar1->AddButton(120, 32, "", "", "Palette");
  // ddkDropDown: the arrow opens the popup while the main area still fires OnClick.
  FPalette->DropDownKind = ddkDropDown;
  FPalette->DropDownControl = TMSFNCColorPicker1;
  FPalette->DropDownWidth = 220;
  FPalette->DropDownHeight = 240;

  FPalette->OnClick = PaletteClick;                 // main-area click
  FPalette->OnBeforeDropDown = PaletteBeforeDropDown; // cancel/prepare before it opens
  FPalette->OnDropDown = PaletteOpened;             // fired after it opens
  FPalette->OnCloseDropDown = PaletteClosed;        // fired after it closes
  TMSFNCToolBar1->Build();
}

void __fastcall TForm1::PaletteBeforeDropDown(TObject *Sender)
{
  // Refresh the palette contents just before the popup appears.
}

void __fastcall TForm1::PaletteOpened(TObject *Sender)
{
  // The dropdown is now visible.
}

void __fastcall TForm1::PaletteClosed(TObject *Sender)
{
  // The dropdown has closed.
}

void __fastcall TForm1::ShowPaletteFromCode()
{
  // Open and close the dropdown programmatically.
  FPalette->DropDown();
  // ...later:
  FPalette->CloseDropDown();
}

Read the related guide