Search the Community
Showing results for tags 'Status Messages'.
-
"MessageScreen" - Blocking(!) Message- and InputDialogs and "Live" StatusMessages (with Abort option) No need for callbacks or extra threads or ... - Live Status messages (show the user at every time, what you are just doing) - Blocking(!) Input Dialog - Blocking(!) Message Dialog - "Abort option" at every time Sample Code: procedure TfrmMain.btnTestClick(Sender: TObject); var Nam: String; i: Integer; Br: Boolean; begin MS.Show; try // "Live" Status Messages: MS.StatusMsg('Step 1 / 3 ...'); Sleep(4000); // Do Something here ... MS.StatusMsg('Step 2 / 3 ...'); Sleep(4000); // Do Something here ... MS.StatusMsg('Step 3 / 3 ...'); Sleep(4000); // Do Something here ... // Input Dialog: if MS.InputDlg('Please enter your name:', 'Bill', 50) = 1 then begin Nam := MS.LastAnswerVal; MS.MessageDlg('Your name is ' + Nam + '!', 'OK'); end; // Message Dialog: case MS.MessageDlg('What do you want to do today, ' + Nam + '?', 'Do This', 'Do That', 'Do Everything', 'Do Anything' , 'Do Nothing') of 1: MS.MessageDlg('You Pressed Button 1!', 'OK'); 2: MS.MessageDlg('You Pressed Button 2!', 'OK'); 3: MS.MessageDlg('You Pressed Button 3!', 'OK'); 4: MS.MessageDlg('You Pressed Button 4!', 'OK'); 5: MS.MessageDlg('You Pressed Button 5!', 'OK'); else raise Exception.Create('There is no other Button, only 1 - 5 ?!'); end; // "Live" Status Messages with "ABORT" option: Br := False; for i := 1 to 10000000 do begin MS.StatusMsg('Record ' + IntToStr(i) + ' / 10000000', 1000, True); // !!! Important: Use "Delay" (here 1000 ms) if there are many Updates per second !!! if MS.HasAbort then begin if MS.MessageDlg('Really ABORT ?', 'Yes', 'No') = 1 then begin Br := True; BREAK; end; end; end; if Br then begin MS.MessageDlg('User has pressed ABORT !', 'OK'); end; MS.StatusMsg('Ready!'); Sleep(2000); finally MS.Hide; end; end; MsgScr.zip
- 8 replies
-
- 3
-
- MessageDlgInputDlg
- ShowMessage
-
(and 5 more)
Tagged with: