37
Pencere, hareket ve mesaj, VB ile Windows uygulaması geliştirmek için bu üç temel anahtar kavramı bilmek yeterli olacaktır. Butonlar, simgeler, menü seçenekleri vb. gibi bütün Windows elemanların (istisnalar dışında tümü) birer pencere olmasıdır. Windows işletim sistemi bu pencereleri her birine verdiği tekil (unique) numaralar ile yönetir. -Sözü edilen numaralara window handle veya hWnd denilmektedir Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

  • Upload
    lore

  • View
    53

  • Download
    0

Embed Size (px)

DESCRIPTION

Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message). Pencere, hareket ve mesaj , VB ile Windows uygulaması geliştirmek için bu üç temel anahtar kavramı bilmek yeterli olacaktır. - PowerPoint PPT Presentation

Citation preview

Page 1: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Pencere, hareket ve mesaj, VB ile Windows uygulaması geliştirmek için bu üç temel anahtar kavramı bilmek yeterli olacaktır.

Butonlar, simgeler, menü seçenekleri vb. gibi bütün Windows elemanların (istisnalar dışında tümü) birer pencere olmasıdır.

Windows işletim sistemi bu pencereleri her birine verdiği tekil (unique) numaralar ile yönetir. -Sözü edilen numaralara window handle veya hWnd denilmektedir

Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Page 2: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

HAREKETLER, kullanıcının faresine tıklaması ya da klavyeden

herhangi bir tuşa basmasıyla, program içerisinden yapılan bir kontrol düzeneğiyle ya da başka bir pencerenin neden olacağı bir davranışı nedeniyle oluşmuş olabilir.

Herhangi bir hareketin gerçekleştirilmesi, işletim sistemine bir mesaj gönderilmesine neden olur. Sistem mesajı işler ve diğer pencerelere yayımlar. Her pencere özelikle kendi yapısı ile ilgili (aynı zamanda uygun) mesajları yorumlayarak işler. Örneğin, başka bir pencere kendisi üzerinde yer alacaksa ilgili pencere kendi sınırlarını yeniden düzenler.

Page 3: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

. Sistem çalışırken pencere, hareket ve mesajlarla ilgili bütün olasılıkları

düşünmeye çalışın

VB hareket bağımlı (event driven) bir programlama dilidir.

Geleneksel ya da “procedural” uygulamalarda, uygulama kendisini belirli bir sıra ile kontrol etmekte ve işlemektedir. Bu tarzda uygulamalar ilk satırdan çalışmaya başlar ve belirli bir sırayla ilerler ve işlemler (procedure) gerekli oldukça çağırılarak çalıştırılır.

Hareket-Bağımlı model uygulamalarda ise uygulama belirli doğrusal bir yol izleyerek çalıştırılmaz. Farklı hareketler için farklı işlemler çalıştırılır ve programın her çalıştırılmasıyla uygulama yeniden farklı farklı yollarla çalışmasını sürdürebilir.

Page 4: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Uygulamanızda, kaynak kodunuz tanımlanmış tetikleme hareketleriyle kontrol edilecek ve çalıştırılacaktır.

Örneğin bir TextBox’ın içeriğinin değişmesiyle birlikte Change olayı (event procedure) ’ü gerçekleşecek ve bu değişikliğe bağlı işlem(ler) sırasıyla çalışacaktır ( Text1_Change)

Komut butonuna tıklanınca (Commandbutton_Click) Ekrana “Merhaba VBasic” yazan program;

Private Sub Command1_Click ()Print “Merhaba VBasic”

End Sub

Page 5: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Özelik, Yöntem ve Hareket (Property, Method,Event)

VB Form ve aletleri(kontrolleri); özellikleri, yöntemleri ve hareketleri olan nesnelerdir.

Özellikler (Property) nesnenin ayırıcı nitelik ve nicelikleri,

Yöntemler (Methods)eylem yetenekleri, Hareketler-(Olaylar) (Event) ise tepkileri

