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. TPopupNotifier is available fron the Common Controls tab of the Component Palette.
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. It is available on the Common Controls tab on the component palette.
Currently works on the following widgetsets: win32, gtk (obsolete), gtk2 and Qt
Depends only on the Lazarus Component Library.
- Drop a TPopupNotifier component on form. Set the icon image, header text and message text and optionally the colour.
- 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:
- Icon: TPicture, mapped to a TImage
- Header: TLabel ( sets +FsBold automatically)
- 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
- Apart 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;
- 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.
- TPopupNotifier generates an OnClose event when the form is closed, whether by you or the user, this is useful 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).
var I : Integer; Lines : TStringListç ... for I := 0 to Lines.Count - 1 do PopupNotifier1.Text := PopupNotifier1.Text + LineEnding + Lines[I];
There is a small demo program in the components/popupnotifier/demo directory, though simple it shows off nearly all the standard features.