Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / multimedia / GDI+

Disc Used Space Control in Circle ProgressBar

4.89/5 (19 votes)
4 Mar 2009CPOL 54.7K   1.1K  
This Circle ProgressBar tells you about DVD or CD used space
cd-dvd_demo

Introduction

Hello!
I think Burning Applications should tell their users for disc (DVD/CD) used space in an attractive way, for example like this control.

Background

With this control, you find used space of DVD in a Circle ProgressBar Control.
For example, Nero wants to tell users about DVD/CD used space. This is the best way, it isn't perfect, but nothing is perfect.

Control Properties and Methods

Here is a list of the primary properties:

  • Disc Type 
    With this property we change Type of Disc
    example: from DVD(4500 MB) to CD(700 MB)
  • Valuemb  
    Capacity of disc in MB

Using the Code

Now let us see the code:

cd-dvd_demo

VB.NET
'used variables
' l_1 is the main circle
' l_2 is the second circle
' l_3 is the third circle (smallest)
' l_4 is tells you for used space of disc
' d is diameter of l_1
' d2 is diameter of l_2
' d3 is diameter of l_3
' d4 is diameter of l_4
' d_temp is distance between l_1 and l_4
' p is the center of the form
' dim p as integer = me.width/2
' 'we use only p coordinate because width=height
VB.NET
Dim a as Double 'this value will be percentage of used space
'If type of Disc is DVD
a=(100 * Val(value_mb)) / 4500 ' valuemb is your value in mb
Dim d_temp As Integer
d_temp = d - (d / 4) 'distance between l_1 and l_4
d_per = ((a / 100) * d_temp) + d2 'diameter of l_4(used space circle)
r_per = d_per / 2 'radius of l_4(used space circle)
'Now we draw l_4 (used space circle)
 e.Graphics.FillEllipse(color1, p - r_per, p - r_per, d_per, d_per)
 
'If type of Disc is CD
a=(100 * Val(value_mb)) / 700 ' valuemb is your value in mb
Dim d_temp As Integer
d_temp = d - (d / 4) 'distance between l_1 and l_4
d_per = ((a / 100) * d_temp) + d2 'diameter of l_4(used space circle)
r_per = d_per / 2 'radius of l_4(used space circle)
'Now we draw l_4 (used space circle)
e.Graphics.FillEllipse(color1, p - r_per, p - r_per, d_per, d_per) 

On resize width of control must be equal to height:

VB.NET
Me.Width = Me.Height
Me.Height = Me.Width

History

  • Version 1.0 - 28 February 2009

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)