Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

You can select your Thermometer or Progress Bar Class 8

Status
Not open for further replies.

ramani

Programmer
Mar 15, 2001
4,336
AE
*********************************************************
** gsThermometer by Subramanian.G (ramani)
** ** FoxAcc Software - ramani_g@yahoo.com
** provided as freeware. Use at your Own Risk.
*********************************************************
* How to use .... (Example)
* Progress Bar or Thermometer Class and how to use .. example
*
* Copy the following and run the PRG

DEFINE POPUP gsTherm SHORTCUT RELATIVE FROM MROW(),MCOL() ;
STYLE "BOLDITALIC" FONT "Arial",12 ;
TITLE "Thermometer Demo" MARGIN

DEFINE BAR 1 OF gsTherm PROMPT "Thermometer using labels"
DEFINE BAR 2 OF gsTherm PROMPT "Thermometer using OLE class"
DEFINE BAR 3 OF gsTherm PROMPT "Thermometer using container"
DEFINE BAR 4 OF gsTherm PROMPT "Exit"

ON SELECTION POPUP gsTherm DEACTIVATE POPUP
*****************************************************
DO WHILE .t.
ACTIVATE POPUP gsTherm
DO CASE
CASE BAR()=1
cThermometer = 'gsThermometer'
CASE BAR()=2
cThermometer = 'gsThermometerOLE'
CASE BAR()=3
cThermometer = 'gsThermometerBar'
CASE BAR()=4
EXIT
ENDCASE
**
oTherm = createobject(cThermometer)
oTherm.Show()
FOR I = 1 TO 100
a = inkey(.01)
oTherm.Progress1.Value = i
ENDFOR
oTherm.Release
**
ENDDO
RETURN
**************************************************
* The above code is for showing example
* Choose the thermometer you like and implement.
*
* Suitably insert lines in your code to set the
* oThermometer.Progress1.Value a % completed.
*
*
**************************************************
** The following shows the
** A combination of Labels as growing for progress bar.
**************************************************
*-- Class: gstherm
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 11/13/04 12:58:04 PM
*
DEFINE CLASS gsThermometer AS form

Height = 76
Width = 500
AutoCenter = .T.
BackColor = RGB(240,240,240)
BorderStyle = 0
Caption = ""
Closable = .F.
ControlBox = .F.
MaxButton = .F.
MinButton = .F.
Movable = .F.
AlwaysOnTop = .f.
ShowWindow = 1
Name = "gsThermometer"


ADD OBJECT ShapeOuter AS shape WITH ;
Top = 2, ;
Left = 2, ;
Height = 72, ;
Width = 496, ;
BackStyle = 0, ;
BorderWidth = 4, ;
Curvature = 5, ;
SpecialEffect = 0, ;
BorderColor = RGB(0,128,0), ;
Style = 0, ;
Name = "ShapeOuter"


ADD OBJECT Image1 AS image WITH ;
Picture = ADDBS(HOME(4))+[Bitmaps\Assorted\Beany.bmp], ;
BackStyle = 0, ;
Height = 64, ;
Left = 10, ;
Top = 6, ;
Width = 64, ;
Name = "Image1"


ADD OBJECT Progress1 AS textbox WITH ;
Value = 1, ;
Visible = .F., ;
Name = "Progress1"


ADD OBJECT lblProgress AS label WITH ;
FontBold = .T., ;
BackStyle = 0, ;
Caption = "Progress", ;
Height = 14, ;
Left = 81, ;
Top = 18, ;
Width = 384, ;
ForeColor = RGB(0,128,0), ;
Name = "lblProgress"


ADD OBJECT ShapeProgress AS shape WITH ;
Top = 32, ;
Left = 77, ;
Height = 32, ;
Width = 408, ;
BackStyle = 1, ;
SpecialEffect = 0, ;
BackColor = RGB(255,255,240), ;
Name = "ShapeProgress"