olarak düşünülebilir.

Page 6: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Örneğin günlük yaşamdan bir nesne BALON seçelim.

ve bu balonun özeliklerini, yöntemlerini ve hareketlerini tanımlamaya çalışalım Özellikleri ; genişliği, yüksekliği, hacmi ve rengi, durumu hakkındaki bilgiler (patlak veya

patlamamış olması gibi) Yöntemleri ; Bir balon gerçekleştirebileceği bir takım doğal yöntemlere veya yetilere sahip olacaktır

mesela bunlardan (şişirme veya söndürme) bizim seçtiğimiz balonun yöntemleridir. Yine de ayrıca bütün balonlar bu yöntemlere sahiptir.

Hareketleri ; Bir balon bir takım durumlara karşılık tepki verirler. İğne batırılırsa yada hava şiştikten

sonra hava verilmeye devam edilirse patlayacaktır. Patlama balonun hareketidir.

Page 7: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Eğer bir balon programı yapacak olsaydık yazacağımız VB kaynak kodumuz aşağıdaki gibi olacaktı;

Balonun özeliklerini belirlemek için,Balon.Renk = MaviBalon.Basinc = 5Balon.Patlak = False

Page 8: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Balon.SisBalon.SonBalon.Buyu 5 ‘5 birim kadar büyüsün

burada 5 argüman olarak anılacaktır

Balonun method’ları için,

Page 9: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Balonun olası hareketi için,

Sub Balon_Patliyor() Balon.Son Balon.SesCikart “paaatt” Balon.Patlak = True Balon.Basinc = 1End Sub

Page 10: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Kullanıcı arayüzü oluşturmak. Özelikleri atamak. Kod yazmak. Test etmek.

Private Sub Command1_Click()Text1.Text = “Merhaba VB!”

End Sub

Şimdi klavyeden F5 tuşuna basarak yada VB IDE deki run tuşuna basarak uygulamamızı çalıştırıp test edebiliriz. İyi testler

VB ile uygulama geliştirmek için dört temel adım vardır.

Page 11: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Bir Form Tasarlamak Form Özelikleri. Caption : Pencerenin başlığı. (window title) Icon : Pencerenin simgesi.

MaxButton : Pencere büyütme tuşuna sahip mi sorusunun yanıtı. MinButton : Pencere küçültme tuşuna sahip mi sorusunun yanıtı. BorderStyle : Pencerenin tipi. Height : Pencerenin yüksekliği. Width : Pencerenin genişliği. Left : Pencere sol kenarı ile monitörün sol kenarı arasındaki uzaklık. Top : Pencere üst kenarı ile monitörün üst kenarı arasındaki uzaklık. WindowState : Pencere ilk göründüğünde durumu. (Küçük, büyük, normal) Name : Program kaynak kodunda penceremizi tanımamıza da yardımcı

olacak isim. Formun Hareketleri Resize : Pencerenin çerçevesinin büyüklüğünün değişmesi ile birlikte

çağrılan hareket işlemi (event procedure). Activate : Pencerenin aktif hale gelmesiyle çağrılan hareket işlemi. Deactivate : Pencerenin pasif hale gelmesiyle çağrılan hareket işlemi. Formun Yöntemleri Show : Pencerenin görünmesini sağlayan yöntem. Print : Pencere üzerine yazı bastırmamızı sağlayan yöntem. Line : Pencere üzerine çizgi çizmemizi sağlayan yöntem. Circle : Pencere üzerine çember çizmemizi sağlayan yöntem. Refresh : Pencerenin yeniden boyanmasını sağlayan yöntem.

Page 12: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

VBasic de kullanılan veri türleri

Veri Tipleri :Bildiri Deyimi Veri Tipi Bellek Alanı Değer AralığıString Karaktersel 1 karakter 1 bayt 65.535Integer Tamsayı 2 bayt -32.768 to 32.767Long uzun tamsayı 4 bayt 2.147.483.647Single tek duyarlı sayısal 4 bayt 3.4x10^38Double çift duyarlı sayısal 8 bayt 1,7x10^308Currency para-çok büyük

