From Lazarus wiki
Revision as of 16:01, 24 March 2012 by Vincent (talk | contribs) (Text replace - "delphi>" to "syntaxhighlight>")

English (en) français (fr) 中文(中国大陆)‎ (zh_CN)


TPopupNotifier is a platform independent 'balloon help' component for showing pop-up messages anywhere on the screen. The component is based on TForm and has built in support for icon's, header text, message text and custom colorisation.



Modifyed LGPL just like Lazarus Component Library.


Can be found on your lazarus installation at lazarus/component/popupnotifier directory. It is available on Lazarus 0.9.17 or superior.

System Requirements

Currently works on the following widgetsets: win32, gtk, gtk2

Depends only on the Lazarus Component Library.


  1. Drop a TPopupNotifier component on form. Set the icon image, header text and message text and optionally the colour.
  2. Call TPopupNotifier.Show to show the message, or TPopupNotifer.Hide to hide it.

A note on the implementation

TPopupNotifier uses a wrapper component so that the TForm is not embedded into your application form. The actual data types behind it are:

  1. Icon: TPicture, mapped to a TImage
  2. Header: TLabel ( sets +FsBold automatically)
  3. Message: TLabel sized to show multiline messages

The close button is a custom canvas drawn component (there were good reasons we did this).

More advanced features

  1. Appart from these basics, you can use any of the methods from the above datatypes to manipulate messages. For example you can call TPopupNotifier.Icon.LoadFromFile;
  2. TPopupNotifier has a visible property, which can be used to check if the form is currently shown or not, setting it's value will also hide/show the form as appropriate.
  3. TPopupNotifier generates an OnClose event when the form is closed, whether by you or the user, this is usefull if you wish something to happen as soon as the form is closed. Clicking anywhere on the form has the same close effect as clicking the close-button itself.

Showing multiline messages This code demonstrates the right way to show a multiline message (in this case from a TSTringList).

  I : Integer;
  Lines : TStringListç
for I := 0 to Lines.Count - 1 do
  PopupNotifier1.Text := PopupNotifier1.Text + LineEnding + Lines[I];

Demo program

There is a small demo program in the components/popupnotifier/demo directory, though simple it shows off nearly all the standard features.