Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
190
Cevap
94798
Tıklama
0
Öne Çıkarma
Cevap: Visual Basic Örnekler (4. sayfa)
A
19 yıl
Yüzbaşı

Private Sub Command8_Click()
Printer.Print Text1
Printer.EndDoc
End Sub

biraz gec gördüm yazını ama ben bunu gecen sene yapmıstım projem vb de word yapmaktı. ve yazdır komutu da vardı. yukardaki kodları kullanmıstım. işe yarıo. kolay gelsin sana


dostum iyi hoş bu komutlar yazdırıyor. fakat formatlı olarak değil
örneğin
adı:ahmet
soyadı:yeşil
gibi ama

ben
adı____: ahmet
soyadı_: yeşil
olarak yazdırmak istiyorum ne yapabilirm.??? ("_" olan yerleri boşluk olarak kabul et )


Bu mesaja 2 cevap geldi.
K
19 yıl
Teğmen

kullanıcı bir listeye kafasına göre sayı eklemek istiyo fakat ekranda bunları sıralı hale dönüştürecek sıralama ile ilgili kodlara ihtiyacım var .. yardım eden olursa sevinirim..


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

proglama.com adresinden alıntı bir kod
verilen iki sayı arasında asal sayıları bulmaya yarıyor


Private Sub Command1_Click()
Dim i, j, asl As Boolean
On Local Error Resume Next
List1.Clear
ProgressBar1.Visible = True
ProgressBar2.Visible = True
ProgressBar1.Min = 0
ProgressBar2.Max = Val(Text2) - Val(Text1)
For i = Val(Text1) To Val(Text2)
asal = True
ProgressBar2.Min = 2
ProgressBar2.Max = i
ProgressBar1.Value = i - Val(Text1)
For j = 2 To i - 1
ProgressBar2.Value = j
DoEvents
If (i Mod j) = 0 Then
asal = False
Exit For
End If
Next
If asal Then List1.AddItem i
Next
ProgressBar1.Visible = False
ProgressBar2.Visible = False

End Sub

Private Sub Form_Load()
ProgressBar1.Align = vbAlignBottom
ProgressBar2.Align = vbAlignBottom
ProgressBar1.Visible = False
ProgressBar2.Visible = False
End Sub


Bu mesaja 1 cevap geldi.
S
19 yıl
Er

quote:

ProgressBar1.Align = vbAlignBottom


burada run time error hatası veriyor



C
19 yıl
Binbaşı

Teşekkürler baya işime yaradı


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

eyvallah barış

bu arada öss 1 asama puan hesabı yapan kodlar

7 text 7 label ve 1 click butonu yeterli...

Private Sub Command1_Click()
Dim turk, sosyal, mat, fen As Byte

turk = Val(Text1.Text)
sosyal = Val(Text2.Text)
mat = Val(Text3.Text)
fen = Val(Text4.Text)

Text5.Text = 124.873 + (turk * 0.746) + (sosyal * 0.527) + (mat * 2.5) + (fen * 2.064)
Text6.Text = 120.004 + (turk * 2.125) + (sosyal * 0.844) + (mat * 2.402) + (fen * 0.63)
Text7.Text = 119.664 + (turk * 2.637) + (sosyal * 1.954) + (mat * 0.795) + (fen * 0.625)
End Sub

eğer katsayıları ve sistemi iyi bilen biri varsa yardımcı olabilir mi ona göre bi program yazılabilir...


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

< Resime gitmek için tıklayın >

Private Sub Command1_Click()
Dim z1, z2
z1 = Text1.Text
z2 = Text2.Text
If Option1.Value = True Then Text3.Text = z1 \ z2
If Option2.Value = True Then Text3.Text = z1 Mod z2
If Option3.Value = True Then Text3.Text = z1 ^ z2
If Option4.Value = True Then Text3.Text = z1 & z2


End Sub

Private Sub Command2_Click()
End
End Sub


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

< Resime gitmek için tıklayın >

Private Sub Command1_Click()
End

End Sub

