MsgDlgAction
There are 2 packages, ksMsgActns50 (runtime) and ksMsgActnsDsgn50 (design time), OPEN ksMsgActns50.dpk, do a BUILD ALL, then OPEN ksMsgActnsDsgn50.dpk and INSTALL.
If all goes well you will have just installed 3 custom actions, namely:
TMsgDlgAction,
TMsgDlgPosAction,
and TConfirmationAction.
They are basically actions that wrap the MessageDlg function, the first two allow you to specify the message, required mouse buttons and message dialog type (information, confirmation, warning, error and the custom type). There is an OnClick event that is triggered when the dialog is closed and the ModalResult of the dialog is passed as the second parameter in the event handler (first being SENDER). The MsgDlgPos action also allows you to specify the x and y co-ordinates of where the dialog should be displayed (MessageDlgPos function), the default x co-ordinate is -1, so too is the y co-ordinate, if either are still -1 when the action is invoked the dialog will be centered (MessageDlg function).
There are custom action classes, so creating specific descendants is a fairly simply procedure. The TConfirmationAction is an example of such a descendant, this action always invokes a confirmation dialog box, with a "Yes" and "No" mouse buttons, you can specify the message and pos if required. It has 2 events of note, an OnYesClick and an OnNoClick, useful for all those pesky questions, e.g. "Are you sure, you want to whatever ?". Unfortunately the MessageDlg functions don't support a "Don't ask me this question again." Checkbox with persistence, mmmmm, perhaps I'll look into that?.
Some uses.
The confirmation action can be used on delete buttons, confirm the users intention to delete, and write the deletion code in the OnYesClick event handler. You could place an ActionList in a DataModule and all MessageDlg Actions in the ActionList, this would group all of them together in a central place, along with the code to execute on a yes, no, retry, ignore, whatever click.
Anyway, is not much but it is a start!
Constructive criticism is welcome, although not always enjoyed B-)
Here is a list of more actions I have written, but was informed that they now ship with Delphi 6, if anyone wants them drop me an email
TOpenDialogAction (action invokes open dialog, open picture too),
TSaveDialogAction (action invokes save dialog, save picture too),
TFontDialogAction (action invokes font dialog),
TColorDialogAction (action invokes color dialog),
TPrintDialogAction (action invokes print dialog, printer setup dialog too),
TFindDialogAction (action invokes find dialog, replace dialog too).