ADD OBJECT Label1 AS label WITH ;
FontBold = .T., ;
FontSize = 24, ;
BackStyle = 0, ;
Caption = (REPLICATE("I",50)), ;
Height = 30, ;
Left = 81, ;
Top = 29, ;
Width = 404, ;
ForeColor = RGB(192,192,192), ;
Name = "Label1"


ADD OBJECT Label2 AS label WITH ;
FontBold = .T., ;
FontSize = 24, ;
BackStyle = 0, ;
Caption = "Label2", ;
Height = 30, ;
Left = 79, ;
Top = 29, ;
Width = 404, ;
ForeColor = RGB(0,192,0), ;
Name = "Label2"


ADD OBJECT Label3 AS label WITH ;
FontBold = .T., ;
FontSize = 24, ;
BackStyle = 0, ;
Caption = "Label3", ;
Height = 30, ;
Left = 81, ;
Top = 29, ;
Width = 404, ;
ForeColor = RGB(0,192,0), ;
Name = "Label3"


PROCEDURE Destroy
SET CURSOR ON
ENDPROC


PROCEDURE Init
* Simply Set This.Progress1.Value = % completed to display suitably.
*
This.Progress1.Value = 0
SET CURSOR OFF
This.zOrder(0)
INKEY(0.001)
ENDPROC


PROCEDURE progress1.ProgrammaticChange
This.Parent.Label2.Caption = REPLICATE("I",This.Value/2)
This.Parent.Label3.Caption = REPLICATE("I",This.Value/2)
INKEY(0.001)
ENDPROC


ENDDEFINE
*
*-- EndDefine: gstherm
**************************************************
*
*
*
*
*
**************************************************
** The following shows the
** OLE class-Microsoft Progressbar Control Ver 5.0 (SP2)
** way of showing a progress bar.
**************************************************
**************************************************
** gsThermometerOLE
**************************************************
*-- Form: gsThermometerOLE
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 11/10/04 12:01:04 AM
*
DEFINE CLASS gsThermometerOLE AS form

Height = 70
Width = 408
AutoCenter = .T.
BackColor = RGB(240,240,240)
BorderStyle = 3
Caption = ""
Closable = .F.
ControlBox = .F.
MaxButton = .F.
MinButton = .F.
Movable = .F.
AlwaysOnTop = .f.
ShowWindow = 1
Name = "gsThermometer"

ADD OBJECT shape1 AS shape WITH ;
Curvature = 10, ;
Top = 6, ;
Left = 6, ;
Height = 58, ;
Width = 396, ;
Name = "Shape1"

ADD OBJECT lblProgress AS label WITH ;
BackStyle = 0, ;
Caption = "Progress", ;
ForeColor = RGB(0,128,0), ;
Height = 14, ;
Left = 12, ;
Top = 12, ;
Width = 384, ;
Name = "lblProgress"

** OLE class-Microsoft Progressbar Control Ver 5.0 (SP2)
ADD OBJECT Progress1 AS olecontrol WITH ;
Top = 28, ;
Left = 12, ;
Height = 30, ;
Width = 384, ;
OleClass = 'comctl.ProgCtrl.1', ;
Name = "Progress1"

PROCEDURE Destroy
SET CURSOR ON
ENDPROC

PROCEDURE Init
* Simply Set This.Progress1.Value = % completed to display suitably.
*
This.Progress1.Value = 0
SET CURSOR OFF
This.zOrder(0)
INKEY(0.001)
ENDPROC

ENDDEFINE
*
*-- EndDefine: gsThermometerOLE
**************************************************
*
*
*
*
*
**************************************************
** The following shows
** A Container as a growing bar for progress bar.
**************************************************
**************************************************
** gsThermometerBar
**************************************************
*-- Form: gsThermometerBar
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 11/10/04 12:01:04 AM
*
DEFINE CLASS gsThermometerBar AS form

Height = 70
Width = 408
AutoCenter = .T.
BackColor = RGB(240,240,240)
BorderStyle = 3
Caption = ""
Closable = .F.
ControlBox = .F.
MaxButton = .F.
MinButton = .F.
Movable = .F.
AlwaysOnTop = .f.
ShowWindow = 1
Name = "gsThermometer"