Private Sub Form_Load()
List1.AddItem "serseri"
List1.AddItem "forum"
List1.AddItem "donanımhaber"
List1.AddItem "kelime"
List1.AddItem "visual"
List1.AddItem "basic"
List1.AddItem "öğreniyorum"
List1.AddItem " "
List1.AddItem "."

End Sub

Private Sub List1_Click()
Label3.Caption = List1.Text
Label4.Caption = Label4.Caption & List1.Text

End Sub


Bu mesaja 2 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

< Resime gitmek için tıklayın >

Private Sub Command1_Click()
If Text1.Text = "serseri" Then
Timer1.Enabled = False
MsgBox "Doğru şifre! Hoşgeldiniz!"
Form1.Hide
Form2.Show
Else
MsgBox "Yanlış Parola, Bir kere daha deneyiniz..."
End If

End Sub

Private Sub Timer1_Timer()
MsgBox "zamanınız doldu!"
End

End Sub



S
19 yıl
Yarbay
Konu Sahibi

vb de saat

1 label eklemeniz yeterli olacaktır...

Private Sub Timer1_Timer()
Dim x
x = x + 1
If x = 10 Then x = 0
Label1.Caption = Time

End Sub


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

< Resime gitmek için tıklayın >


Option Explicit
Private Sub Command1_Click()
Dim sayı As Double
Dim hane As Integer
sayı = Val(Text1.Text)
hane = Val(Text2.Text)
Text3.Text = yuvarla(sayı, hane)

End Sub
Function yuvarla(ByVal x As Double, n As Integer) As Double
yuvarla = Int((x * 10 ^ n) + 0.5) / 10 ^ n

End Function



M
19 yıl
Yarbay

serseri; bugün senin başını çok ağrıttım afedersin :)
ama yine bi sorunum var, şimdi vb'ye başladım, ilk olarak şöyle bi elim alışsın diye hesap makinesi örneğini olduğu gibi yapıştırıp, fonksiyon ekle fonksiyon çıkar uğraştım biraz, burada hiçbir sorun yok..
ancak ilk olarak programı çalıştırınca bir eksiklik farkettim...
textbox'lara dğer olarak sayı ve harf birlikte giriliyor, ancak sadece sayı girilmesini istiyorum, biraz kurcaladım visual studio'yu, ve şöyle bir sonuca ulaştım, textbox'a tıklayıp; properties>data>data format'ı number yapmak yeterli değil.. vbasic bilen bi arkadaşıma sordum, bir kod verdi, ama ascii ile ilgili birşeyler var.. biraz kafam karıştı yani, vaktin olduğu bi zaman hesap makinesi örneğinin altına ascii olayını temel olarak, veya başka bir yol varsa onu anlatabilirmisin?
saygılar, sevgiler :)

düzeltme;
birde değişkenler için tip bildirimi yapıyoruz ya, orda anlamadığım birkaç şey var..
ilk olarak mutasyon.net'te
quote:


-Tip bildirimi için DIM deyimi
Iyi bir program oluşturmak için,değişkenlerin tiplerini önceden bildirmek faydalı bir alışkanlıktır.Tip bildiriminde bulunulmazsa,değişkenlerin tipi variant olarak atanır.Bu da gereksiz yer kaplamaya neden olur.Değişkenlerin tipini bildirmede alternatif bir yol Dim deyimini kullanmaktır.Dim x as integer gibi.
Dim a,b,c,d as double şeklindeki ifade,sedece d'yi double olarak atayacak,a,b,c değişkenleri ise variant olarak kalacaktır.
Dogru kullanım ise: Dim A As Double,B As Double,C As Double,D As Double şeklinde olmalıdır.

şeklinde bir anlatım mevcut..

benim sorularıma gelince;

-serseri'nin örneklerinde, "Dim a, b, c as Double" şeklinde bi kullanım var, en azından benim incelediğim hesap makinesi örneğinde.. hangisi doğrudur?? yani yukarda yazdığı gibi "Dim a, b, c as ..." yazınca sadece c mi .. olarak bildirilir??
-ayrıca double, integer, variant falan bunların arasındaki farklar nelerdir??

şimdiden teşekkürler...





