Yeni başlayanlar için küçük ipuçları (Yararı olur)

bykzlu-x

Üye
9 Ocak 2008
190
5


Listbox'a degisik renklerde item nasýl eklenir?
MSFlexGrid control kullanýn

Form close butonu nasýl ç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 nasýl 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 nasýl yapýlýr?
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 nasýl yapýlýr?
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 nasýl aranir?
Dim Mystr As String
Mystr = "Hakan"
If Mystr Like "H*" Then
MsgBox "Bulundu"
Else
MsgBox "Bulunamadi"
End If

Her dile uyumlu tarih nasýl formatlanir?
Command1.Caption = Format$(Date, "Short Date")

Uyari isareti olan (X) mesaj kutusu nasýl yapýlýr?
MsgBox "Mesaj Buraya!!", vbCritical, "Önemli"

Içine tab yerlestirebileceginiz text kutulari nasýl yapýlýr?
Bir form içindeki tüm kontrollerin tabstoplarini False'e esitleyin
Text kutulari için kisayol tuslari nasýl belirlenir?
Kisayol tusuna sahip bir label hazirlayin ve label'in tabindex'ini textbox'un tabindexinden
bir asagiya esitleyin.

Command butondan popup menü nasýl yapýlýr?

Ö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 nasýl 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 nasýl 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 nasýl 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 nasýl 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 nasýl kopyalanir?
'Önce clipboard'u temizle
Clipboard.Clear

'Sonra kopyalanacak alani seç ve clipboard'a kopyala
Clipboard.SetText txtBox.Text, vbCFText

Toolbar'in click olayi nasýl 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þý nasýl hesaplanýr?
'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)

4 rakamlý tarih nasýl 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 nasýl açýlýr?
'Asagidaki kodu bir kontrolun click event'ine yaz
Dim iRet As Long
Dim Cevap As Integer

Cevap = MsgBox("www.site.com adresini açmak istiyor musunuz?", vbInformation + vbYesNo, "www.site.com")

Select Case Cevap
Case vbYes
iRet = Shell("start.exe http://www.site.com", vbNormal)
Case vbNo
Exit Sub
End Select

Menüye 13x13 bitmaplar nasýl 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ü nasýl 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 nasýl 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 nasýl 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 nasýl kayan yazý yazýlýr?

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 nasýl 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ü nasýl 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 nasýl 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 nasýl 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ü nasýl 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 yazarsanýz her açýlýþ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 nasýl daha hizli ulasilir?

Bir recordset içinde daha hýzlý döngü çalýstýrmak için bir yol var. Genelde bir çok programcý aþagidaki kodu kullanýr:

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 'Kayýt sayýsý bir long deðiþken içine alýndý
Records.MoveFirst 'Ilk kayda gel

For i =1 To KayitSayisi 'Þimdi kayýtlarý EOF telaþý olmadan birer birer okuyalim
Combo1.AddItem Records![Firma Adi]
Records.MoveNext
Next

Ýþte size garantili %33'lük performans artýþý
Gökkusagi renklerinde text nasýl 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 nasýl 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 nasýl 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.


Windows Control Panel (Denetim masasi) uzantilari VB ile nasýl 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 nasýl 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 nasýl taþýnabilir? (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 nasýl 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 nasýl 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ç) nasýl yapýlýr?

mnu.Caption="-"

Listbox'taki tüm elemanlar nasýl 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 nasýl sayilir?

lItemCount = lstCount.ListItems.Count
Msgbox lItemCount
Form konfetti ile nasýl 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 nasýl ortalanir?

Picture1.Left = (Form1.Width - Picture1.Width) / 2

Clipboard kullanarak bir Picturebox içerigi resim diger bir picturebox'a nasýl 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 nasýl 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 nasýl 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 nasýl iptal edilir?
'Bu örnekte ayrica birden fazla sayfanin nasýl 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 nasýl 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 nasýl ekleme yapýlýr?
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 nasýl 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 nasýl 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 nasýl 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 nasýl 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


Dosya boyutu nasýl ö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 nasýl yanýp 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 nasýl 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 nasýl 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 nasýl 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 alaný nasýl saptanýr?

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 nasýl 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 nasýl 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'ýn rengi nasýl 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

NOT: ALINTIDIR. verildiyse kusura bakmayın arkadaşlar.
 

asi-genc

Yeni üye
19 Ocak 2007
40
0
Dim iRet As Long
Dim Cevap As Integer

Cevap = MsgBox("www.site.com adresini açmak istiyor musunuz?", vbInformation + vbYesNo, "www.site.com")

Select Case Cevap
Case vbYes
iRet = Shell("start.exe http://www.site.com", vbNormal)
Case vbNo
Exit Sub
End Select



bu kodu konrtol edermisin command click olayına yazıyorum ama çalışmıyor :( lütfen yardım et çok işime yarayacak
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.