Oliver Morsch Posted September 22, 2015 Share Posted September 22, 2015 "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 3 Quote Link to comment Share on other sites More sharing options...
albertovesx Posted September 22, 2015 Share Posted September 22, 2015 Thank you Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted September 23, 2015 Administrators Share Posted September 23, 2015 I didnt have time to look at this, but from its description it looks like that it introduces cool features. I will test it soon. Thanks for sharing. Quote Link to comment Share on other sites More sharing options...
wangxuebin Posted November 2, 2015 Share Posted November 2, 2015 Good!very useful! Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted November 26, 2015 Administrators Share Posted November 26, 2015 You handle HTTP requests in background which originate from a HTML frame. Very smart! Perhaps we can extend and integrate a similar method in uniGUI core. Thanks again 2 Quote Link to comment Share on other sites More sharing options...
Oliver Morsch Posted November 26, 2015 Author Share Posted November 26, 2015 Perhaps we can extend and integrate a similar method in uniGUI core. That would be great! Quote Link to comment Share on other sites More sharing options...
mhmda Posted December 26, 2016 Share Posted December 26, 2016 +1 Quote Link to comment Share on other sites More sharing options...
albertovesx Posted November 9, 2017 Share Posted November 9, 2017 Deleted post... Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted November 9, 2017 Administrators Share Posted November 9, 2017 Hi, Is there something done about this?Yes, almost a year ago.Please see EnableSynchronousOperations in MainModule. Sent from my SM-N900 using Tapatalk Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.