Çok küçük Sayı 8 bayt 922.337.203.685.447Byte tamsayı 1 bayt 0 to 255Boolean 2 bayt True / FalseDate tarih 8 bayt 1/1/100 to 12/31/9999Variant 16 bayt + 1 bayt her karakter için

String Türü Değişkenler: Arasına + veya & sembolü konarak birbirlerine eklenebilirler.Private Sub Command1_Click()

Dim x As String, y As String, z As String, c As String x = “Niksar" y = “Meslek" z = “Yüksekokulu" c = x + y & z: MsgBox c

End Sub

Page 13: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

InputBox Fonksiyonu

Eğer değişik veri tiplerinde bilgi almak istiyorsak bu aldığımız string türündeki veriyi o veri tipine dönüştürmek zorundayız.

Sayısal veri için : i=Val(InputBox("Yaşınızı giriniz ..."))

Tarih türü veri için : tarih=DateValue(InputBox("Doğum yılınızı girin"))

Örnek : Dim s_ad As String

Dim l_maas As Long Dim d_dogum As Date

s_ad=InputBox("Adınızı girin ...") l_maas=Val(InputBox("Adınızı girin ...")) d_dogum=DateValue(InputBox("Adınızı girin ..."))

Page 14: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Girilen üç sayının ortalamasını alan program.

ALGORİTMA : AKIŞ ŞEMASI PROGRAM KODU 1.Başla 2.Üç sayı gir (A,B,C) 3.Ortalamayı hesapla (ortalama=(A+B+C)/2) 4.Ortalamayı yaz 5.Dur

BAŞLA

A,B

Ortalama=(a+b+c)/3

ortalama

DUR

