Oliver Morsch Posted September 22, 2015 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
Administrators Farshad Mohajeri Posted September 23, 2015 Administrators 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
Administrators Farshad Mohajeri Posted November 26, 2015 Administrators 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
Oliver Morsch Posted November 26, 2015 Author Posted November 26, 2015 Perhaps we can extend and integrate a similar method in uniGUI core. That would be great! Quote
Administrators Farshad Mohajeri Posted November 9, 2017 Administrators 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
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.