Access Gizlemenin başka yolu

1 2
28/04/2009, 03:38

donepezil

Mehmet hocam buna benzer bir uygulamayı delphi ve vb de yapılmış bir programda görmüştüm ve hoşuma gitmişti. Modüldeki parametrelerle oynanarak sanıyorum Access çubuğundaki menüleri tam görünür yapmak yada gizlemek mümkün olur. Zaten menü çubuğunu istediğimiz gibi düzenlemeyi daha önceki örneklerinizde görmüştüm. Şahsen benim için çok isabetli bir örnek oldu. Teşekkür ediyorum.
28/04/2009, 21:14

mehmetdemiral

Bravo. Bazı arkadaşlara işe yaramaz gibi görünen örnek içinde api kullanmadan form şekliyle oynanabilmeye izin veren bazı alışılmadık kodlar var. Özellikle Bilgisayarcı'nın bu örnekten 1 gün falan sonra bize öğrettiği bir komut bu. Kodlara bakarsanız özellikle şu satırlar formun büyüklüğünü değiştiren kdolardır. Sayın Bilgisayarcı'nın örneğinde bu komutun kendi zamanlayıcısı da kullanılmış ve böylece api kullanarak kullanabildiğimiz "sleep" komutu ve doğrudan kullandığımız "Zaman dolduğunda" olayı -en azından direkt olarak- kullanılmamıştır.

Bilgisayarcı'nın örneğinin linkini de aşağıda veriyorum. Her ikisindeki benzer yönler ve komutun kullanım özellikleri incelenerek çok güzel çalışmalar yapılabilir ve api kullanılarak system kaynaklarından çalınıp kullanılan Access gizleme çalışmalarına alternatif oluşturulabilir. Bazı arkadaşların sandığı gibi iki çalışma arasındaki fark da böylece ortaya çıkacaktır.

İşte Bilgisayarcı'nın yaptığı çok şık örneğin linki:
https://accesstr.net/attachment.php?aid=2867
Bu arada sayın donepezil'in dediği şekilde access'in tamamen görünmez yapılması için aşağıdaki kodlarda değişklik yapmalısınız. Fakat ben yine de önermem, çünkü gizledikten sonra programdan çıkılırsa veya bir problem olursa accessi kapatmek için CTRL ALT DEL yapmanız gerekecektir. Bu açıdan sadece kaptıldığında Docmd.quit kodlarının çalışacağı bir ana form yapmak ve başka türlü kapanması ya da gizlenmesine müsaade etmemek lazım.

Kodlar şöyle:

Kod:
Public Function degistir()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1500, 43)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function
Public Function degistir2()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1500, 1500)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function

Bu kodlarda "degiştir" adlı fonksiyondaki 43 değerini 0 yaparsanız o zaman üstteki bar da görülmeyecektir.Böylece sayın karaayhan'ı da mutlu etmişimdir umarım. )
28/04/2009, 22:27

donepezil

Hocam tamda aradığım kodu verdiniz teşekkür ederim. o değer 43 iken menülerin yarısı görünüyor yarısı görünmüyor idi.



Büyük boy

O değer 51 olunca Access menüleri tam görünüyor.



Büyük boy

Özel menü düzenlemesi yaptığımız bazı uygulamalarda çok işe yarar düşüncesindeyim. zaten tamamen gizlemeyi Autoexec ile yapıyoruz. Buda çok farklı oldu.Elinize sağlık
1 2