< Bu mesaj bu kişi tarafından değiştirildi misblay -- 17 Haziran 2006; 22:23:04 >
Bu mesaja 1 cevap geldi.
M
19 yıl
Yarbay

Önceki mesajda çok karmaşa çıkacağı için ayrı yazıyorum..
Şimdi bir sayı tahmin oyunu yapmaya çalıştım, kodları yardım almadan ne kadar kullanabilirim diye, kodları kullanmada sorun yok! Ancak bilmediğim yerler çook ve bu hemen belli oluyor :)

Kodlar şöyle;
quote:

Private Sub Command1_Click() 
a = Text1.Text
a = Val(a)
If a = 12 Then
MsgBox "Sayı Doğru! Tebrikler!"
ElseIf a > 99 Then
MsgBox "Sayı 2 Basamaklı!"
ElseIf 39 < a < 100 Then
MsgBox "Ohannesburger! O kadarda büyük düşünemem :))"
ElseIf a > 12 Then
MsgBox "Aşağı!"
ElseIf 0 < a < 10 Then
MsgBox "Sayı 2 Basamaklı!"
ElseIf 9 < a < 12 Then
MsgBox "Yukarı!"
ElseIf a < 0 Then
MsgBox "Sayı Pozitif!"



End If
End Sub


İki sorunum var;
-Sayıyı negatif(-) değer girince ters tepki veriyor ve; sayıyı 39 < a < 100 durumuna göre değerlendiriyor.. Neden böyledir?? negatif sayıları tanıması için yapmam gereken birşeyler mi var??
-Rasgele sayı seçmesini nasıl sağlarım??

Teşekkürler





< Bu mesaj bu kişi tarafından değiştirildi misblay -- 17 Haziran 2006; 23:06:20 >
Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Hocam öncelikle VB dünyasına hosgeldin,

ilk sorun sayı harf ayrımı. Klavyede bulunan her tusun bir ascii kodu mevcut kodlama da ascii kodları (1.sayfada ascii kodları mevcut) onları temsil etmek icin kullanılıyor.onunla ilgli bir örnek var bulunca foruma koyarım. Gelelim Dim den sonraki yazılanlar tanıtacagın değerlerin ne kadar kapasitede olduğunu belirtiyor. Hos istersen yazmayabilirsinde VB kabul ediyor ama işlem yükü ve hızının azaltılması için yazmayı tercih ederim.Gerci şimdi pc işlemcileri hızlı.

Söyle söyleyelim bir sınıf listesi yapacaksın öğrenci sıraları yazılacak 200 öğrenci olsun. Öğrenci sırasını tanımlamak için en fazla 200 yazacaksın. Bu durumda bunu tanımlamak için BYTE kullanırsın.

Bir önceki sayfada yazsılmıstı;

Byte : 0-255 arasındaki değerler için kullanılabilir. Örneğin sınıf lisesi yapılacaksa bu tür işe yarayabilir.

Integer : -32768 ile 32767 sayı değerleri arasındadır (genelde en sık kullanılan veri türlerdinde birisidir)

Long : -2 147 483 648 ile 2 147 483 647 arasında değerler alır.

Buna göre neyi tanımlayacaksan ona göre bir değer atarsın.


Yine diğer sayfada yazılanlardan;

Diyelim

Dim sıra_no as Byte

ya da

Dim sıra_no as Long

ikisi arasında fark yoktur (sıra numaralarının 256dan büyük olmayacagını düsünürsek) Tek ayrım bilgisayar hesaplamalarda bu işleme daha çok alan ayırmakta böylece işlme süresi uzamaktadır.


Devam edelim;

Single : a üssü b şekli gösterime izin verir a ve b yi integer veri türünde düşünürsek. 3.14 pi sayısını göstermek istersek 312*10 üzeri -2 şeklinde ifade edebiliriz. 2 integer ifadesi yer alacagından bellekte 8 byte yer kaplar.

Double : single ifade eden a ve b değerlerinin long veri türünde olması durumundaki haldir. Çok büyük sayılar bu yolla yazılabilir (örneğin maliye hesaplarındaki parsal değerler)

