one click away

Kamis, 11 Oktober 2012

Membuat Marquee (teks berjalan) pada aplikasi desktop

Buat project form baru (VB). Tambahkan satu buah label, beri nama “lblFlyText”. kemudian isi property text pada lblFlyText dengan tulisan apa saja, misal “fly text”. Copy saja text sehingga menjadi panjang. Tambahkan Komponen sebuah timer dengan interval 100.


untuk lebih jelasnya perhatikan gambar berikut:



masuk ke bagian sourcode.
buat sebuah properti dan enum sebagai berikut:

Private mRunningText As String 
Public Property RunningText() As String 
Get 
Return mRunningText 
End Get 

Set(ByVal value As String) 
mRunningText = value 
End Set 
End Property 

Enum SlideTypeEnum 
Right 
Left 
End Enum 

Private mSlideType As SlideTypeEnum 
Public Property SlideType() As SlideTypeEnum 
Get 
Return mSlideType 
End Get 

Set(ByVal value As SlideTypeEnum) 
mSlideType = value 
End Set 
End Property 

lalu,

Pada method form_load, tulis sourcode berikut:

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As _ 
System.EventArgs) Handles MyBase.Load 
BuildRunningText() 
lblRunningText.Text = Me.RunningText 
Timer1.Enabled = True 
End Sub 

kemudian isi dari timer1_tick()

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e _ 
As System.EventArgs) Handles Timer1.Tick 
Me.RunningText = SlideText(Me.RunningText, SlideTypeEnum.Left, 1) 
Me.lblRunningText.Text = Me.RunningText 
End Sub 

adapun method pendukung lain sebagai berikut:

Private Sub BuildRunningText() 
Dim fly_text As String = "running_text" 
Dim build_text As New StringBuilder 
For index As Integer = 0 To lblRunningText.Text.Count 
If index < fly_text.Count Then 
build_text.Append(fly_text(index)) 
Else 
build_text.Append(" ") 
End If 

Next 

For index As Integer = 0 To fly_text.Count 
build_text.Append(" ") 

Next 
Me.RunningText = build_text.ToString 
End Sub 

Private Function SlideText(ByVal str As String, ByVal slide_type _ 
As SlideTypeEnum, ByVal as_much_as As Integer) As String 
Dim str_temp As New StringBuilder 
If slide_type = SlideTypeEnum.Right Then 
For index As Integer = (str.Count - as_much_as) To (str.Count - 1) 
str_temp.Append(str(index)) 

Next 
For index As Integer = 0 To (str.Count - as_much_as - 1) 
str_temp.Append(str(index)) 
Next 
Else 
For index As Integer = as_much_as To (str.Count - 1) 
str_temp.Append(str(index)) 
Next 
For index As Integer = 0 To (as_much_as - 1) 
str_temp.Append(str(index)) 
Next 
End If 
Return str_temp.ToString 
End Function 

Tidak ada komentar:

Posting Komentar

Silahkan anda berikan komentar tapi sopan ya