function ExternalBox(hWd: DWord; lpText, lpCaption: PChar;
uType: DWord; wLanguageId: Word; dwMilliseconds: DWord):
LongInt; stdcall; external user32 name 'MessageBoxTimeoutA';
function ZeitBox(h: THandle; sText, sCaption: string;
cType, cTime: Cardinal): integer;
begin
result := ExternalBox(h, PChar(sText + ' '), PChar(sCaption),
cType, 0, cTime);
end;
// Beispielaufruf
var
zeit: cardinal = 5000; // 5 Sekunden
procedure TForm1.Button2Click(Sender: TObject);
var
s: string;
begin
if zeit > 0 then s := 'MessageBox wird automatisch geschlossen.'
else s := 'MessageBox bleibt bis Klick oder Alt+F4 geöffnet.';
case ZeitBox(handle, s, 'Test', MB_OKCANCEL or MB_ICONINFORMATION, zeit) of
MROK: s := 'OK';
MRCANCEL: s := 'Abgebrochen';
else s := 'Zeit abgelaufen';
end;
showmessage(s);
end;