Добавить это:
$message=explode($message, "\n")[0];
Это должно работать.
Конечно. Поместите панель инструментов на странице. Щелкните правой кнопкой по панели инструментов, добавьте кнопку. Установите стиль кнопки на tbsDropDown. Поместите PopupMenu на странице. Дважды щелкните по PopupMenu для определения пунктов меню. Затем вернитесь к кнопке, Вы создали и установили ее свойство DropdownMenu для указания на PopupMenu, который Вы просто создали.
Я предполагаю, что Вы имеете в виду кнопку, которая раскрывает меню при нажатии.
Можно также просто вручную кодировать нажатие кнопки на выпадающий TPopupMenu под ним.
Пример: Отбросьте что-либо с TClickEvent (возможно, TButton) и TPopupMenu на Вашей форме. Добавьте некоторые пункты меню. Затем добавьте следующий обработчик событий OnClick:
procedure TForm86.Button1Click(Sender: TObject);
var
button: TControl;
lowerLeft: TPoint;
begin
if Sender is TControl then
begin
button := TControl(Sender);
lowerLeft := Point(button.Left, button.Top + Button.Height);
lowerLeft := ClientToScreen(lowerLeft);
PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
end;
end;
И альт! Точно так же, как волшебство. Вы могли обернуть все это в компоненте, если Вы планируете снова использовать его. Возможно, даже продайте его онлайн.
Примечание: Если Вы хотите задержку, то извлекаете тот код в другом методе и затем устанавливаете таймер OnClick и поворачиваете таймер OnMouseLeave. Затем, если огни таймера можно назвать извлеченный метод. Не уверенный, как Вы сделали бы это при щелчке клавиатуры. Я не знаю если Firefox, и т.д. поддержки это также.
Если Вы не хотите использовать панель инструментов, повышение (www.raize.com) и выражать библиотеки (www.DevExpress.com) редакторов имеют компоненты, которые могут сделать это.
Ответ Джима великолепен, но сначала мне не совсем понравилось. ClientToScreen использует метод Form86, который является правильным только в том случае, если кнопка находится непосредственно в форме. Это должен быть метод кнопки ClientToScreen, который вызывается, например:
procedure TForm86.Button1Click(Sender: TObject);
var
button: TControl;
lowerLeft: TPoint;
begin
if Sender is TControl then
begin
button := TControl(Sender);
lowerLeft := Point(0, button.Height);
lowerLeft := button.ClientToScreen(lowerLeft);
PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
end;
end;
Это работает независимо от того, где находится кнопка.