ADD OBJECT shape1 AS shape WITH ;
Curvature = 10, ;
Top = 6, ;
Left = 6, ;
Height = 58, ;
Width = 396, ;
Name = "Shape1"

ADD OBJECT lblProgress AS label WITH ;
BackStyle = 0, ;
Caption = "Progress", ;
ForeColor = RGB(0,0,128), ;
Height = 14, ;
Left = 12, ;
Top = 12, ;
Width = 384, ;
Name = "lblProgress"

ADD OBJECT Progress1 AS textbox WITH ;
Value = 1, ;
Visible = .F., ;
Name = "Progress1"

ADD OBJECT ProgressBarBack AS Container WITH ;
SpecialEffect = 1, ;
Top = 29, ;
Left = 12, ;
Height = 24, ;
Width = 384, ;
Name = "ProgressBarBack"

ADD OBJECT ProgressBar AS container WITH ;
BackColor = RGB(224,0,0), ;
BackStyle = 1, ;
BorderWidth = 0, ;
Top = 31, ;
Left = 14, ;
Height = 20, ;
Width = 380, ;
Name = "ProgressBar"

ADD OBJECT ProgressPercent AS Label WITH ;
BackStyle = 0, ;
BorderStyle = 0, ;
FontItalic = .t., ;
FontSize = 9, ;
ForeColor = RGB(0,0,128), ;
Top = 34, ;
Left = 192, ;
Height = 18, ;
Width = 36, ;
Name = "ProgressPercent"

PROCEDURE Destroy
SET CURSOR ON
ENDPROC

PROCEDURE Init
* Simply Set This.Progress1.Value = % completed to display suitably.
*
This.Progress1.Value = 0
SET CURSOR OFF
This.zOrder(0)
INKEY(0.001)
ENDPROC

PROCEDURE progress1.ProgrammaticChange
* 380 is the Max width of the Progress Bar when 100% completed.
This.Parent.ProgressBar.Width = (This.Value * 380)/100
This.Parent.ProgressPercent.Caption = TRANSFORM(This.Value)+'%'
INKEY(0.001)
ENDPROC

ENDDEFINE
*
*-- EndDefine: gsThermometerBar
**************************************************


____________________________________________
ramani - (Subramanian.G) :)
 
Excellent job ramani =
star.gif




Jim Osieczonek
Delta Business Group, LLC
 
Sweet - Worthy of Star

Regards,

Mike
 
Jimoo and Mike

Thanks for the stars. I will be happy, if these help users.

:)

____________________________________________
ramani - (Subramanian.G) :)
 
sir ramani,

i tried using your code in one of our small apps and its working great. here's another star from me. peace! [peace]

kilroy [trooper]
philippines

"If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get one million miles to the gallon, and explode once a year, killing everyone inside."
 
ramani,

What I like about your samples is they show several different ways to do the same thing. Choice is good.

My personal preference is to stay away from 3rd party or OLE controls that need to be registered and focus on native VFP code whenever I can. That way I don't have to worry about registering anything.




Jim Osieczonek
Delta Business Group, LLC
 
Nice, another star.
 
Good work Ramani.
Thanks for sharing it with us.
One more * for you.
Regards,
Rajesh
 
Thanks Ramani! You made my life a lot easier! Like Jimoo I really enjoy the choice you presented, and your code is easy to read. One more star for your efforts.
 
Thanks Ramani! You made my life a lot easier! Like Jimoo I really enjoy the choice you presented, and your code is easy to read. One more star for your efforts.
 
Ramani,

very good and clear coding, worth star #10!

Koen
 
Hi

I have made this an FAQ.
I am happy I could be of some help.
'Thank you' to all of you for encouragement and the feedback which is a very healthy sign for this professional site.

:)

____________________________________________
ramani - (Subramanian.G) :)
 
Good one ramani!
Here's yet another star...

Gerardo Czajkowski
ltc.jpg
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top