Sonuçlar 1 to 2 of 2

Konu: SDI Form - ( Single Document Interface )-V.Basic-(kaynak1)

  1. #1

    Default SDI Form - ( Single Document Interface )-V.Basic-(kaynak1)

    SDI Form - ( Single Document Interface )




    Formun yüklenmesi sırasında Load olayı içerisinde bulunan kodunuzun daha aktif olması için kodun ilk satırına Me.Show eklenir böylece form otomatik olarak devreye girer.



    AutoRedraw özelliğini hızlı form güncellemesine gereksinim duyulan noktalarda False yapılır.

    Formlar gerekmedikçe bellekten Unload komutu ile silinmez. Ekranda gözükmesi istemiyorsa, Unload yerine Hide ile saklanır.

    Bir form üzerinde farklı ad taşıyan en fazla 254 kontrol nesnesi bulunabilir. Aynı tür olanlar bir dizi şeklinde aynı ad ile indekslenerek kullanılabilir.



    Formun çağrılıp gösterilmesi sırasında gerçekleşen olayların sırası;

    Form_Initialize

    Form_Load

    Form_Resize

    Form_Paint



    Set form1 = Nothing ‘ Terminate - Formun hafızadan silinmesi



    Form.KeyPreview = true ‘ KeyPress olayını form tarafından

    algılanabilmesi Keypreview True olmalıdır



    Private Sub Form_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyEscape Then End ‘ Escape tuşu ile program kapanır

    End Sub



    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _

    X As Single, Y As Single)

    DrawWidth = 5

    If Button = 1 Then ‘ Fare sol tuşu basılı olarak

    Pset(X,Y) ‘ form üzerinde dolaştırıldığında

    End IF ‘ noktalar halinde bir çizgi çizer

    End Sub



    Private Sub Form_Click()

    DrawWith = 5

    Line (100,150) - (500 - 1000) ‘ Düz çizgi

    Line - (500 - 1000) ‘ Sıfır noktasından düz çizgi

    Line (100,150) - (500 - 1000) , RGB (0, 255, 0) ‘ Yeşil düz çizgi

    Line (100,150) - (500 - 1000) , RGB (0, 255, 0), B ‘ Yeşil kenarlı dikdörtgen

    Line (100,150) - (500 - 1000) , RGB (0, 255, 0), BF ‘ İçi dolu yeşil dikdörtgen

    Circle (1500, 1500), 400

    ‘ 1500, 1500 Noktası merkezli 400 twip yarıçaplı daire

    Circle (1500, 1500), 400, RGB (0, 0, 255) ‘ Mavi daire

    Circle (1500, 1500), 400, RGB (0, 0, 255), 0 , 3.14 ‘ Yarım mavi daire

    Circle (1500, 1500), 400, RGB (0, 0, 255), , , 0.5 ‘ Enlemesine mavi elips

    Circle (1500, 1500), 400, RGB (0, 0, 255), , , 1.5 ‘ Boylamasına mavi elips

    pSet (1500, 1500), RGB (255, 0, 0) ‘ Kırmızı nokta

    End Sub









    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    Select Case UnloadMode

    Case vbFormControlMenu

    MsgBox "Kontrol Mönüsü İle Kapatılmıştır"

    Case vbFormCode

    MsgBox "Kod İle Kapatılmıştır" ‘ Unload ile

    Case vbAppWindows

    MsgBox "Windows Kapandığı İçin Kapanmıştır"

    Case vbAppTaskManager

    MsgBox "Task Manager Tarafından Kapatılmıştır"

    Case vbFormMDIForm

    MsgBox "MDI Formu Kapandığı İçin Kapanmıştır"

    End Select

    End Sub




    SDI Form - Özellikler





    ActiveControl : Form üzerindeki aktif kontrol

    ActiveForm : Formun aktif form olup olmadığı

    AutoRedraw : Formun otomatik olarak tekrar çizilmesi

    ControlBox : Formun kontrol mönüsü

    False ise alt + F4 ile form kapatılamaz

    Count : Mönüler dahil form içerisindeki kontrol sayısı

    CurrentX : Form üzerindeki bir noktanın sol kenardan uzaklığı

    CurrentY : Form üzerindeki bir noktanın üst kenardan uzaklığı

    DrawMode : Çizilen renkli çizgilerin etkisini kontrolü

    FillColor : Dolgu rengi ( circle ve line methodları için )

    FillStyle : Dolgu stili ( circle ve line methodları için )

    ForeColor : Text ya da grafiğin rengini denetler.

    HDC : Windows tarafından programa verilen referans numarası

    Icon : Formun ikonu

    Image : AutoDraw - True ise çizimler image özelliğine kaydedilir

    KeyPreview : True - KeyPress olayı her zaman form tarafından algılanır

    MaxButton : Formun ekranı kaplama butonu

    MDIChild : Formun Child form olup olmadığı

    MinButton : Formun küçülme butonu

    ScaleLeft/ScaleTop : Formun sol/üst pozisyonu

    ScaleMode : Form dahilinde kullanılabilecek ölçü birimini denetler

    ScaleWidth : Formun iç genişliğini gösterir.

    ShowInTaskbar : Formun TaskBar’da görülüp görülemeyeceği

    StartUpPosition : Formun ekranda ki açılış pozisyonu

    WindowState : Formun başlangıç boyutunu denetler


    SDI Form - Olaylar


    Activate

    Click

    DblClick

    Deactivate

    DragDrop

    DragOver

    GotFocus

    Initialize


    KeyDown

    KeyPress

    KeyUp

    LinkClose

    LinkError

    LinkExecute

    LinkOpen

    Load


    LostFocus

    MouseDown

    MouseMove

    MouseUp

    OleCompleteDrag

    OleDragDrop

    OleDragOver

    OleGiveFeedBack


    OleSetData

    OleStartDrag

    Paint

    QueryUnload

    Resize

    Terminate

    Unload



    Activate : Formun aktif hale gelmesi olayı

    GotFocus olayından önce

    Deactivate : Başka bir formun yada programın aktif hale gelmesi olayı

    LostFocus olayından önce oluşur

    GotFocus : Formun aktif hale geçmesi

    Form üzerindeki tüm kontrollerin visible özelliği false olmalıdır

    Initialize : Form load olayından önce meydana gelir

    Load : Form yüklenirken ilk gerçekleşen olay

    LostFocus : Başka bir nesnenin aktif hale geçmesi

    Paint : Formun boyutlarında değişiklik yapılması veya form üzerine başka

    bir form gelmesi olayı, Refresh ile oluşur

    QueryUnload : Form kapatılmadan hemen önce

    Resize : Form boyutlarında değişiklik yapılması

    Terminate : Formun yok edilmesi

    Unload : Form kapanırken gerçekleşir


    Yöntemler


    Circle

    Cls

    Hide

    Item

    Line


    Move

    Move

    PaintPicture

    Point

    Print


    PrintForm

    PSet

    Refresh

    Scale

    SetFocus


    Show

    TextHeight

    TextWidth

    Unload

    Zorder




    Cls : Form içerisine print ile yazılanları silme

    Hide : Formun saklanması. Visible özelliği false yapılarak sağlanabilir

    Move : Formun yer değiştirmesi

    Print : Form üzerine yazı yazılmasını sağlar

    PrintForm : Formun yazdırılması. AutoReDraw özelliği true olmalı

    Refresh : Formun tazelenmesi ve güncellemesi

    SetFocus : Formun aktif hale geçmesi

    Show : Formun gösterilmesi

    TextHeight : Textin yüksekliği

    TextWidth : Textin genişliği

    Unload : Formun bellekten silinmesi



    Formu Ortalamak


    Private Sub Form_Load()

    Left = (Screen.Width - Width) / 2 ‘ Ekran yüksekliğinden form yüksekliği

    Top = (Screen.Height - Height) / 2 ‘ çıkarılarak fark ikiye bölünüyor

    End Sub



    Private Sub Form_Load()

    Me.Move (Screen.Height - Me.Height)/2, (Screen.Width - Me.Width)/2

    End Sub



    Formu Sürekli En Üstte Tutmak





    (General)(Declaration)

    Const HWND_TOPMOST = -1 ' Form en üstte

    Const HWND_NOTOPMOST = -2 ' Normal

    Const SWP_NOSIZE = &H1 ' Form boyutları değiştirilemez

    Const SWP_NOMOVE = &H2 ' Form taşınmaz

    Const SWP_NOACTIVATE = &H10 ' Form aktif yapılmaz

    Const SWP_SHOWWINDOW = &H40 ' Pencere Görünür



    Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, _

    ByVal hWndInsertAfter As Long, _

    ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, _

    ByVal wFlags As Long)



    Private Sub Form_Activate()

    SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE _

    Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE

    End Sub





    Başlıksız Formu Taşımak




    (General)(Declaration)

    Private Declare Function ReleaseCapture Lib "user32" () As Long

    Private Declare Function SendMessage Lib "user32" Alias _

    "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _

    ByVal wParam As Long, lParam As Any) As Long

    Private Const WM_NCLBUTTONDOWN = &HA1



    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _

    X As Single, Y As Single)

    If Button = 1 Then ‘ Farenin sol tuşu basılı iken

    ReleaseCapture

    r% = SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, 2, 0)

    End If

    End Sub


    ControlBox İkonunu Değiştirmek




    (General)(Declaration)

    Dim y As Integer



    Private Sub Timer1_Timer()

    y = y + 1

    If y = 4 Then y = 1

    Form1.Icon = Image1(y).Picture ‘ 4 adet imaj içerisindeki saklanan

    Picture1.Picture = Image1(y).Picture ‘ resimler sıra ile kullanılıyor

    End Sub





    Hafızadaki Tüm Formları Silmek



    Public Sub UnloadAllForms()

    Dim Form As Form

    For Each Form In Forms ‘ Her bir form için

    Unload Form

    Set Form = Nothing ‘ Form tamamen yok ediliyor

    Next Form

    End Sub



    Private Sub Form_Unload(Cancel As Integer)

    UnloadAllForms

    End Sub



    Formun Çeşitli Kısımlarının Rengini Değiştirmek



    (Modul)(General)(Declaration)

    Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, _

    lpSysColor As Long, lpColorValues As Long) As Long



    Public Const COLOR_SCROLLBAR = 0 ' ScrollBar

    Public Const COLOR_BACKGROUND = 1 ' Masaüstü

    Public Const COLOR_ACTIVECAPTION = 2 ' Aktif pencere adı

    Public Const COLOR_INACTIVECAPTION = 3 ' İnaktif pencere adı

    Public Const COLOR_MENU = 4 ' Mönü

    Public Const COLOR_WINDOW = 5 ' Windows arka plan

    Public Const COLOR_WINDOWFRAME = 6 ' Pencere çerçevesi

    Public Const COLOR_MENUTEXT = 7 ' 3D koyu gölge

    Public Const COLOR_CAPTIONTEXT = 9 ' Pencere başlığı

    Public Const COLOR_ACTIVEBORDER = 10 ' Aktif pencere sınırları

    Public Const COLOR_INACTIVEBORDER = 11 ' İnaktif pencere sınırları

    Public Const COLOR_APPWORKSPACE = 12 ' MDI desktop arka plan

    Public Const COLOR_HIGHLIGHT = 13 ' Seçili alan arka plan

    Public Const COLOR_HIGHLIGHTTEXT = 14 ' Seçili mönü

    Public Const COLOR_BTNFACE = 15 ' Button ' Buton

    Public Const COLOR_BTNSHADOW = 16 ' 3D buton gölgesi

    Public Const COLOR_GRAYTEXT = 17 ' Gri text

    Public Const COLOR_BTNTEXT = 18 ' Button başlığı

    Public Const COLOR_INACTIVECAPTIONTEXT = 19 ' İnaktif pencere

    Public Const COLOR_BTNHIGHLIGHT = 20 ' Buton 3D işarretleme



    Private Sub Command1_Click()

    deger = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(0,155,122)) ‘ Başlık çubuğu

    deger = SetSysColors(1, COLOR_WINDOWFRAME, RGB(0,155,122)) ‘ Çerçeve

    End Sub




    Şeffaf Form Yapmak



    (Modul)(General)(Declaration)

    Option Explicit

    Public Declare Function BitBlt Lib "gdi32" (ByVal hDCDest As Long, _

    ByVal XDest As Long, ByVal YDest As Long, _

    ByVal nWidth As Long, ByVal nHeight As Long, _

    ByVal hDCSrc As Long, ByVal XSrc As Long, ByVal YSrc As Long, _

    ByVal dwRop As Long) As Long

    Public Const SRCCOPY = &HCC0020

    Public Declare Function GetDesktopWindow Lib "user32" () As Long

    Public Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long

    Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _

    ByVal hdc As Long) As Long

    Dim hwnddesk As Long

    Dim hdcdesk As Long



    Public Sub SeffafYap (FTBP As Form)

    FTBP.AutoRedraw = True

    hwnddesk = GetDesktopWindow()

    hdcdesk = GetWindowDC(hwnddesk)

    Call BitBlt(FTBP.hdc, 0, 0, _

    FTBP.Width / Screen.TwipsPerPixelX, _

    FTBP.Height / Screen.TwipsPerPixelY, hdcdesk, _

    FTBP.Left / Screen.TwipsPerPixelX, _

    FTBP.Top / Screen.TwipsPerPixelY, SRCCOPY)

    Call ReleaseDC(hwnddesk, hdcdesk)

    End Sub



    Private Sub Form_Load()

    SeffafYap Me ‘ Form başlıksız olacak

    End Sub




    Form Zeminini Karartmak





    Sub kararma(ref As Form)

    For renk = 255 To 0 Step –1 ‘ 255 ‘den başlayarak birer birer azalıyor

    DoEvents

    ref.BackColor = RGB(renk, renk, renk)

    Next renk

    End Sub



    Private Sub Command1_Click()

    kararma Me

    End Sub




    Form Başlığını Yakıp Söndürmek




    (General)(Declaration)

    Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, _

    ByVal bInvert As Long) As Long



    ‘ Timer1.Interval = 1000

    Private Sub Timer1_Timer()

    deger = FlashWindow(Me.hwnd, 1)

    End Sub



    Private Sub Command1_Click()

    ' İşlemi başlatır

    Timer1.Enabled = True

    End Sub



    Private Sub Command2_Click()

    ' İşlemi durduur

    Timer1.Enabled = False

    End Sub




    Form Boyunu Uzatıp Kısalatmak




    Private Sub FormBoyu(ref As Form, taraf As Boolean, aralık As Integer)

    Dim Olcu

    If taraf = False Then

    Olcu = ref.Height + aralık

    If aralık < 0 Then Exit Sub

    Do

    ref.Height = ref.Height + 1

    DoEvents

    Loop Until ref.Height >= Olcu

    End If

    If taraf = True Then

    Olcu = ref.Height - aralık

    If Olcu <= 0 Then Exit Sub

    If aralık < 0 Then Exit Sub

    Do

    ref.Height = ref.Height - 1

    DoEvents

    Loop Until ref.Height <= Olcu

    End If

    End Sub



    Private Sub Command1_Click()

    ‘ True – Yukarı doğru kısalır

    ‘ False - Aşağı doğru uzar

    Call FormBoyu(Me, True, 100)

    End Sub





    Yuvarlak Form Oluşturmak





    (General)(Declaration)

    Option Explicit

    Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, _

    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

    Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, _

    ByVal hRgn As Long, ByVal bRedraw As Long) As Long



    Private Sub Form_Load()

    'En ve boy değerleri değiştirilerek eliptik formlar oluşturulabilir

    Dim ref&, i&

    Dim en&, boy&

    en& = Me.Width / Screen.TwipsPerPixelX

    boy& = Me.Height / Screen.TwipsPerPixelY

    ref& = CreateEllipticRgn(0, 0, en&, boy&)

    i& = SetWindowRgn(Me.hWnd, ref&, True)

    End Sub





    Form Üzerinde Renk Geçişi





    Private Sub RenkGecisi(Ref As Form)

    Dim intLoop As Integer

    Ref.DrawStyle = vbInsideSolid

    Ref.DrawMode = vbCopyPen

    Ref.ScaleMode = vbPixels

    Ref.DrawWidth = 2

    Ref.ScaleHeight = 256

    For intLoop = 0 To 255

    Ref.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(255, 0, 255 - intLoop), B

    Next intLoop

    End Sub



    Private Sub Form_Activate()

    RenkGecisi Me

    End Sub




    Form’a ScrollBar Eklemek





    (General)(Declaration)

    Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, _

    ByVal wBar As Long, ByVal bShow As Long) As Long

    Private Const SB_HORZ = 0

    Private Const SB_VERT = 1

    Private Const SB_BOTH = 3



    Private Sub Form_Load()

    ShowScrollBar Me.hwnd, SB_BOTH, True

    End Sub




    Etkileşimsiz Form Yapmak






    (General)(Declaration)

    Private Type POINTAPI

    X As Long

    Y As Long

    End Type

    Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long

    Private Declare Function ReleaseCapture Lib "user32" () As Long

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

    Dim Pt As POINTAPI



    Private Sub Form_Load()

    SetCapture Me.hwnd

    End Sub



    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _

    X As Single, Y As Single)

    ReleaseCapture

    SetCapture Me.hwnd

    End Sub



    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _

    X As Single, Y As Single)

    GetCursorPos Pt

    Me.CurrentX = 0

    Me.CurrentY = 0

    Me.Cls

    Me.Print "Fare Kooordinatları : "

    Me.Print "X:" + Str$(Pt.X) + " Y:" + Str$(Pt.Y)

    Me.Print " (Çıkış - ALT-F4)"

    SetCapture Me.hwnd

    End Sub



    Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _

    X As Single, Y As Single)

    ReleaseCapture

    SetCapture Me.hwnd

    End Sub




    Form Close Butonunu İptal etmek





    Dim bClose As Boolean



    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    If bClose = False Then Cancel = True

    End Sub




    Form’u Küçülterek Kapatma




    (General)(Declaration)

    Const AW_HOR_POSITIVE = &H1 ' Soldan sağa

    Const AW_HOR_NEGATIVE = &H2 ' Sağdan sola

    Const AW_VER_POSITIVE = &H4 ' Yukarıdan aşağıya

    Const AW_VER_NEGATIVE = &H8 ' Aşağıdan yukarıya

    Const AW_CENTER = &H10 ' Merkeze

    Const AW_HIDE = &H10000 ' Sakla



    Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Long, _

    ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean



    Private Sub Form_Load()

    Me.AutoRedraw = True

    Me.Print "Unload me"

    End Sub



    Private Sub Form_Unload(Cancel As Integer)

    AnimateWindow Me.hwnd, 200, AW_CENTER Or AW_HIDE

    Set Form1 = Nothing

    End Sub





    Form Başlığını Harf Harf yazdırmak






    Sub HarfHarf(ref As Form)

    baslik = ref.Caption ‘ Form başlığı alınıyor

    ref.Caption = "" ‘ Form başlığı siliniyor

    ref.Show

    For i = 0 To Len(baslik) ‘ Başlık uzunluğu kadar tekrarlanıyor

    If i = 0 Then

    ref.Caption = ""

    current = Timer

    Do While Timer - current < 0.1

    DoEvents

    Loop

    GoTo Son

    Else

    End If

    ref.Caption = Left(baslik, i) ‘ Başlığın soldan i kadarı seçiliyor

    current = Timer

    Do While Timer - current < 0.05

    DoEvents ‘ Diğer programların çalışabilmesine

    Loop ‘ olanak tanıyor

    Son:

    Next i

    End Sub



    Private Sub Command1_Click()

    HarfHarf Me

    End Sub

  2. #2

Similar Threads

  1. CEvaplar: 1
    Son Mesaj: 24-07-08, 09:20
  2. Do ... Loop Until ...-V.Basic-(kaynak1)
    By Elektronik in forum Visual Basic
    CEvaplar: 1
    Son Mesaj: 15-07-08, 09:34
  3. Do Until ... Loop-V.Basic-(kaynak1)
    By Elektronik in forum Visual Basic
    CEvaplar: 1
    Son Mesaj: 15-07-08, 09:33
  4. Do ... Loop While ...-V.Basic-(kaynak1)
    By Elektronik in forum Visual Basic
    CEvaplar: 1
    Son Mesaj: 15-07-08, 09:32
  5. IFF-V.Basic-(kaynak1)
    By Elektronik in forum Visual Basic
    CEvaplar: 1
    Son Mesaj: 14-07-08, 19:46

Tags for this Thread

Bookmarks

Gönderme izinleri

  • Yeni Konu açamazsınız
  • Konulara cevap yazamazsınız.
  • Eklenti gönderemezsiniz.
  • Mesajlarınızı düzenleme izniniz yok.
  •