From what I know - the answer is "no".
There's not much use of such non-modal message box because indeed, message box implies that program can not continue without getting users feedback (Yes/No/Ok/Cancel) or verifying user read it (Ok).
Without knowing other details, I guess you need a log, not a pile of unhandled message boxes. Worst case scenario, how many such messages do you expect to pile up if LAN breaks down, or something like that, 5, 20, 1000?
Create another form with a TMemo
in it and when your program needs to report something - display the form and add the string to that Memo. So when the user returns back, he sees that log.
Making a custom TForm
with a TMemo
or TLabel
on it and a public procedure AppendLog(aMsg: string);
is a matter of 10min, much shorter than what you will spend on searches and definitely a better fit to your usage scenario.