![]() |
|
| |||||||
|
| | Seçenekler |
|
#1
| ||||||
| ||||||
Karışık KodlarKarışık Kodlar ( Listbox'a degisik renklerde item nasyl eklenir? MSFlexGrid control kullanyn Form close butonu nasyl çalistirilir? dim bClose as Boolean Form'un QueryUnload event'ine ekle: If bClose = false then cancel = true Bir combo'nun içini diger bir combo'dan aldiklarinizla nasyl doldurursunuz? Sub comboA_click() comboB.text = comboA.text End sub Eger ComboA'daki seçili degerlerin ComboB'ye aktarilmasini istiyorsaniz Sub comboA_click() comboB.AddItem comboA.text end sub Birden fazla sütun içeren combolar nasyl yapylyr? Projenize Microsoft Forms 2.0 control ekleyin, oradaki combo multi-column destekler. Combo1.Clear Combo1.ColumnCount = 2 Combo1.ListWidth = "6 cm" 'Total genislik Combo1.ColumnWidths = "2 cm;4 cm" 'sütun genisligi Combo1.AddItem "Ivir zivir" Combo1.List(0, 1) = "Ivir zivir" Dikine uzanan label nasyl yapylyr? Private Sub Form_Activate() Dim s As String Label1.Caption = "Visual Basic 2000" For i = 1 To Len(Label1) s = s & Mid$(Label1, i, 1) & vbCrLf Next Label1 = s End Sub dikkat: Label'i dikine çekmelisiniz Joker karakterler kullanarak string nasyl aranir? Dim Mystr As String Mystr = "Hakan" If Mystr Like "H*" Then MsgBox "Bulundu" Else MsgBox "Bulunamadi" End If Her dile uyumlu tarih nasyl formatlanir? Command1.Caption = Format$(Date, "Short Date") Uyari isareti olan (X) mesaj kutusu nasyl yapylyr? MsgBox "Mesaj Buraya!!", vbCritical, "Önemli" Içine tab yerlestirebileceginiz text kutulari nasyl yapylyr? Bir form içindeki tüm kontrollerin tabstoplarini False'e esitleyin Text kutulari için kisayol tuslari nasyl belirlenir? Kisayol tusuna sahip bir label hazirlayin ve label'in tabindex'ini textbox'un tabindexinden bir asagiya esitleyin. Command butondan popup menü nasyl yapylyr? Öncelikle menü editör ile bir menü yaratin. Asagidaki gibi: Button Menu (Menu name: mnuBtn, Visible: False - Unchecked) ....SubMenu Item 1 (Menu name: mnuSub, Index: 0) ....SubMenu Item 2 (Menu name: mnuSub, Index: 1) ....SubMenu Item 3 (Menu name: mnuSub, Index: 2) ....SubMenu Item 4 (Menu name: mnuSub, Index: 3) ve bir tane de command button hazirlayin ve kodu yerlestirin: Private Sub mnuSub_Click(Index As Integer) Call MsgBox("Kliklenen menü: " & Index + 1, vbExclamation) End Sub Private Sub Command1_Click() Call PopupMenu(mnuBtn) End Sub Not: Isterseniz daha güzel etki için "Call PopupMenu(mnuBtn)" çagrisi yerine Call PopupMenu(Menu:=mnuBtn, X:=Command1.Left, Y:=Command1.Top + _ Command1.Height) çagrisini yada; Call PopupMenu(mnuBtn, vbPopupMenuCenterAlign, Command1.Left + _ (Command1.Width / 2), Command1.Top + Command1.Height) çagrisini kullanin. Text kutusunda olan degisiklik nasyl farkedilir? 'Amaç kullaniciyi yaptigi degisiklikler konusunda programi kapatmadan uyarmaktir. Public Degisti As Boolean 'Bu degisken textbox'ta herhangi bir degisiklik olup olmadigini tutar. Private Sub Text1_Change() Degisti= True End SubPrivate Sub Form_Unload(Cancel As Boolean) If Degisti Then If Msgbox("Degisiklikler kaydedilsin mi?", vbYesNo, "Kayit'") = vbYes Then 'Buraya kaydetme ile ilgili kodlar gelecek Degisti = False ' Degisti degerini tekrar False yap ki bir sonraki degisiklikte tekrar çalisabilsin. (Bu Önemli!!!!) 'Bunu sadece buradaki If - End If blogu arasina yaz End If End If End Sub Listbox'a bir text dosyasi içerigi nasyl yüklenir? Private Sub Command1_Click() Dim BulunanKelimeler As String Open "C:\test.txt" For Input As #1 List1.Clear While Not EOF(1) Input #1, StringHold List1.AddItem BulunanKelimeler Wend Close #1 End Sub Textbox ve Combobox için Undo (geri al) fonksiyonu nasyl kullanilir? 'Bir Windows API undo islemi yapar 'asagidaki deklerasyonlari yaz Declare Function SendMessage Lib "User" (ByVal hWnd As _ Integer, ByVal wMsg As Integer, ByVal wParam As _ Integer, lParam As Any) As Long 'asagidaki degismezleri yaz Global Const WM_USER = &h400 Global Const EM_UNDO = WM_USER + 23 ' Undo Sub 'lara asagidaki kodu yaz UndoResult = SendMessage(myControl.hWnd, EM_UNDO, 0, 0) 'UndoResult = -1 olursa hata var demektir 'UndoResult sadece bir rakamdir ve hiç bir önemi yoktur. Sadece yer tutmasi için yazilir. 'VB'nin buna benzer gariplikleri vardir. Bir amaci varsa da ben bilmiyorum Clipboard'dan text nasyl kopyalanir? 'Textbox'ta texti isaretle ve isaretlenen yeri clipboard'dan kopyaladiginla degistir: txtBox.SelText = Clipboard.GetText 'Yada tüm text'i clipboarddan aldiginla degistir. txtBox.Text = Clipboard.GetText Clipboard'a text nasyl kopyalanir? 'Önce clipboard'u temizle Clipboard.Clear 'Sonra kopyalanacak alani seç ve clipboard'a kopyala Clipboard.SetText txtBox.Text, vbCFText Toolbar'in click olayi nasyl kodlanir? Private Sub Toolbar1_ButtonClick(ByVal Button As Button) 'button clicklerini saptamak için: Select Case Button.Key Case Is = "Exit" If MsgBox("Çikmak istiyor musunuz??", vbQuestion + vbYesNo + _ vbDefaultButton2, "Programdan çikiyorsunuz!") = vbNo Then Exit Sub Call ExitProgram Case Is = "Repair" Call Repairdb Case Is = "Delete" Call DeleteRoutine Case Is = "Edit" Call EditRoutine Case Is = "New" Call NewRoutine Case Is = "Copy" Call CopyToClipboard Case Is = "Help" Call ShowHelpContents End Select End Sub Dogum gününden ki?inin ya?y nasyl hesaplanyr? 'Text'i Date data türüne çevir Dim Birth as Date Birth = DateValue(txtDOB) 'Yasi hesapla Dim Age as Integer Age = Int(DateDiff("D", Birth, Now) / 365.25) |
|
#2
| ||||||
| ||||||
| Windows Control Panel (Denetim masasi) uzantilari VB ile nasyl açilir? Option Explicit Private strPanelAdi As String Private Sub Command1_Click() strPanelAdi = File1.filename If strPanelAdi = "" Then MsgBox "Bir .CPL dosyasi seçilmedi." & vbCrLf & _ "Windows Control Panel açiliyor.",vbInformation End If Shell "rundll32.exe shell32.dll,Control_RunDLL " & _ strPanelAdi, vbNormalFocus End Sub Private Sub Form_Load() With File1 'Sadece Control Panel uzantili dosyalari göster .Pattern = "*.CPL" 'FileListBox yalnizca System yada System32 dizinini hedef alsin: .Filename = "C:\Windows\System" End With End Sub Bellegi bosaltmak için tüm formlar nasyl unload edilir? Public Sub UnloadAllForms() Dim Form As Form For Each Form In Forms Unload Form Set Form = Nothing Next Form End Sub Bu prosedürü çalistirmak için en uygun yer ana formun unload event'idir Kontroller nasyl ta?ynabilir? (Drag&Drop) Burada bir picturebox form üzerinde drag&drop ile tasinmaktadir. Option Explicit Public globalX As Integer Public globalY As Integer Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Picture1.Move X - globalX, Y - globalY End Sub Private Sub Picture1_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) Picture1.Drag vbBeginDrag globalX = X globalY = Y End Sub Kendi Popup menünüz bir textbox içinde nasyl gösterilir? Bu ipucu ile standart Windows pop up menüsünü bastirir kendi popup menünüzü çalistirirsinz. Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then With Text1 .Enabled = False PopupMenu {KendiMenunuz} .Enabled = True .SetFocus End With End If End Sub Mesaj kutusunun ileri özellikleri nasyl kullanilir? Dim Msg, Style, Title, Help, Ctxt, Cevap, MyString Msg = "Devam edelim mi ?" ' Mesaji tanimla Style = vbYesNo + vbCritical + vbDefaultButton2 'Butonlari tanimla Title = "MsgBox Gösterimi" ' Title tanimla Help = "DEMO.HLP" 'Bir help dosyasi bagla Ctxt = 1000 ' Baslik tanimla Cevap = MsgBox(Msg, Style, Title, Help, Ctxt) 'Masaji göster ve kullanici cevabini bekle If Cevap = vbYes Then ' Kullanici evet'i seçti MsgBox "Kabul ettiniz" ' Karsilik ver Else ' Tersi durumda kullanici hayir'i seçmis demektir MsgBox "Kabul etmediniz" ' Karsilik ver End If Menülerde seperatör (ayraç) nasyl yapylyr? mnu.Caption="-" Listbox'taki tüm elemanlar nasyl seçilir? 'Asagidaki kodu cmdYeniEkle_Click() yordamina yaz List1.AddItem Text1.Text ' Yeni bir item ekle 'Asagidaki kodu cmdTumunuSec_Click() yordamina yaz For x = 0 To List1.ListCount - 1 List1.Selected(x) = True ' item(x) seç Next x Listview'deki satirlarin kaç tane oldugu nasyl sayilir? lItemCount = lstCount.ListItems.Count Msgbox lItemCount Form konfetti ile nasyl doldurulur? DrawWidth = 5 ' noktaciklarin genisligi Dim x As Long Dim y As Long Dim r As Integer Dim g As Integer Dim b As Integer Randomize Do x = Val(Screen.Width) * Rnd y = Val(Screen.Height) * Rnd bir sonraki noktacigin rengi rastgele seçilir r = 255 * Rnd g = 255 * Rnd b = 255 * Rnd Form1.PSet (x, y), RGB(r, g, b) Loop Form üzerindeki Picturebox nasyl ortalanir? Picture1.Left = (Form1.Width - Picture1.Width) / 2 Clipboard kullanarak bir Picturebox içerigi resim diger bir picturebox'a nasyl kopyalanir? Command1_Click() Clipboard.Clear 'Clipboard'i mutlaka sil Clipboard.SetData Picture1.Picture Command2_Click() Picture2.Picture = Clipboard.GetData ' Clipboard içerigini Picture2 içine yapistir. Mouse pointer nasyl saklanir? Bu is için ShowCursor API'si kullanilir. Asagidaki kodu bir module içine yaz: Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long Bu kod mouse imlecini saklar: FareImleci = ShowCursor(False) Bu kod mouse imlecini görünür hale getirir: FareImleci = ShowCursor(True) Programiniz disinda keypress nasyl saptanir? GetAsyncKeyState API'si kullanilir. Asagidaki kodu module içine yazin Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer ' Asagidaki constant TAB tusu için. Diger tuslar için ' API Text Viewer'i kullanin Public Const VK_TAB = &H9 'Timer1_Timer() içine asagidaki kodu ekleyin If GetAsyncKeyState(VK_TAB) Then Beep ' TAB'a basilirsa beep End If Yazdirma islemi nasyl iptal edilir? 'Bu örnekte ayrica birden fazla sayfanin nasyl yazilacagi da gösteriliyor Printer.Print "Page 1" Printer.Newpage Printer.Print "Page 2" Printer.KillDoc Resim Nasıl Yazdırılır.. Printer.PaintPicture Picture1.Picture Printer.EndDoc Windows'un Belgeler içerigi nasyl silinir? Bir module asagidaki API deklerasyonunu ekle: Declare Sub SHAddToRecentDocs Lib "shell32.dll" (ByVal uFlags As Long, ByVal pv As String) Herhangi bir click içine de asagidaki kodu ekle: SHAddToRecentDocs(2,vbNullString) Windows'un Belgeler içine nasyl ekleme yapylyr? Bir module asagidaki API deklerasyonunu ekle: Declare Sub SHAddToRecentDocs Lib "shell32.dll" (ByVal uFlags As Long, ByVal pv As String) Herhangi bir click içine de asagidaki kodu ekle: Dim ekleme as String ekleme="c:\falan dizin\filan dosya.txt" SHAddToRecentDocs(2,ekleme) Alan adina göre bir Recordset içindeki kayitlar nasyl siraya konur? 'Bu kod tüm kayitlari Z-A (geriye dogru) siraya dizer ' A-Z (ileri dogru) sirasi isterseniz ,DESC yerine ASC kullanin. Dim DB as Database Dim Kayitlar as Recordset Set Kayitlar = DB.OpenRecordset("SELECT * FROM _ Personel " & "ORDER BY Personel.Adi DESC;") Personel tablosundan tüm kayitlari Adi (personel adi) field degerine göre azalan (Z-A ) sekilde siraya dizer Listbox'u Access (mdb) veritabanina nasyl baglarsiniz? On Error GoTo Hata_Kontrol Dim DB as Database Dim Kayitlar as Recordset Dim X as Long, record_count as Long 'Veritabanini açalim Set DB = OpenDatabase("Ogrenci.mdb", dbOpenSnapshot) Set Kayitlar = DB.OpenRecordset("Ogrenciler") ' Dikkat ederseniz asagida yapilan islem önce veritabaninin sonuna gitmek, RecordCount degerini ' ögrenmek ve sonra tekrar veritabani basina dönmektir. Veritabani sonuna gitmeden kaç adet kayit ' oldugunu ögrenemezsiniz. Kayitlar.MoveLast X = Kayitlar.RecordCount Kayitlar.MoveFirst ' Listbox içine adlari yerlestirelim ' Ilk kayita geldikten sonra artik sirayla ögrenci adlarini listbox içine alabiliriz Do List1.AddItem Kayitlar!OgrenciAdi Y = Y + 1 Kayitlar.MoveNext Loop Until Y = X ' X = Recordcount, yani son kayit Hata_Kontrol: Select Case (Err) Case 3021 ' Kayit yok record_count = 0 'Kayit yoksa degeri 0 a esitleyelim. Exit Sub List1.Refresh End Select Bir form nasyl asagi ve yukari katlanir? (açilista splash screen olarak kullanmak üzere..) Sub FormuYukariKatla(frm As Form, yukari As Integer) ' Formunuzun Scalemode property'sine dikkat edin. Eger degeri pixel ise ' ve siz twip deger kullanirsaniz form sonsuz bir döngü içinde katllanir. ' formunuzun ne kadar katlanmasini istiyorsaniz yukari degerini o kadar yükseltin ' Açilista splash screen olarak kullanilir... Dim NereyeKadar NereyeKadar = frm.Height - yukari If NereyeKadar <= 0 Then Exit Sub If yukari < 0 Then Exit Sub Do frm.Height = frm.Height - 1 DoEvents Loop Until frm.Height <= NereyeKadar End Sub Sub FormuAsagiKatla(frm As Form, asagi As Integer) 'Yine scalemode'a dikkatedin! ' Formun ne kadar asagi katlanmasini istiyorsaniz "asagi " degerini o kadar büyütün Dim NereyeKadar NereyeKadar = frm.Height + yukari If yukari < 0 Then Exit Sub Do frm.Height = frm.Height + 1 DoEvents Loop Until frm.Height >= NereyeKadar End Sub 'Asagidaki sub yordamimiz çagirir Private Sub Command1_Click() Call FormuAsagiKatla(Form1, 100) End Sub isEven fonksiyonu nasyl kullanilir? 'Bu fonksiyon tek sayilarda TRUE döndürür Function isEven(n As Integer) As Boolean isEven = True If n And 1 Then isEven = False End Function |
|
#3
| ||||||
| ||||||
| Dosya boyutu nasyl ögrenilir? Aslinda dosya boyutu ögrenmek kolaydir. Buradaki ipucu kullanicinyn seçtigi dosyalarin boyutunu çalisma aninda buluyor. Bir form üzerine bir dirlistbox (lstDizin) ve bir filelistbox (lstDosya) ve bir Label (lblDosyaBoyutu) yerlestirin. Kullanici istedigi dizine gidebilir ve dosya seçebilir. Bu program kullanicinin seçtigi dosyalarin boyutunu gösterecek: Private Sub cmdDosyaBoyutunuGoster_Click() Dim strDosyaTemp As String Dim strBoyutTemp As String Dim strDizin As String Dim strDosya As String ' Kullanicinin seçtigi dizin ve dosya kutulari araciligiyla degiskenlerimize deger yüklüyoruz: strDizin = lstDizin.Path strDosya = lstDosya.File ' Yukaridan alinan degerlerle ulasilan path degerini geçici dosya degiskenine yükleyip ' o degiskenin dosya boyutunu hesaplatiyoruz.: strDosyaTemp = strDizin & "\" & strDosya strBoyutTemp = FileLen(strDosyaTemp) lblDosyaBoyutu.Caption = strDosyaTemp & " adli dosya " & _ Format(strBoyutTemp, "#,##0") & " byte boyutundadir." End Sub Title bar nasyl yanyp söner? Yeni bir EXE projesi aç ve bir modul içine asagidaki WinApi'yi yaz: Public Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, _ ByVal bInvert As Long) As Long Bir Form üzerine bir timer ve 2 commandbutton yerlestir (özellikleri sagida) : command1.caption="Baslat" command2.caption="Durdur" timer1.interval=500 'yarim saniyede bir yanpi sönecek timer1.enabled=false Private Sub Timer1_Timer() a& = FlashWindow(Me.hwnd, 1) End Sub Private Sub Command1_Click() 'Programi çalistirir ve form caption'u yanip söner Timer1.Enabled = True End Sub Private Sub Command2_Click() 'Yanip sönme isini kapatir Timer1.Enabled = False End Sub Ctrl-Alt-Delete ve Ctrl-Esc tus kombinasyonlarinin çalismasi nasyl iptal edilir? Asagidaki kodu projenizin declarations kismina yazin: Private Declare Function SystemParametersInfo Lib _ "user32" Alias "SystemParametersInfoA" (ByVal uAction _ As Long, ByVal uParam As Long, ByVal lpvParam As Any, _ ByVal fuWinIni As Long) As Long Sub CtrlAltDeleteKapat(Kapali As Boolean) Dim X As Long X = SystemParametersInfo(97, Kapali, CStr(1), 0) End Sub Ctrl-Alt-Delete kombinasyonunu kapatmak için: Call CtrlAltDeleteKapat(True) Ctrl-Alt-Delete kombinasyonunu açmak için: Call CtrlAltDeleteKapat(False) Sistemin bir ses kartina sahip olup olmadigi nasyl bulunur? Asagidaki kodu projenizin declarations kismina yazin: Declare Function waveOutGetNumDevs Lib "winmm.dll" _ Alias "waveOutGetNumDevs" () As Long Dim i As Integer i = waveOutGetNumDevs() If i > 0 Then MsgBox "Sisteminiz ses dosyalarini çalabilir.", _ vbInformation, "Sound Card Test" Else MsgBox "Sisteminiz ses dosyalarini çalamaz.", _ vbInformation, "Sound Card Test" End If Hangi kullanicinin login yaptigi nasyl anlasilir? Dim s As String Dim cnt As Long Dim dl As Long Dim AktifKullanici as String cnt = 199 s = String$(200, 0) dl = GetUserName(s, cnt) If dl <> 0 Then AktifKullanici = Left$(s, cnt) Else AktifKullanici = "" Asagidaki API fonksiyonunu ya formun decleration kismina yada bir modul içine yazacaksinz: Declare Function GetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _ As Long Bos disk alany nasyl saptanyr? GetDiskFreeSpace API fonksiyonunu kullanmalisiniz. Bu fonksiyonun declarasyonu söyledir: Declare Function GetDiskFreeSpace Lib "kernel32" Alias _ "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, _ lpSectorsPerCluster As Long, lpBytesPerSector As Long, _ lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters _ As Long) As Long Dim SectorsPerCluster& Dim BytesPerSector& Dim NumberOfFreeClusters& Dim TotalNumberOfClusters& Dim BosAlan& temp& = GetDiskFreeSpace("c:\", SectorsPerCluster, _ BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters) ' BosAlan degiskeni toplam bos byte degerini tutar: BosAlan = NumberOfFreeClusters * SectorsPerCluster * _ BytesPerSector Bir form altina nasyl gölge eklenir ve form yukarida hissi verilir? Formlarin altinda bulunan gölgeleri merak etmissinizdir. Formu sanki birkaç santimetre havada duruyormus hissi veren bu isleme "Dithering" denir: Asagidaki kodu bir forma ekleyin. Sub Dither(vForm As Form) Dim intLoop As Integer vForm.DrawStyle = vbInsideSolid vForm.DrawMode = vbCopyPen vForm.ScaleMode = vbPixels vForm.DrawWidth = 2 vForm.ScaleHeight = 256 For intLoop = 0 To 255 vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), _ RGB(0, 0,255 -intLoop), B Next intLoop End Sub Kodu çalistirmak için formun Activate olayina ise asagidaki kodu ekleyin: Form_Activate () Dither Me Kontroller nasyl gölgelendirilir? Yeni bir proje baslatip form üzerine bir textbox yerlestirin Asagidakini bir module yerlestirin: Global Const GFM_BACKSHADOW = 1 Global Const GFM_DROPSHADOW = 2 Public Sub ControlShadow(f As Form, C As Control, shadow_effect _ As Integer, shadow_width As Integer, shadow_color As Long) Dim shColor As Long Dim shWidth As Integer Dim oldWidth As Integer Dim oldScale As Integer shWidth = shadow_width shColor = shadow_color oldWidth = f.DrawWidth oldScale = f.ScaleMode f.ScaleMode = 3 f.DrawWidth = 1 Select Case shadow_effect Case GFM_DROPSHADOW f.Line (C.Left + shWidth, C.Top + shWidth)-Step(C.Width - 1, _ C.Height - 1), shColor, BF Case GFM_BACKSHADOW f.Line (C.Left - shWidth, C.Top - shWidth)-Step(C.Width - 1, _ C.Height - 1), shColor, BF End Select f.DrawWidth = oldWidth f.ScaleMode = oldScale End Sub Form'un Load procedurüne asagidaki kodu ekleyin: Private Sub Form_Load() Dim r r = ControlShadow(me,text1,1,2,black) End Sub Title bar'yn rengi nasyl de?i?tirilir? Windows'un tüm desktop renklerini SetSysColors API fonksiyonu ile degistirebilirsiniz. Bu fonksiyon 3 parametre alir : 1. Rengi degisecek elemanlarin sayisi 2. Color nesnesi degismezleri (const) 3. RGB degeri API: Declare Function SetSysColors Lib "user32" Alias _ "SetSysColors" (ByVal nChanges As Long, lpSysColor As _ Long, lpColorValues As Long) As Long Degismezler: Public Const COLOR_SCROLLBAR = 0 'Scrollbar rengi Public Const COLOR_BACKGROUND = 1 'Duvarkagidi yokken masaüstü arkaplan rengi Public Const COLOR_ACTIVECAPTION = 2 'Aktif pencere adi rengi Public Const COLOR_INACTIVECAPTION = 3 'Aktif olmayan pencere adinin rengi Public Const COLOR_MENU = 4 'Menu Public Const COLOR_WINDOW = 5 'Windows arkaplan Public Const COLOR_WINDOWFRAME = 6 'Pencere çerçevesi Public Const COLOR_MENUTEXT = 7 'Pencere Texti Public Const COLOR_WINDOWTEXT = 8 '3D koyu gölge (Win95) Public Const COLOR_CAPTIONTEXT = 9 'Pencere caption text rengi Public Const COLOR_ACTIVEBORDER = 10 'Aktif pencere sinirlari rengi Public Const COLOR_INACTIVEBORDER = 11 'Inaktif pencere sinirlari rengi Public Const COLOR_APPWORKSPACE = 12 'MDI desktop arkaplan rengi Public Const COLOR_HIGHLIGHT = 13 ' seçili alan arkaplan rengi Public Const COLOR_HIGHLIGHTTEXT = 14 'Seçili menü rengi Public Const COLOR_BTNFACE = 15 'Button Public Const COLOR_BTNSHADOW = 16 '3D buton gölgeleme Public Const COLOR_GRAYTEXT = 17 'Gri text Public Const COLOR_BTNTEXT = 18 'Button text Public Const COLOR_INACTIVECAPTIONTEXT = 19 'Inactive pencere rengi Public Const COLOR_BTNHIGHLIGHT = 20 'Butonun 3D isaretlenmesi rengi Aktif pencere title bar rengini degistirmek için : t& = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(255,0,0)) Bu örnek kirmiziya çevirir |
|
#4
| ||||||
| ||||||
| 4 rakamly tarih nasyl kontrol edilir? Public Function ValidDate(MDate) 'Amaç: 4 digitli "yyyy" formatindaki tarihi kontrol etmek; hata var ise kullaniciyi uyarmaktir. 'Input: Texbox'tan string 'Output: True yada False 'Default : False ValidDate = False 'Eger uzunluk "m/d/yyyy" 'den kisa ise fonkiyondan çik If Len(MDate) < 8 Then Exit Function 'Geçerli bir tarih türü girilmemisse terket If IsDate(MDate) = False Then Exit Function 'Sonu "yyyy" ile bitmiyorsa yada baslamiyorsa terket Dim StartDate As String Dim EndDate As String EndDate = Right(MDate, 4) StartDate = Left(MDate, 4) If ValidChar(EndDate, "0123456789") = False And _ ValidChar(StartDate, "0123456789") = False Then Exit Function 'Tüm bu testlerden geçilirse True yükle ValidDate = True End Function Web adresleri nasyl açylyr? 'Asagidaki kodu bir kontrolun click event'ine yaz Dim iRet As Long Dim Cevap As Integer Cevap = MsgBox("www.??.com adresini açmak istiyor musunuz?", vbInformation + vbYesNo, "www.??.com") Select Case Cevap Case vbYes iRet = Shell("start.exe http://www.??.com", vbNormal) Case vbNo Exit Sub End Select Menüye 13x13 bitmaplar nasyl eklenir? 'Bir Picturebox control ekle 'Autosize özelligini 'True' yap unutma: bitmap olacak (Icon degil) 'maximum 13X13 bitmap olmali. 'Asagidaki deklerasyonlari bir Bas modulune ekle: 'Bu örnek VB4 içindir Private Declare Function VarPtr Lib "VB40032.DLL" (variable As Any) As Long Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long Const MF_BYPOSITION = &H400& 'form load event içine asagidaki kodu yerlestir Dim mHandle As Long, lRet As Long, sHandle As Long, sHandle2 As Long mHandle = GetMenu(hwnd) sHandle = GetSubMenu(mHandle, 0) lRet = SetMenuItemBitmaps(sHandle, 0, MF_BYPOSITION, imOpen.Picture, imOpen.Picture) lRet = SetMenuItemBitmaps(sHandle, 1, MF_BYPOSITION, imSave.Picture, imSave.Picture) lRet = SetMenuItemBitmaps(sHandle, 3, MF_BYPOSITION, imPrint.Picture, imPrint.Picture) lRet = SetMenuItemBitmaps(sHandle, 4, MF_BYPOSITION, imPrintSetup.Picture, imPrintSetup.Picture) sHandle = GetSubMenu(mHandle, 1) sHandle2 = GetSubMenu(sHandle, 0) lRet = SetMenuItemBitmaps(sHandle2, 0, MF_BYPOSITION, imCopy.Picture, imCopy.Picture) Çalisma aninda menü nasyl olusturulur? Dim index As Integer index = mnuHook.Count Load mnuHook(index) mnuHook(index).Caption = "New Menu Entry" mnuHook(index).Visible = True 'Yeni girdiler mnuHook 'dan sonra olusur. Ancak unutmayin mnuHook halihazirda varolan bir menü elemanidir. Text nasyl sifrelenir? 'encryption function : Public Function Encrypt(ByVal Plain As String) For I=1 To Len(Plain) Letter=Mid(Plain,I,1) Mid(Plain,I,1)=Chr(Asc(Letter)+1) Next Encrypt = Plain End Sub Public Function Decrypt(ByVal Encrypted As String) For I=1 to Len(Encrypted) Letter=Mid(Encrypted,I,1) Mid(Encrypted,I,1)=Chr(Asc(Letter)-1) Next Decrypt = Encrypted End Sub Print Encrypt("This is just an example") Print Decrypt("Uijt!jt!kvtu!bo!fybnqmf") Form nasyl yavas yavas karartilir? (Fade to black) Sub FormFade(frm As Form) ' Formu yavas yavas karartir For icolVal% = 255 To 0 Step -1 DoEvents frm.BackColor = RGB(icolVal%, icolVal%, icolVal%) Next icolVal% End Sub Formun caption'una nasyl kayan yazy yazylyr? Sub KayanYazi(frm As Form) Dim X As Integer Dim current As Variant Dim Y As String Y = frm.Caption frm.Caption = "" frm.Show For X = 0 To Len(Y) If X = 0 Then frm.Caption = "" current = Timer Do While Timer - current < 0.1 DoEvents Loop GoTo bitti Else: End If frm.Caption = left(Y, X) current = Timer Do While Timer - current < 0.05 DoEvents Loop bitti: Next X End Sub Verilen kredi karti numarasinin geçerli olup olmadigi nasyl anlasilir? 'Asagidaki fonksiyonu bir BAS modulu içine kopyala 'Not: Tüm kredi kartlari belli bir algoritma ile üretilir. Rastgele sayilar bu algoritmaya uymaz. Bu fonksiyon bu hesaplamalari yapar 'Asagidaki Sub bir command butonuna ait olabilir. Kliklendiginde verilen kart numarasini kontrol eder. Sub KartKontrolu_Click ( ) 'KartGecerli degiskeni True olur eger fonksiyon dogru deger çevirirse Dim KartGecerli as Boolean KartGecerli = GecerliKartNumarasimi("4552012301230123") If KartGecerli then Msgbox "Geçerli kart" else Msgbox "Aman dikkat. Bu kart geçersiz!!!" End if End Sub Public Function GecerliKartNumarasimi(ByVal pCardNumber As String) As Boolean Dim CharPos As Integer Dim CheckSum As Integer Dim tChar As String For CharPos = Len(pCardNumber) To 2 Step -2 CheckSum = CheckSum + CInt(Mid(pCardNumber, CharPos, 1)) tChar = CStr((Mid(pCardNumber, CharPos - 1, 1)) * 2) CheckSum = CheckSum + CInt(Left(tChar, 1)) If Len(tChar) > 1 Then CheckSum = CheckSum + CInt(Right(tChar, 1)) Next If Len(pCardNumber) Mod 2 = 1 Then CheckSum = CheckSum + CInt(Left(pCardNumber, 1)) If CheckSum Mod 10 = 0 Then IsValidCreditCardNumber = True Else IsValidCreditCardNumber = False End If End Function Ayin son günü nasyl bulunur? Public Function AyinSonGunu(ByVal GecerliTarih As Date) As Byte Dim SonGun As Byte SonGun = DatePart("d", DateAdd("d", -1, DateAdd("m", 1, _ DateAdd("d", -DatePart("d", GecerliTarih) + 1, Date)))) AyinSonGunu = SonGun End Function Private Sub Command1_Click() MsgBox Date & " tarihine ait ayin son günü : " & AyinSonGunu(Date) End Sub VB6 projeleri VB5'te nasyl açilir? Notepad yada baska bir editör ile VB 6.vbp dosyasini açin ve bu dosyadaki 'Retained = 0' satirini silip dosyayi kaydedin. Artik VB6 projelerini VB5'te açabilirsiniz. MDB veritabanlarinda hataya neden olan Null field degerlerinden nasyl kurtulunur? Default deger olarak Access string alanlari NULL deger tasir (Çift tirnak yani bos string girilmedikçe) Null deger tasiyan bir alani recordset araciligiyla bir string içine kopyalamak istediginizde (sanirim birçogunuz bunu görmüstür) runtime type-mismatch hatasi olusur. Bundan kurtulmanin en kolay yolu & karakteri kullanarak her alan basina çift tirnak (yani bos string) eklemektir. Asagidaki örnek gibi: Dim DB As Database Dim RS As Recordset Dim sAd As String Set DB = OpenDatabase("Test.mdb") Set RS = DB.OpenRecordset("Ad") sAd = "" & RS![Adi Soyadi] ' Adi Soyadi alani içine "" ekleniyor, böylece null deger yokediliyor. Ekran çözünürlügü nasyl bulunur? Genelde ekran çözünürlügüne göre programlarinizdaki nesneleri resize etmek oldukça kullanisli bir yoldur. Ekran çözünürlügünü söyle bulursunuz: Asagidaki kodu form_load'a yazarsanyz her açyly?ta ekran çözünürlü?ünü kontrol eder. Genislik = Screen.Width \ Screen.TwipsPerPixelX Yukseklik = Screen.Height \ Screen.TwipsPerPixelY Ekran_Cozunurlugu = Genislik & "x" & Yukseklik Sonuç asagidaki gibi olur: 800x600 Veritabanina nasyl daha hizli ulasilir? Bir recordset içinde daha hyzly döngü çalystyrmak için bir yol var. Genelde bir çok programcy a?agidaki kodu kullanyr: Do While Not Records.EOF 'Dosya sonuna kadar döngü baslat Combo1.AddItem Records![Firma Adi] 'Combo'ya Records recordset'inin [Firma Adi] adli alanini ekle Records.Movenext 'Bir sonraki kayda git Loop Buradaki problem her defasinda veritabaninin bir sonraki kayda gitmek için dosya sonuna ulasip ulasmadigini kontrol etmek zorunda olmasidir. Bu zorunluluk özellikle çok büyük veritabanlarinda büyük performans kayiplarina neden olur. Çözüm ise önce kayit adedini RecordCount ile bulmak ve For ---- Next döngüsü ile kayit okumaktir : Records.MoveLast ' Recordset'in sonuna giderek kaç adet kayit oldugunu bulmalisiniz. Bu islemin bir kez yapilmasi yeterlidir. KayitSayisi=Records.RecordCount 'Kayyt sayysy bir long de?i?ken içine alyndy Records.MoveFirst 'Ilk kayda gel For i =1 To KayitSayisi '?imdi kayytlary EOF tela?y olmadan birer birer okuyalim Combo1.AddItem Records![Firma Adi] Records.MoveNext Next Y?te size garantili %33'lük performans arty?y Gökkusagi renklerinde text nasyl olusturulur? 1. Standart EXE projesi baslat 2. Asagidaki kodu Form'un Paint proc'una yaz: Sub Form_Paint() Dim I As Integer, X As Integer, Y As Integer Dim C As String Cls For I = 0 To 91 X = CurrentX Y = CurrentY C = Chr(I) Line -(X + TextWidth(C), Y = TextHeight(C)), QBColor(Rnd * 16), BF CurrentX = X CurrentY = Y ForeColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256) Print "Merhaba Basic Programciligi" Next End Sub 3. Projeyi çalistirirsaniz formun degisik renklerde yaziyla kaplandigini görürsünüz. and watch the form fill with lots of multi-coloured text Text kutusundaki bosluklar nasyl yokedilir? Kullanicilarin text kutusuna bosluk karakteri girmelerini engellemek için : Textbox 'un KeyPress olayina asagidaki kodu yaz: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 32 Then KeyAscii = 0 End If End Sub Tek harekette text dosyasi nasyl yüklenir? FileText fonksiyonunu kullanarak istediginiz dosyayi açar ve textbox içine yerlestirirsiniz. Fonksiyonu Bas modulu içine yaz Function FileText (filename$) As String Dim dosya As Integer dosya = FreeFile Open filename$ For Input As #dosya FileText = Input$(LOF( dosya), dosya) Close # dosya End Function Text1.Text = FileText("c:\autoexec.bat") 'Text1 textbox'una tek hamlede autoexec.bat içerigi yüklenir. |
![]() |
| Arama Etiketleri: karisik, kodlar |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| Kodlar | TuzdiyarlilaR | İpuçları | 4 | 16-08-2008 02:25 |
| Html Kodlar Süper Kodlar Burada | becerikliforum | Ücretsiz uzantılı siteler | 0 | 02-07-2008 07:11 |
| Aurelio'nun kafası karışık! | becerikliforum | Spor | 0 | 02-07-2008 06:55 |
| Karışık Karikatürler | Girly™ | Geyik - Komik | 2 | 07-06-2008 01:29 |
| Fıkralar-karışık (alıntıdır) | Girly™ | Geyik - Komik | 3 | 25-05-2008 10:58 |
![]() | ![]() |