Mega Code Archive

 
Categories / Delphi / Strings
 

Visual basic ipuçları [9 adet]

//Kaynak : PCWorld dergisi 1 - // Birlikte Aç Komutu çıkarmak { Private Sub Command1_Click() ' Komut butonuna tıklandığında Dim x As Long x = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL dosyaadi.xxx") End Sub } 2 - //Bu Nedir? Yardımı { Visual Basic ile gelen yardım derleyicisini kullanarak uygulamanızın yardım dosyasını oluşturdunuz. Yardım dosyanızın içerisinde ilgili ID tanımlamalarını da doğru olarak yaptıysanız, artık size verdiğimiz adımları uygulayarak programınıza yardım seçeneğini ekleyebilirsiniz. Programınızda yardım dosyasını olduğu gibi çağırabileceğiniz gibi Windows'un iki ayrı özelliğini de kullanabilirsiniz. Birinci özellik "Bu nedir?" yardımı. Formun sağ üst köşesinde kapatma tuşunun hemen yanında yer alan soru işaretine tıkladığınızda çıkan "Bu nedir?" kutusunu form üzerindeki kontrollerden birinin üzerine getirip tıkladığınızda kontrolün ne işe yaradığına dair bilgiler bir baloncuk içerisinde çıkacaktır. Bu özelliği uygulamanızda kullanabilmek için aşağıdaki adımları uygulayın: Tools * Options * Project bölümüne gelerek "Help File" kutusuna uygulamanız için oluşturduğunuz yardım dosyasını girin. Form'un Properties kutsunu açarak "MinButton" ve "MaxButton" tuşlarına "False" değerini verin. Aynı zamanda "Whats This Button" ve "Whats This Help" değerlerini de "True" yapın. Form üzerinde örnek bir metin kutusu kontrolü oluşturarak bu kontrolün "whats this help id"sine daha önce yardım dosyası oluştururken belirlediğiniz numarayı girin. İkinci yardım özelliği ise "kontrole duyarlı" yardım. Kullanıcı herhangi bir kontrol üzerindeyken F1'e bastığında yardım dosyasını ilgili bölümü gelsin istiyorsanız şu adımları uygulayın: Tools * Options * Project bölümüne gelerek "Help File" kutusuna uygulamanız için oluşturduğunuz yardım dosyasını girin. Örnek bir metin kutusu kontolü oluşturarak properties kutusundan bu kontrolün "Help Context ID'sini tanımlayın. Bu kadar basit. } 3 - //HWnd de ne? { VB'de pencerelerle ilgili API'leri kullanırken genellikle HWnd diye bir kullanıma rastlıyorum. HWnd nedir? Anladığım kadarıyla pencere numarası belirtiyor. Doğru bir tahminde bulunmuşsunuz. HWnd değişkeni pencere referansıdır. Yıllar önce Bill Gates amcamız Windows'un arabirimini tasarlarken arabirimi oluşturan her küçük pencereye bir numara vermeyi ve pencereleri numaralarıyla adlandırmayı düşünmüş. İşletim sisteminiz proje her çağrıldığında HWnd değişkenine bir tam sayı atar. Her zaman değişken olan bu tam sayı herhangi bir kontrol veya pencerenin referansını belirtir. Bu referans değişkendir çünkü çalıştırılan diğer uygulamalar ve yüklenen kontroller zaten kendilerine birer HWnd değeri alır. Bir nesnenin HWnd değerini öğrenmek için X = nesne.hWnd gibi bir ifade kullanabilir X değerini öğrenerek Hwnd değerini okuyabilirsiniz. } 4 - //CDbl kullanımı { VAL () fonksiyonunu hemen hepiniz biliyorsunuzdur. Metin formatında olan sayıları numerik bir değişkene çevirmek için bu fonksiyonu kullanırız. Peki bu fonksiyonun kardeşi olan CDbl'yi hiç duymuş muydunuz? CDbl fonksiyonunu kullanmak içerisinde hane barındıran metinleri numerik hale getirmek için en iyi yoldur. Aşağıda iki fonksiyonun kullanımlarını ve arasındaki farkları göreceksiniz. Kod: print Val(' 12345' ) Sonuç: 12345 Kod: print Val(' 12,345' ) Sonuç: 12 Kod: print CDbl(' 12,345' ) Sonuç: 12345 Kod: print CDbl(' 12345' ) Sonuç: 12345 Peki bu iki fonksiyonun farkı ne? Bir kaç satır fazla kodla yapılabilecek, sık sık rastlamayacağımız bu durum için niye iki ayrı fonksiyon üretilmiş? Cevabı çok basit: CDbl fonksiyonu değişik ülkelerde farklı metrik ve ondalık değerler kullanılabileceği düşünülerek tasarlanmış ve sayı içinde virgülün yerini değişse bile bunu tutarak sadık bir yardımcı durumuna gelmiş. } 5 - //Gradient fill { Sub Gradient(TheObject As Object, Redval&, Greenval&,_ Blueval&, TopToBottom As Boolean) Dim Step%, Reps%, FillTop%, FillLeft%, FillRight%, FillBottom%, HColor$ Step = (TheObject.Height / 63) If TopToBottom = True Then FillTop = 0 Else FillTop = TheObject.Height - Step FillLeft = 0 FillRight = TheObject.Width FillBottom = FillTop + Step For Reps = 1 To 63 TheObject.Line (FillLeft, FillTop)-(FillRight, FillBottom),_ RGB(Redval, Greenval, Blueval), BF Redval = Redval - 4 Greenval = Greenval - 4 Blueval = Blueval - 4 If Redval <= 0 Then Redval = 0 If Greenval <= 0 Then Greenval = 0 If Blueval <= 0 Then Blueval = 0 If TopToBottom = True Then FillTop = FillBottom Else FillTop = FillTop - Step FillBottom = FillTop + Step Next End Sub } 6 - //DOS penceresini Kapat { Declare Function FindWindow& Lib ' user32' Alias ' FindWindowA' _ (ByVal lpClassName As String, ByVal lpWindowName As String) Declare Function SendMessage Lib ' user32' Alias ' SendMessageA' (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Declare Sub Sleep Lib ' kernel32' (ByVal dwMilliseconds As Long) Public Const WM_CLOSE = &H10 Private m_sEXEName As String Private m_sDosCaption As String Public Sub RunDosApp() Dim vReturnValue As Variant Dim lRet As Long Dim i As Integer vReturnValue = Shell(m_sEXEName, 1) ' Dosyayı çalıştır AppActivate vReturnValue ' EXE penceresini aktif hale getir. Do Sleep (10000) lRet = FindWindow(vbNullString, m_sDosCaption) If (lRet <> 0) Then vReturnValue = SendMessage(lRet, WM_CLOSE, &O0, &O0) Exit Do End If Loop End Sub } 7 - //Like örnekleri { Deger = "aBBBa" Like "a*a" ' Doğru döndürür. Deger = "F" Like "[A-Z]" ' Doğru döndürür. Deger = "F" Like "[!A-Z]" ' Yanlış döndürür Deger = "a2a" Like "a#a" ' Doğru döndürür. Deger = "aM5b" Like "a[L-P]#[!c-e]" ' Doğru döndürür. Deger = "BAT123khg" Like "B?T*" ' Doğru döndürür. Deger = "CAT123khg" Like "B?T*" ' Yanlış döndürür } 8 - //ico'yu fare imleci yapmak { Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) ‘İmleç metin kutusunun üzerine geldiğinde... Text1.MousePointer = 99 ‘İmleci kullanıcı kararına bırak. Text1.MouseIcon = LoadPicture("c:\point01.ico") ‘imleci bir simge haline getir. End Sub } 9 - //Program Manager'a Grup oluşturmak { Sub Command1_Click() Text1.LinkTopic = "ProgMan|Progman" 'Bağlantı kurulacak program Text1.LinkMode = 2 'Kullanıcı bağlantısı yarat Text1.LinkExecute "[CreateGroup(PC WORLD Türkiye)]" 'Windows Program Yöneticisinde yeni bir grup yarat Text1.LinkExecute "[AddItem(c:\vb\vb.exe, Visual Basic)]" 'Burada belirttiğimiz dizini kendinize göre değiştirin. Text1.LinkExecute "[AddItem(c:\vb\vb.hlp, Visual Basic Yardımı)]" 'Gruba iki yeni öğe ekle Text1.LinkExecute "[ShowGroup(PC WORLD Türkiye, 7)]" 'Grubu simge haline getir ve Visual Basic’e geri dön On Error Resume Next 'Hata oluşursa işleme devam et. Sebep? 'Windows 3.0 ile VB bu aşamada uyumsuzluk çıkarır! Text1.LinkMode = 0 ' bağlantıyı kes End ‘Son... End Sub }