VB6'da Form'u çarpıdan kapatmayı engellemek.

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
VB6'da Form'u çarpıdan kapatmayı nasıl engelleriz.
Quryload kısmına yazılan
if closemode=0 then cancel=true işe yaramıyor
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Kod:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = (CloseMode = 0)
MsgBox "Çarpıdan çıkamazsınız"
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Sanırım bu sefer command butona yazdığım unlad me komutu çalışmıyor.
Unload me form1.show yazdığımda
Form2 kapanmadan form1 açılıyor.
Ben form2nin kapanıp form1in açılmasını istiyorum.Ancak form2nin X dan kapanmasınıda istemiyorum.
Command butondan kapanabilsin.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Mahmut bey çarpıyı nasıl engelleyeceğiz?
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
2.mesajda yanıtlamıştım.
Görmediniz galiba...
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Teşekkür bu şekilde oluyor.
Unload me Yapma ihtimalimiz yokmu acaba
Çünkü ben o formun QuryLoad kısmına kod yazmak istiyordum.
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Evren bey,
Bu şekilde denedim çalışıyor.
Kod:
Private Sub Command1_Click()
Unload Me
End Sub
Belki de ben yanlış anladım sorunuzu fakat sizin işinizi göreceğine inandığım bir kaç örnek ekliyorum.
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Mahmut bey 2 tane formla çalışıyorum.
*ilk formu hide yapıyorum
*2nci formu show ediyorum
*2nci formda quryload olayında X'ten çıkmayı engelliyorum
*Çıkış butonuna
unload me
form1.show
yazıyorum.
form2 kapanmıyor.:agla:
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Üstadım şu kodları form2 ye yapıştırınız.
Kod:
Option Explicit
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private Const MF_BYCOMMAND = &H0&
Private Const SC_CLOSE = &HF060&

Private Sub Command1_Click()
Unload Me
Form1.Show
End Sub

Private Sub Form_Load()
  Dim systemmenu As Long
    systemmenu = GetSystemMenu(Form1.hwnd, False)
    DeleteMenu systemmenu, SC_CLOSE, MF_BYCOMMAND
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
X ten gene kapanıyor.
Üstelik kapandıktan sonra form1'i açmıyor!!
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Hocam bende x butonunu disable yapıyor ve butona basınca da kapanıyor form1 i açıyor.
Allah Allah aklım ermedi bu işe valla...
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Hocam bende x butonunu disable yapıyor ve butona basınca da kapanıyor form1 i açıyor.
Allah Allah aklım ermedi bu işe valla...
Bu şekilde ols bile gene benim sorunumu çözmüyor.
Çünkü bu sferde alt+f4 ile kapatıbilirler.
Olmazsa hide kodunu kullnıp Quaryload yerine kodları formun deactivite olayına yazarım.Ne yapalım.Bakalım sonuca ona göre.
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Evren bey 8.mesajımdaki eklere bir bakın isterseniz.
Belki orada size göre bir örnek vardır.
Kolay gelsin.
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Kod:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
MsgBox "Çarpıdan çıkamazsınız"
End Sub
bu kod alt+f4 ü engelliyor.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Kod:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
MsgBox "Çarpıdan çıkamazsınız"
End Sub
bu kod alt+f4 ü engelliyor.
Hepsini engellemiyormu.
Commandbutonda unload me dediğimiz zaman onuda engellemiyormu?
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Mazur görün pek anlamadım dediğinizi.
Alt+F4 ve X dan çıkmayı engelliyor.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Mahmut bey.
Ekli dosyaya bakarmısınız?
Unload me yapınca form2 kapanmıyor.
Ekle değşitir butonuna basarak form2 açıyorsunuz.
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Hocam dışarıdaydım kusura bakmayın.

Bir de şunu deneyin.

Formun yani Form2 'nin keypreview'ini True yapın.

Sonra bir modüle şu kodları yapıştırın.

Kod:
Option Explicit
Public Declare Function GetSystemMenu Lib "user32" _
    (ByVal hwnd As Long, _
     ByVal bRevert As Long) As Long

Public Declare Function RemoveMenu Lib "user32" _
    (ByVal hMenu As Long, _
     ByVal nPosition As Long, _
     ByVal wFlags As Long) As Long
Public Const MF_BYPOSITION = &H400&


Public Sub DisableCloseWindowButton(frm As Form)
    Dim hSysMenu As Long
    hSysMenu = GetSystemMenu(frm.hwnd, 0)
    RemoveMenu hSysMenu, 6, MF_BYPOSITION
    RemoveMenu hSysMenu, 5, MF_BYPOSITION
End Sub
Form2 deki kodları da şu şekilde değiştirin.

Kod:
Private Sub Command1_Click()
Unload Me
Form1.Show
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
KeyCode = 0
End Sub

Private Sub Form_Load()
DisableCloseWindowButton Me
End Sub
Kolay gelsin.
 
Üst