Private Sub Command1_Click() Dim a As Integer Dim b As Integer Dim c As Integer ortalama=0 a = Val(InputBox("1.sayıyı giriniz")) b = Val(InputBox("2.sayıyı giriniz")) c = Val(InputBox(“3.sayıyı giriniz")) ortalama = (a + b + c) / 3 Print "ortalama", ortalama

End Sub

Page 15: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Klavyeden girilen 10 adet sayının toplamını bulup ekrana yazdıran program.

Akış Şeması Program KoduBAŞLA

Toplam=0

I=1,10,1

Toplam=Toplam+Sayi

I

Toplam

DUR

sayi

Private Sub Command1_Click()

Dim sayi As Integer Dim toplam As Integer toplam=0 For i = 1 To 10 sayi = Val(InputBox("sayıyı giriniz")) toplam = toplam + sayi Next i MsgBox toplam

End Sub

Page 16: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

FOR NEXT Döngüleri

For ... Next Belirli sayıda tekrarlanması gereken komutların

tekrarlanmasını sağlayan komut bloğu.   For Sayaç = İlkdeğer To Sondeğer Step ArtışAralığı    ...                                ‘ Sayaç sondeğeri alana kadar    ...                                ‘ tekrarlanacak işlemler    Exit For                       ‘ Tercihli çıkış Next Sayaç

-- Tekrar sayısı belli olan işlemlerde kullanılır

Page 17: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Private Sub Command1_Click()

Dim n As Integer Dim toplam As Integer toplam = 0 For i = 0 To 50 Step 2 toplam = toplam + i Print toplam, i Next i MsgBox toplam, , "toplam"

End Sub

 

ÖRNEK: 1’den 50’a kadar olan çift sayıların toplamını hesaplayan program

Page 18: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Dört işlem yapan bir hesap makinesi programı

Private Sub Command1_Click() Label1 = "+" Label2 = Val(Text1) + (Text2)

End Sub Private Sub Command2_Click()

Label1 = "-" Label2 = Val(Text1) - (Text2)

End Sub Private Sub Command3_Click()

Label1 = "*" Label2 = Val(Text1) * (Text2)

End Sub Private Sub Command4_Click()

Label1 = "/" Label2 = Val(Text1) / (Text2)

End Sub Private Sub Form_Load()

Command1.Caption = "+" Command2.Caption = "-" Command3.Caption = "*" Command4.Caption = "/"

End Sub

Page 19: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Şarta bağlı işlemler (IF …Then .. Else Yapısı )

-- Girilen not değeri 50 den büyükse ekrana “Geçti” değilse “kaldı” yazan program.Private Sub Command1_Click() Dim not1 As Integer not1 = Val(InputBox("Notu giriniz")) If not1 >= 50 Then Print "Geçti" Else Print "Kaldı"End Sub

Private Sub Command1_Click() Dim not1 As Integer not1 = Val(InputBox("Notu giriniz")) If not1 >= 50 Then Print "Geçti" End If If not1 < 50 Then Print "Kaldı" End IfEnd Sub

if Then yapısı tek satıra sığmıyorsa

İf koşul then

işlemler

End if

Şeklinde kullanılır

Page 20: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

IIF() Fonksiyonu

Yapısı: IIF(Koşul,birinci ifade,ikinci ifade) Bir bakıma , IF deyiminin kısıtlı bir şeklidir. Yalnızca iki

olasılığın söz konusu olduğu durumlarda IF deyimi yerine IIF fonksiyonu kullanılabilir.

Private Sub Command1_Click() Dim ortalama as integer Sonuc as string ortalama=val(inputbox(“not ortalamasını giriniz”)) sonuc = IIf(ortalama >= 50, "Geçer Not", "Zayıf Not") MsgBox sonuc End Sub

Page 21: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

ÖRNEK: Girilen yaş değerine göre kişinin durumunu bulan programı yazınız.

Algoritma Program Kodu 1.Başla 2.Değeri al 3.Eğer 0<=yas <= 5 ise Bebek 4.Eğer 5<=yas <= 14 ise Çocuk 5.Eğer 15<=yas <=28 ise Genç 6.Eğer 29<=yas <=39 ise Orta yaş 7.Eğer 40>=yas ise İhtiyar 8.Dur

Private Sub Command1_Click() Dim yas As Integer yas = Val(InputBox("Yaşı giriniz")) If yas <= 5 Then MsgBox "Bebek" If yas > 5 And yas <= 14 Then MsgBox "Çocuk" If yas > 15 And yas <= 30 Then MsgBox "Genç" If yas > 30 And yas <= 45 Then MsgBox "Olgun" If yas >= 46 Then MsgBox "İhtiyar" End Sub

Page 22: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Select Case YAPISI

Select Case ... End Select Değişkenin belirli değerlerine göre yapılacak farklı işlemlerin seçiminde kullanılır.   Select Case değişken          Case id1                                  ‘ Değişkenin id1 değeri aldığı durumlarda yapılacak işlemler          Case id2                                  ‘ Değişkenin id2 değeri aldığı durumlarda yapılacak işlemler          case id3 to id9                                                   ‘ id3 ve id9 aralığındaki tüm değerler için yapılacak işlemler          Case Else                    ‘ Değişkenin id1- id2 - id3 - id4 - id5 - id6 - id7 - id8 - id9                    ‘ değeri almadığı durumlarda yapılacak işlemler End Select

Not: koşul sayısının 5 den fazla olduğu durumlarda bu yapıyı tercih etmek daha iyi olur.

Page 23: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Aynı programı Select Case yapısı ile yapmak

Private Sub Command2_Click() Cls Print "YAŞ DEĞERİNİ NEGATİF GİRMEYİNİZ!…" yas = Val(InputBox("YAŞ DEĞERİNİ GİRİNİZ=")) Select Case yas Case 0 To 5: MsgBox "BEBEK" Case 6 To 14: MsgBox "ÇOCUK" Case 15 To 29: MsgBox "GENÇ" Case 30 To 45: MsgBox "ORTA YAŞLI" Case Else MsgBox "İHTİYAR" End Select End Sub

Page 24: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Do …. Loop Döngüleri

Şart gerçekleştiği sürece veya tam tersi(şarta bağlı ) işlemlerin tekrarlandığı

döngüBelirli bir koşul gerçekleştiğinde

yapılacak işlemlerde kullanılır. 

Page 25: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Yapı-1:Bir blok deyimi verilen koşul doğru (True) yada yanlış (False) olduğu sürece işletir.

Do [{While Until} koşul] [ifade bloğu] [Exit Do] [ifade bloğu]Loop

A=1

Do While A<5

a=a+2

Loop

Print a

Ekrana 5 yazar

A=1

Do Until A>5

a=a+2

Loop

Print a

Ekrana 7 yazar

İŞLEMLERKOŞUL

E

H

Do While / Loop

İŞLEMLERKOŞUL

H

E

Do Until / Loop

Page 26: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Yapı-2:Bir blok deyim verilen koşul sağlanıncaya kadar işletilir.

Do [ifade bloğu] [Exit Do] [ifade bloğu]Loop [{While Until} koşul]

İŞLEMLER

KOŞUL

E

H

Do / Loop While

İŞLEMLER

KOŞUL

H

E

Do / Loop Until

Private Sub Command2_Click() Dim no as integer Cls no = 1 Do Print no; no = no+ 1 Loop While no <> 11End Sub

Ekrana yanyana 1 2 3 4 5 6 7 8 9 10 yazar

Private Sub Command2_Click() Dim no as integer Cls no = 1 Do Print no; no = no + 1 Loop Until no = 11End Sub

Page 27: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

İç içe Döngüler

Page 28: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Örn: Çarpım Tablosu

Private Sub Command1_Click() Dim j As Integer, k As Integer Picture1.Cls For j = 1 To 10 For k = 1 To 10 Picture1.Print k; "x"; j; "="; j * k, Next k Picture1.Print Next j End Sub

Page 29: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Visual Basic’de Çizim

Visual Basic’de çizim yapabilmek için Line, Circle, Pset yöntemlerini kullanırız. Bu yöntemler Form ve Printer için kullanılabilir. Form üzerine çizim yapılırken formun AutoRedraw özelliğini True yapmalıyız.

Visual Basic’de çizim yaparken kordinat sistemini anlamalıyız. Çizim yaparken X ve Y koordinatlarını kullanırız. Y koordinatının yukarıdan aşağı inerken artar ve başlangıç değeri 0’dır. X koordinatı ise soldan sağa giderken artar ve başlangıç değeri 0’dır. Formun sol üst köşesi koordinatları 0,0 dır.

Form üzerinde çizim yapılacak alan formun iç kısımlarıdır. Width ve Height özellikleri ise formun çerçeveler ve başlık çubuğu dahil olmak üzere genişlik ve yüksekliğini verir. Formun iç yükseklik ve genişliğini ise ScaleWidth ve ScaleHeight özelliklerini kullanarak öğrenebiliriz.

DrawWidth; Çizgi kalınlığını belirler.

Page 30: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Line Yönetimi

Line (X1,Y1) - (X2,Y2), renk;Line yöntemi form üzerine çizgi çizmek için kullanılır. X1 ve Y1 başlangıç, X2 ve Y2 bitiş noktasını belirler. Renk paramtresi seçimlidir. Eğer istenirse ForeColor özelliğine değer atayarakda renkli çizimler yapılabilir.

Private Sub Form_Load() DrawWidth = 5 For i = 0 To Form1.ScaleHeight Step

Form1.ScaleHeight / 10 Line (0, i)-(Form1.ScaleWidth, i), vbRed Next End Sub

Page 31: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Circle Yönetimi

Circle (MX,MY), R , renk; Circle yöntemi merkezi MX ve MY olan çemberi R yarıçapında verilen renkte çizer. FillStyle özelliği 0 yapıldıktan sonra ve FillColor özelliğini kullanılarak içleri renklendirilebilir. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X

As Single, Y As Single) For i = 1 To 5 Circle (X, Y), i * 100, vbRed Next

End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

FillStyle = o FillColor = Rnd * 16777216 Circle (X, Y), 500

End Sub

Page 32: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Pset Yönetimi

Pset(X,Y), renk; Pset yöntemi X ve Y olarak verilen koordinatlara bir nokta koyar. Private Sub Form_Load()

Dim x, y, i, r r = ScaleHeight / 2 While r > 0 i = (i + 1) Mod 360 r = r - 1 'Yarıçağı sürekli azalt y = ScaleHeight / 2 + r * Sin(i * 3.1415 / 180) x = ScaleWidth / 2 + r * Cos(i * 3.1415 / 180) PSet (x, y) Wend

End Sub

Page 33: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Merkezi (7, 6) ve yarıçapı 3 olan çember çizen program

Private Sub cmdDraw_Click() picture1.Cls picture1.Scale (-2, 12)-(12, -2)

'Özel koordinat sistemi

picture1.Line (-2, 0)-(12, 0) ‘Çiz x-eksenini

picture1.Line (0, -2)-(0, 12)‘Çiz y-eksenini

picture1.PSet (7, 6) ‘Çiz Nokta

picture1.Circle (7, 6), 3 ‘ Çiz çember

End Sub

Page 34: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Popup Menüler

Windows’ta sağ düğmeye bastığımızda çıkan menülere popup menüler adını veririz. Visual Basic’de hazırladığımız projelerde de popup menüler oluşturabiliriz. Popup menü tasarımı normal menü tasarımı gibi gerçekleşir. Sadece bu menünün visible özelliğine false değeri verilir ve açılması istenilen yerde PopupMenu yöntemi kullanılır.

PopupMenu MenüAdı,Flags, X, Y, Bold

Page 35: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Popup Menüler

MenüAdı; Menü Editörde tasarlanan menünün adı Flags; X parametresinin nasıl kullanılacağını ve açılan menüde

farenin hangi tuşunun click olayını gerçekleştireceğini belirler. Flags parametresi aşağıdaki gibi kullanılır;

Flags=KoorX + Fare

KoorX aşağıdaki değerleri alır 0: Menü X kordinatının solunda yer alır 4: Menü X kordinatını ortalayacak 8: Menü X kordinatının sağında yer alır

Fare aşağıdaki değerleri alır 0: Sol fare tuşu ile menüden eleman seçilebilecek 2: Sağ fare tuşu ile menüden eleman seçilebilecek

Page 36: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Bir Forma Menü Eklemek

Bir forma menü eklemek için Tools-Menü Editor komutunu veririz. Bu komut verildikten sonra karşımıza yandaki gibi Menü Editor penceresi gelir.

Oluşturmak istediğimiz menünün başlığını Caption adlı bölüme gireriz. Name kısmına ise bu menü için bir ad yazarız. İlk menümüzü belirledikten sonra Next düğmesine basarız. Visual Basic Caption ve Name kutucuklarını bir sonraki menüyü ilave edebilmemiz için boşaltır. Yeni menü öğeleri oluşturuldukça, aşağıda bulunan liste kutusunda listelenirler. Alt menüleri oluşturmak için ise Next düğmesinin sol tarafında bulunan ok düğmelerini kullanırız. Var olan bir menünün silinmesi için liste kutusundan menüyü seçer ve Delete butonuna tıklarız. Yeni menüler ilave ederken ise Insert butonundan faydalanırız

Page 37: Windows Nasıl Çalışır? Pencereler (window) , Hareketler (event) ve Mesajlar (message)

Popup Menü

Bold; Bu parametre ile menüdeki elemanlardan biri kalın yapılabilir Private Sub Text1_MouseDown(Button As Integer,Shift As Integer, X

As Single, Y As Single) 'Sağ fare düğmesine basıldı ise If Button = 2 Then PopupMenu mnuDuzen, 4, Text1.Left + X, Text1.Top + Y End If

End Sub