Boolean : yalnızca 0 ya da 1 değerini alır bir nevi matematikteki mantık dersinde görülen doğru yanlış ifadesidir. 0 değeri False (yanlış), 1 değeri true (doğru) şeklinde atanır. (örneğin sayı 2ye bölünüyorsa doğru deyip sayıya çift sayı dedirtebiliriz)


String : Karakterleri tanımlamada kullanırız. Burada karakter kelimesinden kasıt sayısal ifadesizliktir. örneğin bir yer için parola tanımlayaılım bu paralada A30G23T79 şeklinde olsun. Bu parolada rakamlar olmasına rağmen bir sayısal değer ifade etmemektedir bu yüzden

Dim parola as string şeklinde ifade edilir.


Umarım biraz sekillenmiştir.

Gelelim ikinci soru;

Rnd fonksiyonu sayı üretmede kullanılır.

Int(Rnd * 10) yazarsan işini görür. Bu su demek rnd ile 0-1 arası sayı üretilir. Bunu 10 ile carpar ve Int fonksiyonu ile sayıyı tam sayıya yuvarlar. Eğer 0-100 arası rassal sayı istersen 100 ile carp. Bu değer = a yaz ondan sonra if a> texte girilen tahmini sayı değeri yaz. Msgbox Aşağı in. if a = text1.text msgbox "doğru bildiniz" gibi birşeyler yapabilirsin.


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Sayı mı karakter mi girişi olsun sorusuna basit bir örnek; Aşağıdaki gibi bir arayüz yapılabilir.

< Resime gitmek için tıklayın >

Kodların hepsini yazmadım sadece texte girilen değerin sayı mı harf mi olduğunu anlatan kodları yazıyorum


Private Sub Text1_KeyPress(KeyAscii As Integer)
'Gireceğimiz karakterlerin rakam,harf ve karma değer girişleri
If Option2 Then
If KeyAscii > Asc("0") And KeyAscii <= Asc("9") Then KeyAscii = "0"
End If
If Option3 Then
If KeyAscii > vbKeyA And KeyAscii > vbKeyZ Then
KeyAscii = "0"
End If
End If
End Sub





< Bu mesaj bu kişi tarafından değiştirildi serseri -- 18 Haziran 2006; 1:23:01 >
Bu mesaja 2 cevap geldi.
M
19 yıl
Yarbay

Hmm, anladım.. Sağol
Sayı, karakter girişi olayına sonra el atsam daha iyi, okuduğumda tam çözemiyorum işlemleri falan.. Zamanla yaparız büyük ihtimal :)
Şimdi başka bir soru soracağım,

-Herhangi bir durumda, örneğin; aşağıda "vbOkOnly" yerine "vbOkCancel" yazıp "If b=vbCancel Then .." şu satıra atla demek için GoTo kullanılıyor sanırım, ancak GoTo'dan sonra nereye gitmesi gerektiğini nasıl gösterdiğimi bi ara bi web dersinde görmüştüm ancak bi daha göremedim

-Birde, Örnekte bir tane buton var, tıklanması durumunda gerçekleşecek olaylar görülüyor, ancak a'yı bir türlü msgbox'ta görülecek şekle sokamadım?? ".." ile belirtilen yere ne gelmesi gerekli??;
"Private Sub Buton1_Click()
a = Int(Rnd * 10000)
b = MsgBox("4 Haneli Şifreniz üretildi, görüntülemek için Tamam'a basın", vbOKOnly)
If b = vbOK Then MsgBox ("Şifreniz ..")
End Sub"

Teşekkürler!


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Şöyle söyleyeyim GoTo komutu pek sevmiyorum kullanıslı değildir. Sürekli programı parçalar halbuki bana göre programcılıkta parçaları bütünleştirmek daha önemlidir. Ve GoTo komutu bazen hata ile karsılastıgında OnError komutu gibi davranır bunu da kullanıcı bazen farkedemeyebilir.

Gelelim şifre programına en basitinden söyle birşey yazsak

a = Int(Rnd * 10000)
b = MsgBox("4 Haneli Şifreniz üretildi, görüntülemek için Tamam'a basın", vbOKOnly)
If b = vbOK Then
Text1.Text = a

