Merhaba Arkadaşlar. VB.NET'de bir değişkenin deiğişimine göre form içindeki mesela label1.text'i nasıl değiştirebilirim. Mesela;
class form1
if y=1 then label1.text="Tamam" Else label1.text="Bekliyor"
end class
Bu durumda bu cümle bir kalıp dışında olamaz hatası veriyor. Yardım ederseniz sevinirim. Teşekkürler.
bu olayı hangi olay olunca yapmak istiyorsun
VB için konuşuyorum,
y değişkenin general declaration da tanımlanması gerek, yani formun en üstünde. Bunun anlamı y değişkeni tüm prosedürlerde görülebilmesini sağlar.
ayrıca
Alıntı Yapbu olayı hangi olay olunca yapmak istiyorsun
dendiği gibi, o işi ortaya çıkaracak bir durum lazım,
bir butona basmak gibi
veya bir timer ile istediğin sıklıkta y değişkenin o değeri almışmı diye kontrol etmek gibi.
Teşekkürler. Anladığım kadarıyla, biz komutları picbasic'teki gibi boşta her zaman denetlenecek şekilde koyamıyoruz. İlla bir durum olması gerekiyor.
pic de durum farklı.
Donanımı ve veya yazılımı çalışan bir işlemci var, donanımı geçersek,
Yazılımın çalışması demek, clock palslerinin her atışında (veya tam doğrusu 1 instruction cycle da) programda 1 adım ileri git demektir.
Yani en üstten başlar en alta kadar adım adım gider. Yolu üstündeki yazılımı icra eder. Yolu üzerindeki tüm olaylar tek bir prosedür kapsamında gibidir.
Yani multitasking yok.
PC de ise işlemci sayısız işlem ile uğraşır. Senin yazdığın program içinde bile ne ile uğraşacağını sen yönlendirmen gerekir.
degiskenini property olarak tanimlayip, get/set ozellikleri icinde label.text degistirebilirsin en basitinden, hic event'e falan girmeden..
c# icin ornek vereyim, vb'ye uyarlarsin
private int number;
public int Number
{
get { return number; }
set
{
labelx.text = number.ToString();
number = value;
}
}
VB icin surdan bakabilirsin...
http://msdn.microsoft.com/en-us/library/6b85bc00.aspx (http://msdn.microsoft.com/en-us/library/6b85bc00.aspx)
Alıntı yapılan: mech - 19 Ocak 2013, 09:21:54
Teşekkürler. Anladığım kadarıyla, biz komutları picbasic'teki gibi boşta her zaman denetlenecek şekilde koyamıyoruz. İlla bir durum olması gerekiyor.
Durum kontrolü programın işlevselliği ve sağlamlığı açısından önemlidir; ancak illa ki durum olmasına gerek yok.
Form açıldığında bir timer nesnesi koyarız ve interval değerini 1 yaparız.Saniyenin binde biri aralıkta, istediğimiz komutu çalıştırabiliriz.Bu da yeterli olur diye düşünüyorum.
Sizin için örnek bir proje yazdım buyrun, umarım işe yarar:
Dil:vb 2008
http://s2.dosya.tc/server/vCbDdd/formd___.rar.html (http://s2.dosya.tc/server/vCbDdd/formd___.rar.html)
Her ihtimale karşı kodlar:
Public Class Form1
Dim y As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Timer1.Interval = 1
Timer1.Start()
Catch ex As Exception
End Try
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
If y = "1" Then
Label1.Text = "Tamam"
Else
Label1.Text = "Bekliyor ..."
End If
Catch ex As Exception
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
y = 1
Catch ex As Exception
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
y = 0
Catch ex As Exception
End Try
End Sub
End Class
hocam sizin tabirinizle bu bile bir durumdur
Alıntı YapForm açıldığında bir timer nesnesi koyarız ve interval değerin
timer tick olayını tetikler bu dediğiniz.
Eğer vb.net te olay temelli program yazmak istemiyorsanız console da yazmanız gerekir. diğer durumlarda yolunuz kesinlikle EVENT lere çıkar.
Alıntı yapılan: muhittin_kaplan - 23 Şubat 2013, 11:02:19
hocam sizin tabirinizle bu bile bir durumdur
timer tick olayını tetikler bu dediğiniz.
Eğer vb.net te olay temelli program yazmak istemiyorsanız console da yazmanız gerekir. diğer durumlarda yolunuz kesinlikle EVENT lere çıkar.
Haklısınız aslında bu da "form load" olayıdır; ancak "form_load" kendiliğinden başladığı için arkadaşın ihtiyacını karşılar nitelikte olacağı kanısındayım.
Alıntı yapılan: Baypars - 22 Şubat 2013, 20:52:27
Durum kontrolü programın işlevselliği ve sağlamlığı açısından önemlidir; ancak illa ki durum olmasına gerek yok.
Form açıldığında bir timer nesnesi koyarız ve interval değerini 1 yaparız.Saniyenin binde biri aralıkta, istediğimiz komutu çalıştırabiliriz.Bu da yeterli olur diye düşünüyorum.
Sizin için örnek bir proje yazdım buyrun, umarım işe yarar:
Dil:vb 2008
http://s2.dosya.tc/server/vCbDdd/formd___.rar.html (http://s2.dosya.tc/server/vCbDdd/formd___.rar.html)
Her ihtimale karşı kodlar:
Public Class Form1
Dim y As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Timer1.Interval = 1
Timer1.Start()
Catch ex As Exception
End Try
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
If y = "1" Then
Label1.Text = "Tamam"
Else
Label1.Text = "Bekliyor ..."
End If
Catch ex As Exception
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
y = 1
Catch ex As Exception
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
y = 0
Catch ex As Exception
End Try
End Sub
End Class
Teşekkürler. Time Tick olayını kullanarak işimi gördüm. Yalnız, Bu catch try kullanmadım. Bunları kullanmazsam ne olur.
Hata Olursa Program Çöker. Try Catch -end try blogu kullanıcıya bir hata oluştuğunda bildirmek yada bu hatayı yakalayıp programın çökmesini engellemek için kullanılır.
try
çalıştırılıcak kodlar...
...
...
catch
hata oluştuğunda çalışacak kodlar....
...
...
endtry