Option Explicit
Dim sekil, A, B, H, X, Y, X1, X2, Y1, Y2, Q, Yazi
Private Sub cmdCiz_Click()
‘Eğer KoorX ve KoorY alanını boş bırakılırsa program hata mesajı verir ve sonlanır.Bunu engelliyoruz…
If KoorX.Text = “” Or KoorY.Text = “” Then
If KoorX.Text = “” Then Yazi = “X Koordinatını boş bıraktınız…”
If KoorY.Text = “” Then Yazi = “Y Koordinatını boş bıraktınız…”
MsgBox Yazi, vbCritical, “Eksik Bilgi”
Exit Sub
End If
‘Girilen bilgileri cm ye çeviriyor ve gerekli değişkenlere aktarıp, gerekli hesaplamaları yapıyoruz….
X = KoorX.Text
Y = KoorY.Text
X = X * 1500 / 2.8
Y = Y * 1500 / 2.8
X = X + 1680
Y = Y + 480
‘Çizim alanı dışına çizim yapmayı engelliyoruz….
If (X < 1680 Or Y < 480) Then MsgBox “Koordinatlar çizim alanı dışında!”, vbCritical, “Tekrar Girin”: GoTo EnSon
If (X > 1680 + 8055 Or Y > 7455 + 480) Then MsgBox “Koordinatlar çizim alanı dışında!”, vbCritical, “Tekrar Girin”: GoTo EnSon
If (X < 1680 And Y > 7455 + 480) Then MsgBox “Koordinatlar çizim alanı dışında!”, vbCritical, “Tekrar Girin”: GoTo EnSon
If (X > 1680 + 8055 And Y < 480) Then MsgBox “Koordinatlar çizim alanı dışında!”, vbCritical, “Tekrar Girin”: GoTo EnSon
If (X > 1680 + 8055 Or Y > 7455 + 480 Or X < 1680 Or Y < 480) Then MsgBox “Koordinatlar çizim alanı dışında!”, vbCritical, “Tekrar Girin”: GoTo EnSon
‘Kare çizimi için programa gönderilen komutlar…
If sekil = “KARE” Then
A = A * 1500 / 2.8
Me.Line (X, Y)-(X + A, Y)
Me.Line (X, Y)-(X, Y + A)
Me.Line (X, Y + A)-(X + A, Y + A)
Me.Line (X + A, Y)-(X + A, Y + A)
End If
‘Dikdortgen çizimi için programa gönderilen komutlar…
If sekil = “DIKDORTGEN” Then
A = A * 1500 / 2.8
B = B * 1500 / 2.8
Me.Line (X, Y)-(X + B, Y)
Me.Line (X, Y)-(X, Y + A)
Me.Line (X, Y + A)-(X + B, Y + A)
Me.Line (X + B, Y)-(X + B, Y + A)
End If
‘Üçgen çizimi için programa gönderilen komutlar…
If sekil = “UCGEN” Then
H = A * (3 ^ 0.5) / 2
‘Son çizilen üçgenin yüksekliği hesaplanıp H değişkenine aktarılıyor ve ekranda gösterilmesi sağlanıyor…
Label8.Caption = H
A = A * 1500 / 2.8
H = A * (3 ^ 0.5) / 2
Me.Line (X, Y)-(X + A, Y)
Me.Line (X + A, Y)-(X + A / 2, Y - H)
Me.Line (X + A / 2, Y - H)-(X, Y)
End If
‘Çizgi çizimi için programa gönderilen komutlar…
If sekil = “CIZGI” Then
A = A * 1500 / 2.8
If Aci.Text = “0″ Then Q = 0
If Aci.Text = “30″ Then Q = 30: X2 = X + (A * 3 ^ 0.5 / 2): Y2 = Y + (A * 0.5)
If Aci.Text = “45″ Then Q = 45: X2 = X + (A * 2 ^ 0.5 / 2): Y2 = Y + (A * 2 ^ 0.5 / 2)
If Aci.Text = “60″ Then Q = 60: X2 = X + (A * 0.5): Y2 = Y + (A * 3 ^ 0.5 / 2)
If Aci.Text = “90″ Then Q = 90: X2 = X + (A * 0): Y2 = Y + (A * 1)
If Aci.Text = “” Then X2 = X + (A * 1): Y2 = Y + (A * 0)
Me.Line (X, Y)-(X2, Y2)
End If
‘Çizim tamamlandıktan sonra diğer çizim işlemine geçiş, gerekli butonların aktif olup gereksizlerin aktifliği kaldırılır…
‘Ayrıca önceki şekil için girilen bilgiler ekrandan silinir…
Son:
KoorX.Text = “”
KoorY.Text = “”
Aci.Text = “”
Label5.Enabled = False: Label6.Enabled = False: Label7.Enabled = False
KoorX.Enabled = False: KoorY.Enabled = False: Aci.Enabled = False
cmdCiz.Default = False
cmdCiz.Enabled = False
cmdGonder.Enabled = True
Text1.Enabled = True
cmdGonder.Default = True
Exit Sub
EnSon:
KoorX.Text = “”
KoorY.Text = “”
Aci.Text = “”
End Sub
Private Sub cmdKaydet_Click()
‘Çizilecek şeklin boyutlarının yazıldıktan sonra kaydedilmesi(değişkenlere aktarılması)..
‘Boş kalan kutular için uyarı mesajları ve gerekli butonların aktif diğerlerinin pasif hale getirilmesi..
A = KenarA.Text
B = KenarB.Text
If KenarA.Text = “” Then
MsgBox “Kenar(A) uzunluğunu yazmadınız…”, vbCritical, “Eksik Bilgi”
Exit Sub
End If
If KenarB.Enabled = True And KenarB.Text = “” Then
MsgBox “Kenar(B) uzunluğunu yazmadınız…”, vbCritical, “Eksik Bilgi”
Exit Sub
End If
Label3.Enabled = False: Label4.Enabled = False
KenarA.Enabled = False: KenarB.Enabled = False
cmdKaydet.Default = False
cmdKaydet.Enabled = False
Label5.Enabled = True: Label6.Enabled = True
KoorX.Enabled = True: KoorY.Enabled = True
If sekil = “CIZGI” Then
Label7.Enabled = True: Aci.Enabled = True
End If
cmdKaydet.Enabled = False
cmdCiz.Enabled = True
cmdCiz.Default = True
KoorX.Text = “”
KoorY.Text = “”
KenarA.Text = “”
KenarB.Text = “”
End Sub
Private Sub cmdGonder_Click()
‘Bilgisayarın hangi şekli çizmesi istendiğinin belirlenmesi…
‘Burada program kullanıcısının farklı yazmasına göre tanımlanmıştır..
‘Örneğin;bilgisayara kare çizdirceksiniz.Siz kare yazdınız ama başkası Kare yada KARE yazabilir..
‘bu olayın programı dondurmaması için yapılan kodlama bölümü..
If Text1.Text = “Kare” Or Text1.Text = “kare” Or Text1.Text = “KARE” Then
sekil = “KARE”
Label3.Enabled = True: KenarA.Enabled = True
ElseIf Text1.Text = “Üçgen” Or Text1.Text = “üçgen” Or Text1.Text = “ÜÇGEN” Then
sekil = “UCGEN”
Label3.Enabled = True: KenarA.Enabled = True
ElseIf Text1.Text = “Dikdörtgen” Or Text1.Text = “dikdörtgen” Or Text1.Text = “DİKDÖRTGEN” Then
sekil = “DIKDORTGEN”
Label3.Enabled = True: KenarA.Enabled = True
Label4.Enabled = True: KenarB.Enabled = True
ElseIf Text1.Text = “çizgi” Or Text1.Text = “ÇİZGİ” Or Text1.Text = “Çizgi” Then
sekil = “CIZGI”
Label3.Enabled = True: KenarA.Enabled = True
Else
MsgBox “Yazdığınız şekil programa kayıtlı değil..”, vbInformation, “Tanımsız Şekil”
GoTo Son
End If
cmdKaydet.Enabled = True
cmdGonder.Default = False
cmdKaydet.Default = True
cmdGonder.Enabled = False
Text1.Enabled = False