üretilen şifre text'e gelir. Bana göre daha hos olur. Msg box kutusu yerine text box daha iyi olur.Ama burada amacın üretilen sayıyı görmek mi yoksa parolo girişini doğru giriş şeklinde mi yaptırabilmek onu anlamadım.

Kolay gelsin...


Bu mesaja 1 cevap geldi.
M
19 yıl
Yarbay

peki GoTo yerine kullanabileceğimiz başka birşey varmı??
ordaki amacım şifreye ulaşmaktı, yani program rasgele şifre üretecek, bende o şifreyi alıp kullanıcam gibi bi mantıktan basit bi denemeydi :) gerçekten textbox'a almak çok daha rahat ve sade oldu..
teşekkürler :)


Bu mesaja 1 cevap geldi.
M
19 yıl
Yarbay

Kendi kendime bir telefon defteri oluşturmayı denedim..
Pek başarılı olduğum söylenemez
Takıldığım -kodun işlevini anlamadığım- bir nokta var..
Şimdi ilk olarak telefon defterinin db'si olarak .dat uzantılı dosyaları seçtim -random dosya kullanımı olarakta biliniyor sanırım-..
Bu sorun olurmu hiç fikrim yok, ilk olarak bunu merak ediyorum..

--->Devam edeyim; tabii ki random dosya kullanımı konusunda bilgilm yoktu, ve bir örnekten (http://www.vbturk.net/idsorgula.asp?id=515) yararlandım..
Burda ki kodda anlamadığım bir terslik var, gerekli tanımlamalar yapıldıktan sonra şöyle devam ediyor kod;
quote:

....
Open �C:\Musteri.dat� For Random as #DosyaNo len=len(Kayit)
...

burda len=len(...) komutu ne ifade etmekte??

-->ayrıca ben bunu telefon kayıt olarak denediğimde bahsi geçen komut dizisini (hepsini demin verdiğim linkte görebilirsiniz o linkin sadece random kısmına bakınız) command1_click şeklinde bir komuttan sonra yazdım, daha sonra f5'e basıp run dedim ve test etmeyi denedim, gerekli verileri girip kaydet butonuna -command1 butonu) basınca hata verdi ve "Private Sub Command1_Click" satırını çizdi?? nedendir
--->birde db olarak böyle kullanmam şimdilik yeterlimi?? access kullanılıyor bildiğim kadarıyla ancak access kurulu değil ve oficce xp cd'mde yok! dolayısıyla bi ihtimal excel kullanılıyosa diyorum ama emin değilim.. onuda açıklarsanız sevinirim..

saygılar..
teşekkürler!

önemli düzeltme!
sanırım verdiğim linklerde üyeliksiz kodlar görüntülenemiyor, afedersiniz, oraya ekleyip karıştırmak yerine buraya ekleyeyim dedim;
"Dim DosyaNo
DosyaNo=Freefile
Open �C:\Musteri.dat� For Random as #DosyaNo len=len(Kayit)
Kayit.MusteriNo = Text1.Text
Kayit.MusteriAdi = Text2.Text
Kayit.MusteriAdresi = Text3.Text
Put #DosyaNo, Kayit.MusteriNo, Kayit
Close #DosyaNo"





< Bu mesaj bu kişi tarafından değiştirildi misblay -- 19 Haziran 2006; 23:01:13 >
Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Hocam birinci sayfada yazmıstım

"Len(String):Girilen stringin kaç karakter uzunluğunda olduğunu öğrenmemize yardımcı olur.Sayısal bir değer alır.A=Len("serseri") dersen A=7 olur. "

VB calıstırıldığında kodlarda bir hata varsa hatalı kod neresi ise orayı sarı cizerek belirtir.

Yapacagın programda Access ile databaseden baglantı kurulucaksa bu genelde ADO adı verilen bağlantılarla oluyor. Kİ bana kalırsa ilk asama kullanmanı tavsiye etmem. Bana kalırsa daha daha basit programlardan git derim...

Verdiğin linki ben acamadım sayfa bulunamıyor uyarısı veriyor :S


Bu mesaja 2 cevap geldi.