Jumat, 28 September 2012

MEMBUAT JAM ANALOG DENGAN VB NET

Introduction

Di sini, jam analog telah dibuat dengan perpustakaan kontrol VB.NET. Ini adalah kontrol jam yang memiliki hampir semua fungsionalitas bahwa jenis kontrol dapat memiliki, dan itu sepenuhnya dapat disesuaikan. Karena ini adalah perpustakaan kontrol, Anda dapat menggunakannya dalam C + +, C # proyek, J #, dan VB.NET dalam lingkungan. NET.

Saya membuat kontrol ini untuk membantu seseorang dalam VB Forum. Pada awalnya, itu adalah sebuah jam yang sangat sederhana, tapi kemudian menjadi agak maju setelah saya menambahkan banyak properti, peristiwa, dan fungsi yang membuat jam sangat fleksibel

. ClocksImg.png

Tambah Component

Untuk menggunakan kontrol, Anda hanya perlu menambahkannya ke dalam Toolbox VS.NET. Klik kanan di daerah Toolbox, dan pilih "Pilih Produk" item menu. Ini kemudian akan membuka "Pilih Item Toolbox" window. Anda pergi ke direktori yang berisi "AnalogClockLib.dll" file dan pilih, kemudian klik tombol OK. Ini akan menambah kontrol ke Toolbox.

Akhirnya, Anda drag dan drop kontrol ke formulir Anda. Juga, dalam rangka untuk melihat deskripsi dari sifat atau metode dalam Designer Kode, Anda harus menyalin "AnalogClockLib.xml" file ke dalam folder proyek anda.

Latar belakang
Kontrol jam adalah UserControl Windows. Hampir semua elemen dari jam telah dibangun (inti dari elemen) dengan tipe data GraphicsPath. Mereka berisi anggota Basis Path-variabel yang merupakan GraphicsPath elemen. Ini Base-Jalan yang digunakan berbeda untuk setiap elemen. Misalnya, penanda Base-Path merupakan GraphicsPath dibangun di 12 posisi jam dan dibandingkan diputar menggunakan objek Matrix. Karena itu diputar hanya sekali, tidak ada kebutuhan kedepan benda pembantu lainnya. Jam tangan ini memiliki variabel anggota dua GraphicsPath Jenis: Base-jalan dan Shift-jalan. The Base-Jalan tangan selalu diposisikan pada 12 jam o ', dan hanya dibentuk kembali jika bentuk elemen (lebar, panjang, atau gaya) yang dimodifikasi. Di sisi lain, Shift-Path adalah GrapicsPath sebenarnya tangan pada waktu tertentu. Pergeseran-Path adalah salinan diputar Base-jalan.Menggunakan Kode
Meskipun Anda dapat melakukan hampir semua hal dengan kontrol ini, saya akan menunjukkan Anda hanya bagaimana melukis jam tangan jam dengan PathGradientBrush a. Catatan, dalam mode ini, Anda bisa melukis elemen dengan sikat apapun.
Hal ini sangat bagus untuk melihat gradien jam tangan itu, jadi di sini adalah bagaimana Anda bisa melakukan itu. Pada dasarnya, Anda mengeset properti Brush dari tangan ke objek yang baru dibuat gradien kuas dalam acara cat tangan '.Collapse | Copy Kode
Private Sub Clock1_HourHandPainting (pengirim ByVal Sebagai Obyek, _
        
E ByVal Sebagai AnalogClock.PaintEventArgs) Menangani Clock1.HourHandPainting
    
"Pastikan grafis jalan jam tangan mengandung lebih dari 2 poin.
    
Jika Me.Clock1.HourHand.Path.PointCount> 2 Lalu
        
'Membuat gradien jam tangan
        
Dim br Sebagai Drawing2D.PathGradientBrush Baru (Me.Clock1.HourHand.Path)
        
br.CenterColor = Color.White
        
br.SurroundColors = Warna Baru () {} Me.Clock1.HourHand.Color
        
e.Brush = br
        
br.Dispose ()
    
End IfEnd Sub
Dalam beberapa situasi, Anda mungkin perlu mengatur waktu jam ke waktu mulai. Untuk hal ini, kita perlu melakukan sedikit perhitungan dan mengatur properti UtcOffset sesuai. Berikut ini adalah bagaimana kita bisa melakukan itu:Collapse | Copy Kode
Private Sub Form1_Load (ByVal sender Sebagai System.Object, _ByVal e Sebagai System.EventArgs) Menangani MyBase.Load
    
Dim CDT Sebagai DateTime = CDate ("# 17:20:35 #") 'Beberapa waktu awal kustom untuk jam.
    
Dim utcDt Sebagai DateTime = 'DateTime.UtcNow The datetime UTC saat ini."Hal ini diperlukan karena jam kerja internal dengan UTC datetime.
    
Me.Clock1.UtcOffset = New TimeSpan (0, cdt.Hour - utcDt.Hour, _
                             
cdt.Minute - utcDt.Minute, cdt.Second - utcDt.Second)End Sub
Kadang-kadang orang bertanya padaku mengapa jam adalah satu jam off setelah daylight savings atau bagaimana kita bisa yakin bahwa jam menunjukkan waktu yang tepat selalu. Nah, jika hal ini terjadi pada anda, maka Anda perlu memastikan bahwa UtcOffset jam adalah selalu akurat. Ini adalah bagaimana Anda bisa melakukannya:Collapse | Copy Kode
Private Sub Form1_Load (ByVal sender Sebagai System.Object, _ByVal e Sebagai System.EventArgs) Menangani MyBase.Load
    
'Set UTC offset untuk sistem utc diimbangi ketika beban aplikasi
    
Me.Clock1.UtcOffset = TimeZone.CurrentTimeZone.GetUtcOffset (DateTime.Now)End Sub
Private Sub Clock1_TimeChanged (ByVal pengirim Sebagai System.Object, _E ByVal Sebagai System.EventArgs) Menangani Clock1.TimeChanged
    
'Set UTC offset untuk sistem utc mengimbangi setiap perubahan waktu jam waktu.
    
'Jika properti memiliki nilai yang sama akan melakukan apa-apa.
    
Me.Clock1.UtcOffset = TimeZone.CurrentTimeZone.GetUtcOffset (DateTime.Now)End Sub

Tidak ada komentar:

Posting Komentar