Login
`
Templates, Tools and Utilities
|
||
Add a comment to an Icetips ArticlePlease add your comments to this article.
Please note that you must provide both a name and a valid email address in order
for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!
Back to article list Search Articles Add Comment Printer friendly Direct link Par2: Smooth Process window/progress thermometer 1998-07-19 -- Martin Hoddin Herewith a SMOOTH Process window/progress thermometer.
The idea is NOT mine, thanks to tips from the group.
Thank you all , you know who you are.
Sorry, you template gurus, I do not know how to put it in
a template. I have modified the generic window and embeds
in the template registry, so this comes up on all my windows.
It is just so easy to delete bits not needed.
Coloring of the progress is simple. You choose your own.
Size of the panel and string is up to you, and the
progress calculation is not dependent on the size thereof.
There is a "how many minutes to go calculation" included.
Pause or cancel buttons are accessible each firing of the
timer, and also the escape key alerted on the window.
Hundreds of CPD2.1 reports have forced my hand, and now
they are easy, and I do not get caught in the loop with no keycode
escape.
Sorry, Mr Wet Noodles, for a long message, but less than 100 lines.
I do not know how to zip it up and attach it, no time to learn.
! GLOBAL DATA
RecsToDo LONG
RecsDone LONG
! LOCAL DATA
WAIT BYTE
CHECKER BYTE
HOWLONG STRING(100)
COUNTER LONG
STARTCLOCK LONG
WordString STRING(50)
SQ QUEUE,PRE()
DISPLAYQ STRING(80)
FPOINTER LONG
END
!-------------------------------------------------------------------------
win WINDOW('..'),AT(,,293,193),ALRT(EscKey),TIMER(6),SYSTEM,GRAY,RESIZE,AUTO,MDI
LIST,AT(3,4,287,123),USE(?List1),VSCROLL,FONT('Courier
New',9,,FONT:regular),FORMAT('320L(1)@s80@'),FROM(SQ)
PANEL,AT(43,136,196,17),USE(?Panel1),BEVEL(-1,-1)
STRING(@s100),AT(47,140),USE(HOWLONG),COLOR(COLOR:Navy) ! or PINK or YELLOW
STRING('..'),AT(11,160,189,10),USE(?WordString)
BUTTON('Print'),AT(72,175,44,14),USE(?Print)
BUTTON('Cancel'),AT(229,175,44,14),USE(?Cancel)
BUTTON('Pause'),AT(124,175,44,14),USE(?Pauser),ICON(ICON:NONE)
BUTTON('Edit'),AT(177,175,44,14),USE(?Change)
END
!---------------------------------------------------------------------------
INTIMER ROUTINE ! hit each timer firing (18/min ? about 6/100 secs)
LOOP ! loop enough records for each timer firing.
CASE CHECKER
OF 1
IF RecsDone > RecsToDo
CHECKER=0
DO Whatever ! when this process is finished
EXIT
ELSE
DO FINDITEMS ! next(thisfile)
RECSDONE +=1
IF CHECKER <> 1 ; EXIT . ! returnvalue from FindItems
END
OF 2 ! another process, or button, sets file, makes CHECKER=2
IF EOF(C)
DO AnotherWhatever ! at end of this file
SETCURSOR(CURSOR:ARROW)
?Change{PROP:HIDE}=0
CHECKER=0
EXIT
END
NEXT(C) ! access whatever ABC ? sorry
RECSDONE +=1
bal:owing +=C:R
ELSE ! exit, no action
?HOWLONG{PROP:WIDTH}=0
?WordString{PROP:TEXT}=''
EXIT
END
COUNTER +=1
IF COUNTER > 49 ! try to cycle enough records in each timer hit, value varies.
COUNTER=0
TimeToGo"=FORMAT((RecsToDo-RecsDone)/((RecsDone/(CLOCK()-STARTCLOCK))*6000),@N6.1)
?WordString{PROP:TEXT}=CLIP(TimeToGo") &' more mins,' & RecsDone &' to '& RecsToDo
?HOWLONG{PROP:WIDTH}=INT(((?PANEL1{PROP:WIDTH}*0.97)* (RecsDone/RecsToDo)))
EXIT
END
END
--
Note: on 7/19/98, Arnor Baldvinsson posted a template that does this at
Icetips /incoming a file called ProgExt.zip. It:
allows you to:
1. Hide the progress window *)
2. Animate icons instead of using progress bar
3. Use solid fill progress bar instead of the block progress bar*)
4. Percent value controlled color of the filled progress bar.*)
5. Change the caption and text field on the progress window with your
text and put field values into either/both.
6. Change the font and alignment of the text on the progress window
7. Post events to another thread with each percent when the progress
window is hidden.*)
*) - Only in the Clarion template for now.
Today is November 21, 2024, 7:04 am This article has been viewed 35191 times.
|
|