|
| Visual Basic Kod Paylaşım Merkezi | |
| | |
Yazar | Mesaj |
---|
ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:32 pm | |
| duvar saati yapma - Kod:
-
Option Explicit Dim sn_uzunluk As String Dim sn As Integer Const pi = 22 / 7 Private Sub Form_Load() sn_uzunluk = Form1.ScaleWidth / 2 End Sub Private Sub Timer1_Timer() sn = Format(Time, "s") saniye.X2 = Sin(2 * pi * ((sn * pi / 30) / (2 * pi))) * sn_uzunluk + saniye.X1 saniye.Y2 = -Cos(2 * pi * ((sn * pi / 30) / (2 * pi))) * sn_uzunluk + saniye.Y1 End Sub
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:33 pm | |
| girilen ismi doğrulayan program - Kod:
-
Dim ad As String: Dim tekrak As Integer tekra = 0 ad = InputBox("adınızı giriniz") Do Until ad = "uğur" tekrar = tekrar + 1 If tekrar = 3 Then MsgBox ("üzgünüm deneme hakkın dolmuştur") Exit Do End If MsgBox ("yanlış isim girdiniz") ad = InputBox("adınızı giriniz") Loop msgbox("doğru isim")
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:33 pm | |
| WAV DOSYASI EKLEME - Kod:
-
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Private Sub Command1_Click() sndPlaySound "ringin.wav", 0 End Sub Private Sub form_load() 'windows içerisinde bulunan herhangi bir wav dosyası sndPlaySound "ringin.wav", 5 End Sub
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:33 pm | |
| Encoding & Decoding - Kod:
-
Private Sub Command1_Click() On Error Resume Next a = 0 b = 0 For i = 0 To 255 crypt(i) = b & a enscrypt(i) = (Chr(i)) b = b + 1 If (a <> "a" And a <> "b" And a <> "c" And a <> "d" And a <> "e" And a <> "f") Then a = a + 1 b = b - 1 End If If (a = 10) Or a = "a" Or a = "b" Or a = "c" Or a = "d" Or a = "e" Or a = "f" Then Select Case a Case "a": a = "b" b = b - 1 Case "b": a = "c" b = b - 1 Case "c": a = "d" b = b - 1 Case "d": a = "e" b = b - 1 Case "e": a = "f" b = b - 1 Case "f": a = "0" Case Else: a = "a" End Select End If If b = 9 Then b = 0 End If If b = 9 Then c = 0 End If DoEvents Next 'buraya kadar olan kısımda dizi değişkenlere hash ve karakter değerlerini atadık 'bundan sonrası hashi çözmekte Text2 = "" 'text2 nin içeriğini sildik wq = InStr(1, Text1, "\u00") 'hasin başladığı karakteri aratıp "wq" değişkenine atıyoruz For i = (wq + 3) To wq + Len(Text1) Step 6 'hash standart olduğundan her karakter arası 6 Text1.SelStart = i Text1.SelLength = 2 'hashler 2 karakterde gizli :) For t = 0 To 255 If crypt(t) = Text1.SelText Then inar = t Text2 = Text2 & (enscrypt(t)) Exit For End If Next DoEvents Next End Sub Private Sub Command2_Click() On Error Resume Next a = 0 b = 0 For i = 0 To 255 crypt(i) = b & a enscrypt(i) = (Chr(i)) b = b + 1 If (a <> "a" And a <> "b" And a <> "c" And a <> "d" And a <> "e" And a <> "f") Then a = a + 1 b = b - 1 End If If (a = 10) Or a = "a" Or a = "b" Or a = "c" Or a = "d" Or a = "e" Or a = "f" Then Select Case a Case "a": a = "b" b = b - 1 Case "b": a = "c" b = b - 1 Case "c": a = "d" b = b - 1 Case "d": a = "e" b = b - 1 Case "e": a = "f" b = b - 1 Case "f": a = "0" Case Else: a = "a" End Select End If If b = 9 Then b = 0 End If If b = 9 Then c = 0 End If DoEvents Next 'buraya kadar olan kısım olmsı gerktiği gibi aynısı Text1 = "<script type=" & Chr(34) & "text/javascript" & Chr(34) & ">document.write(" & Chr(39) 'browser'ın okuyabilmesi için js açılış tag'ı For i = 0 To Len(Text2) Text2.SelStart = i Text2.SelLength = 1 'her bir karakteri crypt edeceğiz For t = 0 To 255 If enscrypt(t) = Text2.SelText Then Text1 = Text1 & "\u00" & (crypt(t)) Exit For End If Next DoEvents Next Text1 = Text1 & "')</script>" 'html kodu içinde çalışabilmesi için kapatma js tag'ı End Sub
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:34 pm | |
| Windows u yeni baslat,Kapat, kullaniciyi degistir - Kod:
-
Option Explicit 'API Kullanici tanitma Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, _ nSize As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () _ As Long
Private Declare Function FormatMessage Lib "kernel32" _ Alias "FormatMessageA" (ByVal dwFlags As Long, _ lpSource As Any, ByVal dwMessageId As Long, ByVal _ dwLanguageId As Long, ByVal lpBuffer As String, _ ByVal nSize As Long, Arguments As Long) As Long 'API windows u kapama Private Declare Function ExitWindows Lib "User32" Alias _ "ExitWindowsEx" (ByVal dwOptions As Long, ByVal _ dwReserved As Long) As Long
Const EWX_LOGOFF = 0 Const EWX_SHUTDOWN = 1 Const EWX_REBOOT = 2
Private Sub Form_Load() Dim User$ User = Chr$(34) & User_Name & Chr$(34) If Len(User) > 2 Then Option1.Caption = User & " Cikis" End Sub Private Function User_Name() As String Dim L&,Sonuc&,Hata& Dim User$, Puffer$
'Kullanici ismine erisim User = Space(255) L = 255 Ergebnis = GetUserName(User, L)
If Ergebnis <> 0 Then User_Name = Left$(User, L - 1) Else User_Name = "" End If End Function
Private Sub Command1_Click() If Option1.Value Then 'Kullanici degistirme ExitWindows EWX_LOGOFF, &HFFFF Unload Me ElseIf Option2.Value Then 'Yeniden baslatma ExitWindows EWX_REBOOT, &HFFFF Else 'Kapatma ExitWindows EWX_SHUTDOWN, &HFFFF End If End Sub Private Sub Command2_Click() MsgBox "Neden simdi ?" Unload Me End Sub Private Sub Command3_Click() MsgBox "Artik yardimci olamam !" Unload Me End Sub Excel tablolarının MySQL'e aktarılması Excel Dosyalarını MySQL'e aktarma Merhaba MySQL ve Visual Basic makalelerimin 3'üçüncüsünde Excel dosyalarını MySQL'e aktarmayı anlatmaya çalışacağım Visual Basic'te yeni bir proje açın ve 3 adet Form ekleyin. Form1'in adını ExcelToMysqlAnafrm olarak değiştirin. Form2'nin adını ExcelToMysqltablosecfrm olarak degistirin Form3'ün adını ExcelToMysqlprogressfrm olarak degistirin ExcelToMysqlAnafrm formuna 4 adet Button, 5 adet Text kutusu ve 1 adet Commondialog nesnesi yerleştirin. ExcelToMysqlprogressfrm formuna 1 adet label(adı:labeldurum), ve 1 adet progressbar(adı:progress) yerleştirin. Text kutularından birisini txtMessage olarak değiştirin ve aşağıdaki kodları birinci forma yani ExcelToMysqlanafrm'ye yapıştırın. Projenizle aynı dizin içerisine odbc_info.txt dosyasını boş olarak açın.İleride içerisine Odbc ayarları kaydedilecek. '//////////Kod başlangıcı//////////////// Private Enum StepProcess XLS_SELECTION = 1 ODBC_SETTING = 2 CHECKING_INFO = 3 COMPLETE_PROCESS = 4 End Enum ' Message ayarları Private Const strTitle = "ExcelToMysql" Private Const strExitMsg = "Çıkmak istiyormusunuz?" Private Const strReqDsnMsg = "ODBC ayarlarını girin" Private Const strReqTableMsg = "Tablo adını girmelisin!" Private Const strErrNotExistCols = "Excel dosyasındaki sütunlar ile MySQL tablo sütunları uyuşmuyor!" Private Const strErrNotExistRows = "Excel dosyasındaki satırları ile MySQL tablo satırları uyuşmuyor!" Private Const strNotExistTable = "Tablo veritabanında yok." ' SQL Sorgu Not:Aşağıdaki satırda Html kodunda çizgi yaptığından dolayı ' tırnak koydum. Bu satırdaki tek tırnak işaretlerini kaldırın Private Const SQL_ORIGINAL = "INSERT INTO '<'TABLENAME'> '('<'FIELDSET'>') VALUES '('<'VALUESET'>')" Dim g_step As StepProcess Dim g_excelFilename As String Dim g_DSN As String Dim g_UID As String Dim g_PWD As String Dim g_Table As String Dim g_conn As ADODB.Connection Dim g_rs As ADODB.Recordset Dim xl As Excel.Application Dim xl_worksheet As Excel.Worksheet Dim xl_workbook As Excel.Workbook Public strSelectedTablename As String Private Sub Command1_Click() If g_step = XLS_SELECTION Then CommonDialog.Filter = "Excel Dosyaları|*.xls" CommonDialog.ShowOpen If CommonDialog.FileName = "" Then Exit Sub g_step = ODBC_SETTING g_excelFilename = CommonDialog.FileName Command3.Enabled = True Call ShowTextMessage ElseIf g_step = ODBC_SETTING Then g_DSN = Text1.Text g_UID = Text2.Text g_PWD = Text3.Text g_Table = Text4.Text ' boşluklar kaldırılıyor g_DSN = Trim(g_DSN) g_UID = Trim(g_UID) g_PWD = Trim(g_PWD) g_Table = Trim(g_Table) If Len(g_DSN) = 0 Then MsgBox strReqDsnMsg, vbOKOnly, strTitle Exit Sub ElseIf Len(g_Table) = 0 Then MsgBox strReqTableMsg, vbOKOnly, strTitle Exit Sub End If ' ODBC ayarları kaydediliyor Open App.Path & "\odbc_info.txt" For Output As #1 'ODBC_info txt dosyasına ayarlar kaydediliyor. Print #1, g_DSN Print #1, g_UID Print #1, g_PWD Print #1, g_Table Close #1 g_step = CHECKING_INFO Call ShowTextMessage ElseIf g_step = CHECKING_INFO Then Dim bExistTable As Boolean Dim source As String Dim dummy As String Dim SQL As String Dim SQL_EXECUTION As String Dim status As String Dim cols_count As Long Dim rows_count As Long Dim data_value As String Dim i As Long Dim j As Long Dim myTableName As String source = "DSN=%1%;UID=%2%;PWD=%3%;" source = Replace(source, "%1%", g_DSN) source = Replace(source, "%2%", g_UID) source = Replace(source, "%3%", g_PWD) ' "ADODB" nesnesi oluşturuluyor Set g_conn = CreateObject("ADODB.Connection") Set g_rs = CreateObject("ADODB.Recordset") ' ODBCye bağlanılıyor g_conn.Open source ' tablo kontrol ediliyor SQL_EXECUTION = "show tables" g_rs.Open SQL_EXECUTION, g_conn bExistTable = False Do While Not g_rs.EOF myTableName = CStr(g_rs(0)) If UCase(myTableName) = UCase(g_Table) Then bExistTable = True Exit Do End If g_rs.MoveNext Loop g_rs.Close If bExistTable = False Then MsgBox strNotExistTable, vbOKOnly, strTitle xl.ActiveWorkbook.Close savechanges:=False xl.Quit g_conn.Close Set g_rs = Nothing Set g_conn = Nothing Exit Sub End If exceltoMysqlProgressfrm.Show Set xl = CreateObject("excel.application") xl.Workbooks.Open g_excelFilename xl.Visible = False On Error GoTo handler 'Burası excelin ilk sayfasını dikkate alıyor. Siz sayfa ismi veya başka bir sıra vermek isterseniz xl.(Worksheets(1) kısmını 'sayfa2 veya (2) diye değiştirebilirsiniz. Set xl_worksheet = xl.Worksheets(1) cols_count = GetColumnCount rows_count = GetRowsCount If cols_count = 0 Then MsgBox strErrNotExistCols, vbOKOnly, strTitle xl.ActiveWorkbook.Close savechanges:=False xl.Quit Set xl = Nothing Set xl_worksheet = Nothing Exit Sub End If If rows_count < 2 Then MsgBox strErrNotExistRows, vbOKOnly, strTitle xl.ActiveWorkbook.Close savechanges:=False xl.Quit Set xl = Nothing Set xl_worksheet = Nothing Exit Sub End If dummy = "" For j = 1 To cols_count dummy = dummy & xl_worksheet.Cells(1, j) & "," Next If Not dummy = "" Then dummy = Left(dummy, Len(dummy) - 1) End If SQL = SQL_ORIGINAL SQL = Replace(SQL, "", g_Table) Not:Aşağıdaki satırda Html kodunda çizgi yaptığından dolayı ' tırnak koydum. Bu satırdaki kelimesindeki tek tırnak işaretlerini kaldırın SQL = Replace(SQL, " ", dummy) DoEvents exceltoMysqlProgressfrm.Progress.Min = 2 exceltoMysqlProgressfrm.Progress.Max = rows_count + 1 For i = 2 To rows_count SQL_EXECUTION = SQL dummy = "" For j = 1 To cols_count Debug.Print "*" data_value = xl_worksheet.Cells(i, j) Debug.Print data_value data_value = Replace(data_value, "'", "''") dummy = dummy & "'" & data_value & "'," Next If Not dummy = "" Then dummy = Left(dummy, Len(dummy) - 1) End If SQL_EXECUTION = Replace(SQL_EXECUTION, "", dummy) status = SQL_EXECUTION If Len(status) > 100 Then status = Left(status, 100) End If exceltoMysqlProgressfrm.labeldurum.Caption = "İşlem : " & status exceltoMysqlProgressfrm.labProgress.Caption = FormatPercent(i / rows_count) exceltoMysqlProgressfrm.Progress.Value = i + 1 Debug.Print SQL_EXECUTION g_conn.Execute SQL_EXECUTION Next g_conn.Close Set g_conn = Nothing Set g_rs = Nothing xl.ActiveWorkbook.Close savechanges:=False xl.Quit Unload exceltoMysqlProgressfrm 'İşlem Tamamlandı g_step = COMPLETE_PROCESS Call ShowTextMessage Command3.Enabled = False Command1.Caption = "Kapat" Command2.Visible = False ElseIf g_step = COMPLETE_PROCESS Then 'End Unload Me End If Exit Sub handler: MsgBox Err.Description, vbCritical + vbOKOnly, "Error Message" xl.ActiveWorkbook.Close savechanges:=False xl.Quit Unload exceltoMysqlProgressfrm End Sub Private Sub Command2_Click() If MsgBox(strExitMsg, vbYesNo, strTitle) = vbYes Then Unload Me End If End Sub Private Sub Command3_Click() If g_step = ODBC_SETTING Then Command3.Enabled = False g_step = XLS_SELECTION ElseIf g_step = CHECKING_INFO Then g_step = ODBC_SETTING ElseIf g_step = COMPLETE_PROCESS Then g_step = CHECKING_INFO End If Call ShowTextMessage End Sub Private Sub Command4_Click() Dim source As String g_DSN = Text1.Text g_UID = Text2.Text g_PWD = Text3.Text If Len(g_DSN) = 0 Then MsgBox strReqDsnMsg, vbOKOnly, strTitle Exit Sub End If source = "DSN=%1%;UID=%2%;PWD=%3%;" source = Replace(source, "%1%", g_DSN) source = Replace(source, "%2%", g_UID) source = Replace(source, "%3%", g_PWD) Load exceltoMysqltablosecfrm If exceltoMysqltablosecfrm.LoadTableList(source) = True Then exceltoMysqltablosecfrm.Show 1 Text4.Text = strSelectedTablename End If Unload exceltoMysqltablosecfrm End Sub Private Sub Form_Load() g_step = XLS_SELECTION Call ShowTextMessage If Not Dir(App.Path & "\odbc_info.txt") = "" Then Open App.Path & "\odbc_info.txt" For Input As #1 Input #1, g_DSN Input #1, g_UID Input #1, g_PWD Input #1, g_Table Close #1 Text1.Text = g_DSN Text2.Text = g_UID Text3.Text = g_PWD Text4.Text = g_Table End If End Sub Private Sub ShowTextMessage() If g_step = XLS_SELECTION Then txtMessage.Text = "İleri düğmesini tıklayın ve kaynak Excel dosyasını seçin. Not: Excel dosyasının ilk sayfası dikkate alınacaktır." ElseIf g_step = ODBC_SETTING Then txtMessage.Text = g_excelFilename & " seçildi. " & vbCrLf & " Şimdi ODBC bağlantı ayarlarını yapın. " ElseIf g_step = CHECKING_INFO Then txtMessage.Text = "Bilgilerin doğruluğunu kontrol edin." & vbCrLf & vbCrLf txtMessage.Text = txtMessage.Text & "Excel : " & g_excelFilename & vbCrLf txtMessage.Text = txtMessage.Text & "ODBC : Database adı <%1%> / Kullanıcı adı <%2%> / Şifre <%3%>" txtMessage.Text = txtMessage.Text & vbCrLf & vbCrLf txtMessage.Text = txtMessage.Text & "İleri düğmesini tıklayın. " txtMessage.Text = Replace(txtMessage.Text, "%1%", g_DSN) txtMessage.Text = Replace(txtMessage.Text, "%2%", g_UID) txtMessage.Text = Replace(txtMessage.Text, "%3%", g_PWD) ElseIf g_step = COMPLETE_PROCESS Then txtMessage.Text = "İşlem tamamlandı!" End If End Sub Private Function GetColumnCount() As Long Dim i As Long Dim cols_count As Long Dim xl_worksheet As Excel.Worksheet Set xl_worksheet = xl.Worksheets(1) For i = 1 To xl_worksheet.Columns.Count If Not xl_worksheet.Cells(1, i) = "" Then cols_count = cols_count + 1 End If Next GetColumnCount = cols_count End Function Private Function GetRowsCount() As Long Dim i As Long Dim cols_count As Long Dim xl_worksheet As Excel.Worksheet Set xl_worksheet = xl.Worksheets(1) For i = 1 To xl_worksheet.Columns.Count If Not xl_worksheet.Cells(1, i) = "" Then cols_count = cols_count + 1 End If Next Dim j As Long Dim rows_count As Long Dim dummy As String For i = 1 To xl_worksheet.Rows.Count dummy = "" For j = 1 To cols_count dummy = dummy & xl_worksheet.Cells(i, j) Next If dummy = "" Then Exit For Else rows_count = rows_count + 1 End If Next GetRowsCount = rows_count End Function
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:34 pm | |
| formu yakıp söndürmek için gereken kodlar - Kod:
-
Private Sub Timer1_Timer() If Me.Visible = True Then Me.Visible = False Else Me.Visible = True End If End Sub Private Sub Command1_Click() ' That value for duration 1000 = 1 second Timer1.Interval = 1000 End Sub
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:36 pm | |
| Visual basic'te winamp kontrol - Kod:
-
'Projede Kullanılacak DLL user32.dll 'Function İse SendMessage(),PostMessage 'Projede Kullanılacak sabitler Public Const WM_COMMAND = &H111 Public Const WM_USER = &H400 Public Const WM_WA_IPC = WM_USER Public Const IPC_GETVERSION = 0 Public Const IPC_PLAYFILE = 100 Public Const IPC_DELETE = 101 Public Const IPC_STARTPLAY = 102 Public Const IPC_CHDIR = 103 Public Const IPC_ISPLAYING = 104 Public Const IPC_GETOUTPUTTIME = 105 Public Const IPC_JUMPTOTIME = 106 Public Const IPC_WRITEPLAYLIST = 120 Public Const IPC_SETPLAYLISTPOS = 121 Public Const IPC_SETVOLUME = 122 Public Const IPC_SETPANNING = 123 Public Const IPC_GETLISTLENGTH = 124
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:36 pm | |
| WinApi Kullanarak MouseOver Efekti ... - Kod:
-
'Project : MouseOver 'Form : frmMain '...CommandButton : btnMain 'Module : mdlMain 'Form->Name = frmMain 'CommandButton->Name = btnName 'CommandButton->Style = Graphical 'frmMain Code '------------ Option Explicit Private Sub Form_Load() With Me.btnMain .BackColor = &H800000& .Caption = vbNullString End With BtnProc = SetWindowLong(Me.btnMain.hWnd, (-4), AddressOf ButtonProc) End Sub Private Sub btnMain_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim TMEType As TRACKMOUSEEVENTTYPE If Button <> 0 Then Exit Sub End If If Me.btnMain.BackColor = &HFFFF& Then Exit Sub End If Me.btnMain.BackColor = &HFFFF& With TMEType .cbSize = Len(TMEType) .dwFlags = TME_LEAVE .hwndTrack = Me.btnMain.hWnd End With TrackMouseEvent TMEType End Sub Private Sub Form_Unload(Cancel As Integer) SetWindowLong Me.btnMain.hWnd, (-4), BtnProc End Sub 'mdlMain Code '------------ Option Explicit Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function TrackMouseEvent Lib "user32" (lpEventTrack As TRACKMOUSEEVENTTYPE) As Long Public Const WM_MOUSELEAVE As Long = &H2A3 Public Const TME_LEAVE = &H2 Public Type TRACKMOUSEEVENTTYPE cbSize As Long dwFlags As Long hwndTrack As Long dwHoverTime As Long End Type Public BtnProc As Long Public Function ButtonProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If uMsg = WM_MOUSELEAVE Then frmMain.btnMain.BackColor = &H800000& End If ButtonProc = CallWindowProc(BtnProc, hWnd, uMsg, wParam, lParam) End Function
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Kayıt tarihi : 24/04/09
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:37 pm | |
| windows hesap makinesini çalıştırma - Kod:
-
Private Sub Command1_Click() Call Shell("calc.exe", 1) End Sub
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Cuma Mayıs 01, 2009 8:37 pm | |
| WİNKEY'i kilitleme - NOT Tehlikelidir. Dikkat. - Kod:
-
Private Const VK_H = 72 Private Const KEYEVENTF_KEYUP = &H2 Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 91 Or KeyCode = 92 Then 'if winkey keybd_event VK_H, 0, 0, 0 ' press H keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H End If End Sub
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 6:53 am | |
| Dogum gününden kişinin yaşı nasıl hesaplanır - Kod:
-
'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)
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 6:58 am | |
| Toolbar'in click olayi nasıl kodlanir - Kod:
-
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
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 6:59 am | |
| 4 rakamlı tarih nasıl kontrol edilir - Kod:
-
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
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 6:59 am | |
| Hata kontrol blokları nasıl denetlenir - Kod:
-
On Error GoTo HataKontrol 'Buraya program kodlarini gir. Buradan sonrasi artik hata denetimine açiktir. 'Hata kontrolundan çikmak istersen 0 (sifir) a git On Error GoTo 0 : Exit Function ' ve fonksiyonu terket :HataKontrol Dim strErr As String 'Kullaniciya olusan hata ve tanimini ver strErr = "Hata olustu: " & Err.Number & " " & Err.Description MsgBox strErr, vbCritical + vbOK, "Hata!"
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:00 am | |
| Web adresleri nasıl açılır - Kod:
-
'Asagidaki kodu bir kontrolun click event'ine yaz Dim iRet As Long Dim Cevap As Integer Cevap = MsgBox("htwww.extra.yetkin-forum.com adresini açmak istiyor musunuz?", vbInformation + vbYesNo, " [Linkleri görebilmek için üye olun veya giriş yapın.]Select Case Cevap Case vbYes iRet = Shell("start.exe http://www.extra.yetkin-forum.com", vbNormal) Case vbNo Exit Sub End Select | |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:00 am | |
| Menüye 13x13 bitmaplar nasıl eklenir - Kod:
-
'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)
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:00 am | |
| Çalisma aninda menü nasıl olusturulur - Kod:
-
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.
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:01 am | |
| Text nasıl sifrelenir - Kod:
-
'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")
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:01 am | |
| Form nasıl yavas yavas karartilir - Kod:
-
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
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:01 am | |
| Formun caption'una nasıl kayan yazı yazılır - Kod:
-
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
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:01 am | |
| Verilen kredi karti numarasinin geçerli olup olmadigi nasıl anlasilir - Kod:
-
'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
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:02 am | |
| Ayin son günü nasıl bulunur - Kod:
-
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
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:02 am | |
| 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. | |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:02 am | |
| MDB veritabanlarinda hataya neden olan Null field degerlerinden nasıl kurtulunur - Kod:
-
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.
| |
| | | ßLinKo Geveze KO Team
Mesaj Sayısı : 254 Nerden : •4NK4R4• Kayıt tarihi : 24/04/09 Rep Puanı : 36
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi C.tesi Mayıs 02, 2009 7:02 am | |
| 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 | |
| | | 0 ®h Negatif Sponsor
Mesaj Sayısı : 328 Nerden : Visual Basic'ten Kayıt tarihi : 22/04/09 Rep Puanı : 19
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Perş. Mayıs 07, 2009 5:52 pm | |
| | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:25 pm | |
| Sihirbazı (Merlin) KAFAYI ÇEVİR Dim merlin As IAgentCtlCharacterEx Const DATAPATH = "merlin.acs" Private Sub Command1_Click() merlin.Play "Idle1_4" End Sub Private Sub Form_Load() Agent1.Characters.Load "merlin.acs", DATAPATH Set merlin = Agent1.Characters("merlin.acs") merlin.LanguageID = &H409 merlin.Show 'MERLİNİ GÖSTERİR ' [Linkleri görebilmek için üye olun veya giriş yapın.]End Sub ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:25 pm | |
| Cool Unloading - Kod:
-
'Daha önce hiç böyle bir Unload Gördünüzmü..!! 'Alin size insanoglunun geldigi son nokta :-)) 'Standart Form UnLoad Clicklerinden bikanlara güzel bir kod. 'Asagida belirttigim gibi (+,-) ayarlarini kendi göz 'zevkinize göre degistirebilirsiniz... '****************************************************************************** 'Burdan Copy/Paste yapin... Private Sub Form_Unload(Cancel As Integer) On Error Resume Next Me.WindowState = 0 Do Me.Top = Me.Top + 10 Me.Left = Me.Left + 10 Me.Width = Me.Width - 20 Me.Height = Me.Height - 20 'Üstteki (+,-) ayarlari Formunuzun küçülerek 'kapanacagi yönü, hizini ve Kapanma boyutunu 'gösterir. Kendi göz zevkinize göre degistirebilirsiniz. 'Deneye deneye güsel bir Unload yapabilirsiniz... Loop Until Me.Top = Screen.Height End Sub
________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:26 pm | |
| MSFlexGrid Kullanımı - Kod:
-
Private Sub Form_Load() Msflexgrid1.cols = 8 Msflexgrid1.rows = 8 End Sub
Burada görüldügü üzere 9*9'luk bir çalışma tablosu oluşturduk. obje.cols , sütün sayısını obje.rows ise sıra sayısını belirtir. Peki diyeceksiniz ki :"Oraya 8 yazmışsın,ama 9*9'luk bir tablo oluºtu. Neden?" Nedeni açık,eğer listbox ile çalıştıysanız,o halde liste sayı sırasının 1 değil 0 dan başladığını fark etmişsinizdir. İşte MS Flex Grid Kontrolü'nde durum böyledir. ªimdi gelelim fasulyenin dezavantajlarina: - Kod:
-
Private Sub Form_Load() Msflexgrid1.col = 0 Msflexgrid1.row = 5 Msflexgrid1.Text= "Ahmet" End Sub
Ne demek bu? Baºlangiç sütunu ile 4.siramim kesiºtigi yerin yazisi Ahmet olacak. Bir de olayin içine döngü sokalim. - Kod:
-
Dim dön1 'döngü için tanıttık Private Sub Form_Load() For dön1 = 0 to 5 'sütün sayısı 0 ila 5 arası For dön2 = 0 to 2 'sıra sayısı 0 ila 2 arası Msflexgrid1.col = dön1 Msflexgrid1.row = dön2 Msflexgrid1.Text = "Ahmet" '6*3 lük bir alandaki bütün hücrelerin içeriği Ahmet oldu Next dön2 'döngüye devam Next dön1 End Sub
________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:28 pm | |
| 3D Oyunlara Hazır mısınız ? (OPEN GL) Bu Programimiz icin oncelikle yapmaniz gerekenler ..: 1. Visual Basic Menusunden Project --> References Bolumunden --- VB OpenGL API 1.2(ANSI) Secenegini Activ Kiliniz. 2. Bir Form ismi Form1 bir Modul ismi Module1 ve bir de Timer ismi Timer1 ihtiyacimiz var. - Kod:
-
'Forma Yazilacak Kisim Burdan itibaren Baslamaktadir....(Copy Paste yapsaniz yeterli olur.) 'Yardim ve Bilgi icin lutfen bana yaziniz... 'SessizAdam ' [Linkleri görebilmek için üye olun veya giriş yapın.]Option Explicit Dim xAngle As GLfloat Dim yAngle As GLfloat Dim zAngle As GLfloat Dim YScale As Long Dim XScale As Long Private Sub Form_Load() Dim hGLRC As Long Dim fAspect As GLfloat Call InitializeArrays Form1.ScaleMode = 3 xAngle = 0 yAngle = 0 zAngle = 0 SetupPixelFormat hDC hGLRC = wglCreateContext(hDC) wglMakeCurrent hDC, hGLRC glEnable GL_DEPTH_TEST glEnable GL_DITHER glDepthFunc GL_LESS glClearDepth 1 glClearColor 0, 0, 0, 0 glMatrixMode GL_PROJECTION glLoadIdentity If Form1.ScaleHeight > 0 Then fAspect = Form1.ScaleWidth / Form1.ScaleHeight Else fAspect = 0 End If gluPerspective 60, fAspect, 1, 2000 glViewport 0, 0, Form1.ScaleWidth, Form1.ScaleHeight glMatrixMode GL_MODELVIEW glLoadIdentity glLightfv GL_LIGHT0, GL_POSITION, LightPos(0) glEnable GL_LIGHTING glEnable GL_LIGHT0 glShadeModel GL_SMOOTH glFrontFace GL_CCW glMaterialfv GL_FRONT, GL_SPECULAR, SpecRef(0) glMateriali GL_FRONT, GL_SHININESS, 50 BuildCube Form_Paint End Sub Private Sub Form_Paint() Dim i As Integer Dim a As Integer Dim b As Integer Dim c As Integer glLoadIdentity gluLookAt m_Translate_X, m_Translate_Y, m_Translate_Z, m_Translate_X + (100# * (Cos(m_camera_radsFromEast))), m_Translate_Y + m_camera_direction_y, m_Translate_Z - (100# * Sin(m_camera_radsFromEast)), 0#, 1#, 0# glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT glPushMatrix glTranslatef 0, 0, -3 glRotatef xAngle, 0.1, 0, 0 glRotatef yAngle, 0, 0.1, 0 glRotatef zAngle, 0, 0, 1 glCallList m_Cube glPopMatrix glPushMatrix glTranslatef 0, -2, 0 glPopMatrix SwapBuffers hDC End Sub Private Sub Form_Resize() glViewport 0, 0, Form1.ScaleWidth, Form1.ScaleHeight Form_Paint End Sub Private Sub Form_Unload(Cancel As Integer) If hGLRC <> 0 Then wglMakeCurrent 0, 0 wglDeleteContext hGLRC End If If hPalette <> 0 Then DeleteObject hPalette End If End Sub Sub BuildCube() Dim i As Integer Dim a As Integer Dim b As Integer Dim c As Integer m_Cube = glGenLists(1) glNewList m_Cube, GL_COMPILE_AND_EXECUTE For i = 0 To TRIANGLE_COUNT - 1 a = index(i, 0) b = index(i, 1) c = index(i, 2) Call RenderTriangle(a, b, c) Next glEnd glEndList End Sub Private Sub Timer1_Timer() YScale = YScale + 1 XScale = XScale + 1 yAngle = YScale xAngle = XScale If YScale = 359 Then YScale = 0 XScale = 0 End If Form_Paint End Sub 'Forma Yazilacak Kisim Burda Sona erdi (Umarim Copy Paste Yapmissinizdir.) MODÜLE İSE: - Kod:
-
Option Explicit Private Type PALETTEENTRY peRed As Byte peGreen As Byte peBlue As Byte peFlags As Byte End Type Private Type LOGPALETTE palVersion As Integer palNumEntries As Integer palPalEntry(0 To 255) As PALETTEENTRY End Type Private Type PIXELFORMATDESCRIPTOR nSize As Integer nVersion As Integer dwFlags As Long iPixelType As Byte cColorBits As Byte cRedBits As Byte cRedShift As Byte cGreenBits As Byte cGreenShift As Byte cBlueBits As Byte cBlueShift As Byte cAlphaBits As Byte cAlphaShift As Byte cAccumBits As Byte cAccumRedBits As Byte cAccumGreenBits As Byte cAccumBlueBits As Byte cAccumAlpgaBits As Byte cDepthBits As Byte cStencilBits As Byte cAuxBuffers As Byte iLayerType As Byte bReserved As Byte dwLayerMask As Long dwVisibleMask As Long dwDamageMask As Long End Type Const PFD_TYPE_RGBA = 0 Const PFD_TYPE_COLORINDEX = 1 Const PFD_MAIN_PLANE = 0 Const PFD_DOUBLEBUFFER = 1 Const PFD_DRAW_TO_WINDOW = &H4 Const PFD_SUPPORT_OPENGL = &H20 Const PFD_NEED_PALETTE = &H80 Private Declare Function ChoosePixelFormat Lib "gdi32" (ByVal hDC As Long, pfd As PIXELFORMATDESCRIPTOR) As Long Private Declare Function CreatePalette Lib "gdi32" (pPal As LOGPALETTE) As Long Private Declare Sub DeleteObject Lib "gdi32" (hObject As Long) Private Declare Sub DescribePixelFormat Lib "gdi32" (ByVal hDC As Long, ByVal PixelFormat As Long, ByVal nBytes As Long, pfd As PIXELFORMATDESCRIPTOR) Private Declare Function GetDC Lib "gdi32" (ByVal hWnd As Long) As Long Private Declare Function GetPixelFormat Lib "gdi32" (ByVal hDC As Long) As Long Private Declare Sub GetSystemPaletteEntries Lib "gdi32" (ByVal hDC As Long, ByVal start As Long, ByVal entries As Long, ByVal ptrEntries As Long) Private Declare Sub RealizePalette Lib "gdi32" (ByVal hPalette As Long) Private Declare Sub SelectPalette Lib "gdi32" (ByVal hDC As Long, ByVal hPalette As Long, ByVal bln As Long) Private Declare Function SetPixelFormat Lib "gdi32" (ByVal hDC As Long, ByVal i As Long, pfd As PIXELFORMATDESCRIPTOR) As Boolean Private Declare Sub SwapBuffers Lib "gdi32" (ByVal hDC As Long) Private Declare Function wglCreateContext Lib "OpenGL32" (ByVal hDC As Long) As Long Private Declare Sub wglDeleteContext Lib "OpenGL32" (ByVal hContext As Long) Private Declare Sub wglMakeCurrent Lib "OpenGL32" (ByVal l1 As Long, ByVal l2 As Long) Public hPalette As Long Public hGLRC As Long Public LightPos(3) As GLfloat Public SpecRef(3) As GLfloat Public Diffuse(3) As GLfloat Public Const TRIANGLE_COUNT = 12 Public vdata(23, 2) As GLfloat Public vcolor(23, 2) As GLfloat Public index(TRIANGLE_COUNT, 3) As GLfloat Public m_Grid As Integer Public m_Cube As Integer Public m_Translate_X As Integer Public m_Translate_Y As Integer Public m_Translate_Z As Integer Public m_camera_radsFromEast As GLfloat Public m_translationUnit As Double Public m_camera_direction_y As Integer Sub FatalError(ByVal strMessage As String) MsgBox "Fatal Error: " & strMessage, vbCritical + vbApplicationModal + vbOKOnly + vbDefaultButton1, "Fatal Error In " & App.Title Unload frmMain Set frmMain = Nothing End End Sub Sub SetupPixelFormat(ByVal hDC As Long) Dim pfd As PIXELFORMATDESCRIPTOR Dim PixelFormat As Integer pfd.nSize = Len(pfd) pfd.nVersion = 1 pfd.dwFlags = PFD_SUPPORT_OPENGL Or PFD_DRAW_TO_WINDOW Or PFD_DOUBLEBUFFER Or PFD_TYPE_RGBA pfd.iPixelType = PFD_TYPE_RGBA pfd.cColorBits = 24 pfd.cDepthBits = 24 pfd.iLayerType = PFD_MAIN_PLANE PixelFormat = ChoosePixelFormat(hDC, pfd) If PixelFormat = 0 Then FatalError "Could not retrieve pixel format!" SetPixelFormat hDC, PixelFormat, pfd End Sub Sub SetupPalette(ByVal lhDC As Long) Dim PixelFormat As Long Dim pfd As PIXELFORMATDESCRIPTOR Dim pPal As LOGPALETTE Dim PaletteSize As Long PixelFormat = GetPixelFormat(lhDC) DescribePixelFormat lhDC, PixelFormat, Len(pfd), pfd If (pfd.dwFlags And PFD_NEED_PALETTE) <> 0 Then PaletteSize = 2 ^ pfd.cColorBits Else Exit Sub End If pPal.palVersion = &H300 pPal.palNumEntries = PaletteSize Dim redMask As Long Dim GreenMask As Long Dim BlueMask As Long Dim i As Long redMask = 2 ^ pfd.cRedBits - 1 GreenMask = 2 ^ pfd.cGreenBits - 1 BlueMask = 2 ^ pfd.cBlueBits - 1 For i = 0 To PaletteSize - 1 With pPal.palPalEntry(i) .peRed = i .peGreen = i .peBlue = i .peFlags = 0 End With Next GetSystemPaletteEntries frmMain.hDC, 0, 256, VarPtr(pPal.palPalEntry(0)) hPalette = CreatePalette(pPal) If hPalette <> 0 Then SelectPalette lhDC, hPalette, False RealizePalette lhDC End If End Sub Public Sub InitializeArrays() m_Translate_X = 0 m_Translate_Z = 5 m_translationUnit = 1 m_camera_direction_y = 0 m_camera_radsFromEast = 1.56 LightPos(0) = 0 LightPos(1) = 2 LightPos(2) = 2 LightPos(3) = 1 SpecRef(0) = 1# SpecRef(1) = 0# SpecRef(2) = 0# SpecRef(3) = 1# 'Front (0-3) vdata(0, 0) = 1 vdata(0, 1) = 1 vdata(0, 2) = 1 vdata(1, 0) = 1 vdata(1, 1) = -1 vdata(1, 2) = 1 vdata(2, 0) = -1 vdata(2, 1) = -1 vdata(2, 2) = 1 vdata(3, 0) = -1 vdata(3, 1) = 1 vdata(3, 2) = 1 'back (4-7) vdata(4, 0) = 1# vdata(4, 1) = 1# vdata(4, 2) = -1# vdata(5, 0) = 1# vdata(5, 1) = -1# vdata(5, 2) = -1# vdata(6, 0) = -1# vdata(6, 1) = -1# vdata(6, 2) = -1# vdata(7, 0) = -1# vdata(7, 1) = 1# vdata(7, 2) = -1# 'right (8-11) vdata(8, 0) = 1# vdata(8, 1) = 1# vdata(8, 2) = 1# vdata(9, 0) = 1# vdata(9, 1) = 1# vdata(9, 2) = -1# vdata(10, 0) = 1# vdata(10, 1) = -1# vdata(10, 2) = -1# vdata(11, 0) = 1# vdata(11, 1) = -1# vdata(11, 2) = 1# 'left (12-15) vdata(12, 0) = -1# vdata(12, 1) = 1# vdata(12, 2) = 1# vdata(13, 0) = -1# vdata(13, 1) = 1# vdata(13, 2) = -1# vdata(14, 0) = -1# vdata(14, 1) = -1# vdata(14, 2) = -1# vdata(15, 0) = -1# vdata(15, 1) = -1# vdata(15, 2) = 1# 'Top (16-20) vdata(16, 0) = 1# vdata(16, 1) = 1# vdata(16, 2) = 1# vdata(17, 0) = 1# vdata(17, 1) = 1# vdata(17, 2) = -1# vdata(18, 0) = -1# vdata(18, 1) = 1# vdata(18, 2) = -1# vdata(19, 0) = -1# vdata(19, 1) = 1# vdata(19, 2) = 1# 'Botton vdata(20, 0) = 1# vdata(20, 1) = -1# vdata(20, 2) = 1# vdata(21, 0) = 1# vdata(21, 1) = -1# vdata(21, 2) = -1# vdata(22, 0) = -1# vdata(22, 1) = -1# vdata(22, 2) = -1# vdata(23, 0) = -1# vdata(23, 1) = -1# vdata(23, 2) = 1# 'Index 'front index(0, 0) = 0 index(0, 1) = 1 index(0, 2) = 2 index(1, 0) = 0 index(1, 1) = 2 index(1, 2) = 3 'Back index(2, 0) = 4 index(2, 1) = 6 index(2, 2) = 5 index(3, 0) = 4 index(3, 1) = 7 index(3, 2) = 6 'Right index(4, 0) = 8 index(4, 1) = 9 index(4, 2) = 10 index(5, 0) = 8 index(5, 1) = 10 index(5, 2) = 11 'Left index(6, 0) = 12 index(6, 1) = 14 index(6, 2) = 13 index(7, 0) = 12 index(7, 1) = 15 index(7, 2) = 14 'Top index(8, 0) = 16 index(8, 1) = 18 index(8, 2) = 17 index(9, 0) = 16 index(9, 1) = 19 index(9, 2) = 18 'Bottom index(10, 0) = 20 index(10, 1) = 21 index(10, 2) = 22 index(11, 0) = 20 index(11, 1) = 22 index(11, 2) = 23 'Color 'front vcolor(0, 0) = 1 vcolor(0, 1) = 1 vcolor(0, 2) = 1 vcolor(1, 0) = 1 vcolor(1, 1) = 0 vcolor(1, 2) = 1 vcolor(2, 0) = 0 vcolor(2, 1) = 0 vcolor(2, 2) = 1 vcolor(3, 0) = 0 vcolor(3, 1) = 1 vcolor(3, 2) = 1 'back vcolor(4, 0) = 1# vcolor(4, 1) = 1# vcolor(4, 2) = 0# vcolor(5, 0) = 1# vcolor(5, 1) = 0# vcolor(5, 2) = 0# vcolor(6, 0) = 0# vcolor(6, 1) = 0# vcolor(6, 2) = 0# vcolor(7, 0) = 0# vcolor(7, 1) = 1# vcolor(7, 2) = 0# 'right vcolor(8, 0) = 1# vcolor(8, 1) = 1# vcolor(8, 2) = 1# vcolor(9, 0) = 1# vcolor(9, 1) = 1# vcolor(9, 2) = 0# vcolor(10, 0) = 1# vcolor(10, 1) = 0# vcolor(10, 2) = 0# vcolor(11, 0) = 1# vcolor(11, 1) = 0# vcolor(11, 2) = 1# 'left vcolor(12, 0) = 0# vcolor(12, 1) = 0.1 vcolor(12, 2) = 1# vcolor(13, 0) = 0# vcolor(13, 1) = 1# vcolor(13, 2) = 0# vcolor(14, 0) = 0# vcolor(14, 1) = 0# vcolor(14, 2) = 0# vcolor(15, 0) = 0# vcolor(15, 1) = 0# vcolor(15, 2) = 1# 'Top vcolor(16, 0) = 1# vcolor(16, 1) = 1# vcolor(16, 2) = 1# vcolor(17, 0) = 1# vcolor(17, 1) = 1# vcolor(17, 2) = 0# vcolor(18, 0) = 0# vcolor(18, 1) = 1# vcolor(18, 2) = 0# vcolor(19, 0) = 0# vcolor(19, 1) = 1# vcolor(19, 2) = 1# 'Bottom vcolor(20, 0) = 1# vcolor(20, 1) = 0# vcolor(20, 2) = 1# vcolor(21, 0) = 1# vcolor(21, 1) = 0# vcolor(21, 2) = 0# vcolor(22, 0) = 0# vcolor(22, 1) = 0# vcolor(22, 2) = 0# vcolor(23, 0) = 0# vcolor(23, 1) = 0# vcolor(23, 2) = 1# End Sub Public Sub RenderTriangle(a As Integer, b As Integer, c As Integer) Dim x1 As GLfloat Dim y1 As GLfloat Dim z1 As GLfloat Dim lRC As Long Dim x2 As GLfloat Dim y2 As GLfloat Dim z2 As GLfloat Dim x3 As GLfloat Dim y3 As GLfloat Dim z3 As GLfloat Dim v1(3) As GLfloat Dim v2(3) As GLfloat Dim v3(3) As GLfloat Dim v(3) As GLfloat Dim w(3) As GLfloat Dim out(3) As GLfloat Dim r1 As GLfloat Dim g1 As GLfloat Dim b1 As GLfloat Dim r2 As GLfloat Dim g2 As GLfloat Dim b2 As GLfloat Dim r3 As GLfloat Dim g3 As GLfloat Dim b3 As GLfloat b1 = vcolor(a, 1) g1 = vcolor(a, 2) r2 = vcolor(b, 0) b2 = vcolor(b, 1) g2 = vcolor(b, 2) r3 = vcolor(c, 0) b3 = vcolor(c, 1) g3 = vcolor(c, 2) v1(0) = vdata(a, 0) v1(1) = vdata(a, 1) v1(2) = vdata(a, 2) x1 = vdata(a, 0) y1 = vdata(a, 1) z1 = vdata(a, 2) v2(0) = vdata(b, 0) v2(1) = vdata(b, 1) v2(2) = vdata(b, 2) x2 = vdata(b, 0) y2 = vdata(b, 1) z2 = vdata(b, 2) v3(0) = vdata(c, 0) v3(1) = vdata(c, 1) v3(2) = vdata(c, 2) x3 = vdata(c, 0) y3 = vdata(c, 1) z3 = vdata(c, 2) '-------------------------------------------------------------------- v(0) = x2 - x1 v(1) = y2 - y1 v(2) = z2 - z1 w(0) = x3 - x2 w(1) = y3 - y2 w(2) = z3 - z2 Call normcrossprod(v, w, out) glBegin (GL_TRIANGLES) 'Flip the normal glNormal3f -1 * out(0), -1 * out(1), -1 * out(2) Diffuse(0) = r1 Diffuse(1) = b1 Diffuse(2) = g1 Diffuse(3) = 1 glMaterialfv GL_FRONT, GL_AMBIENT_AND_DIFFUSE, Diffuse(0) glVertex3f v1(0), v1(1), v1(2) Diffuse(0) = r2 Diffuse(1) = b2 Diffuse(2) = g2 Diffuse(3) = 1 glMaterialfv GL_FRONT, GL_AMBIENT_AND_DIFFUSE, Diffuse(0) glVertex3f v2(0), v2(1), v2(2) Diffuse(0) = r3 Diffuse(1) = b3 Diffuse(2) = g3 Diffuse(3) = 1 glMaterialfv GL_FRONT, GL_AMBIENT_AND_DIFFUSE, Diffuse(0) glVertex3f v3(0), v3(1), v3(2) glEnd End Sub Public Sub normalize(out() As GLfloat) Dim d As GLfloat d = Sqr(out(0) * out(0) + out(1) * out(1) + out(2) * out(2)) If (d = 0) Then Exit Sub End If out(0) = out(0) / d out(1) = out(1) / d out(2) = out(2) / d End Sub Public Sub normcrossprod(v() As GLfloat, w() As GLfloat, out() As GLfloat) '[Vx Vy Vz] X [Wx Wy Wz] =[(Vy*Wz-Wy*Vz),(Wx*Vz-Vx*Wz),(Vx*Wy-Wx*Vy)] out(0) = v(1) * w(2) - w(1) * v(2) out(1) = w(0) * v(2) - v(0) * w(2) out(2) = v(0) * w(1) - w(0) * v(1) Call normalize(out) End Sub
________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:29 pm | |
| Direct Sound kullanımı DirectX7 İle Wav Dosyalarını Çalma Öncelikle DirectX7.0 'ın yüklü olduğundan emin olun. Sonra Menü'den ¦-----Project ¦---- References 'den ¦----- DirectX7 For Visual Basic... ...şıkkının şeçili olduğundan emin olun, değilse seçin Sonra Form üzerine Çal, Duraklat ve durdur tuşları koyalım. Adları: Çal ----> CmdChal Duraklat ----> CmdDurk Durdur ----> CmdDur DirectSound sayesinde tuşa bastığınız an sesi çalacaktır. - Kod:
-
(declaretions) Dim DX7 As DirectX7 Dim DSAs DirectSound Dim DSB As DirectSoundBuffer 'Burada DSB'yi array olarak kullanabilirsiniz. Örneğin; Dim DSB(10) As DirectSoundBuffer Dim bufferDesc As DSBUFFERDESC Dim waveFormat As WAVEFORMATEX Private Sub Form_Load() Set DX7 = New DirectX7 'Direct X 'i çalıştıralım Set DS = DX7.DirectSoundCreate("") 'DirectSound'u açalım DS.SetCooperativeLevel Me.hWdn, DSSCL_PRIORITY 'DirectSound'un bu form üzerinden çalışacağını belirtelim ' Ses özelliklerini belirleyelim bufferDesc.lBufferBytes = 16384 bufferDesc.lFlags = DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN Or DSBCAPS_CTRLVOLUME Or DSBCAPS_STATIC waveFormat.nFormatTag = WAVE_FORMAT_PCM waveFormat.nChannels = 16 waveFormat.lSamplesPerSec = 44100 waveFormat.nBitsPerSample = 16 waveFormat.nBlockAlign = waveFormat.nBitsPerSample / 8 * waveFormat.nChannels waveFormat.lAvgBytesPerSec = waveFormat.lSamplesPerSec * waveFormat.nBlockAlign ' Dosyayı RAM'e yükletelim Set DSB = DS.CreateBufferFromFile ("dosyaadi.wav",bufferdesc,waveformat) End Sub Private Sub CmdChal_Click() DSB.Play DSPLAY_DEFAULT 'eğer DSPLAY_DEFAULT yerine DSPLAY_LOOPING derseniz sürekli başa sarıp hiç beklemeden tekrar çalacaktır. End Sub Private Sub CmdDurk_Click() DSB.Stop End Sub Private Sub CmdDur_Click() DSB.Stop DSB.SetCurrentPosition 1 End Sub
________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:30 pm | |
| Onluk tabandan ikilik tabana geçiş ilk olarak fonksiyonumuzu açyklamak istiyorum. Fonksiyonun çaly?ma manty?y çok basit. (Sitede buna benzer bir kod daha görmü?tüm ama oldukça uzundu bu biraz daha kysa!) Fonksiyon girilen sayynyn 2'lik tabanda modülünü alyyor. Yani sayyyy sürekli 2'ye bölüyor ve ikilik tabanda sayy elde edilmi? oluyor. Yleri seviyede programlama yapan arkada?laryn i?ine yarayaca?yny dü?ünüyorum. - Kod:
-
Function tobinary(x As Integer) As String Dim s As String If x = 0 Then s = "0" Else s = "" While x <> 0 s = (x Mod 2) & s x = Int(x / 2) Wend End If If Len(s) = 1 Then s = "0000000" + s If Len(s) = 2 Then s = "000000" + s If Len(s) = 3 Then s = "00000" + s If Len(s) = 4 Then s = "0000" + s If Len(s) = 5 Then s = "000" + s If Len(s) = 6 Then s = "00" + s If Len(s) = 7 Then s = "0" + s tobinary = s End Function
Fonksiyon 0-255 arasy yani 8 haneli ikilik tabanda i?lem yapyyor isteyen arkada?lar programy daha da geni?letebilirler. ________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:32 pm | |
| OSD - Windows'ta Ekran Üzerinde Yazı Yazma OSD(On Screen Display) Herkese Merhaba, Bu makalemde sizlere vb ile ekran üzerine yazı yazdırmayı yani diğer programlar çalışırken ekranın en üstüne yazıyazdırmayı anlatacağım. Windows üzerinde hemen hemen her şey pencere üzerine kurulmuştur(ki zaten adıda burdan geliyor ). Mesela menüler, TaskBar, PictureBox v.s. hepsi birer pencere üzerine kurulmuştur. Windows ta çalışırken gördüğünüz ortamın tümüde yani masaüstü ve açık olan tüm pencereler bunların hepsi bir araya gelerek bir pencereyi oluştururlar ve bu pencereye DesktopWindow denir. Her pencerenin bir handle(hWnd) ve hDc(istenilirse) numarası vardır. hDc numarasını vermek pencereyi yaratan kullanıcıya bağlıdır. Windows DesktopWindow'ada dc özelliği vermiştir yani hWnd ve hDc numarasına sahiptir. Windows üzerinde API' ler ile bütün pencerelere erişilir ve istenilen şey yapılır. Pencere sizin programınıza dahil olsun, olmasın hiç bir şey farkketmez. Önemli olan handle(hWnd) numarasını bilmektir. Bende bu makaleye başlamadan once bunu düşündüm ve böyle bir şeyin hoş olacağı aklıma geldi. Aynı monitorlerdeki gibi OSD şekli şık, güzel bir yazı yada uyarı sistemi olabilir diye düşündüm. Düşündüm ve bu makaleyi yazdım. Gelelim programlamaya. + Nelere İhtiyaç Var? Bu makalede anlatılan konu ve ilgili örnekleri ben MS Windows XP Professional üzerinde sorunsuz çalıştırabildim. Yani bu demek oluyorki sizlerde bunu winxp, w2k ve nt üzerinde çalıştırabilirsiniz. Windows 98 ve/veya 9x için kesin garanti veremiyeceğim. Çünkü denemedim. Ama sonuçta kullanacağımız herşey API' lerden ibaret ve bu API' ler çok yeni API' ler değil yani win9x de de olabilir diye düşünüyorum. + Programın Mantığı: Mantık oldukça basit ve sade. Önce yazıyı PictureBox' a yazıyoruz. Sonra pixel, pixel renkleri alıp DesktopWindow' a noktalıyoruz. Ama noktalamadan önce noktalıyacağımız kısmı bir diğer picturebox a alıyoruz ki daha sonradan temizlenmesi gerekirse renkleri oradan bulabilelim. + Örnek OSD Programı: - Kod:
-
Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Public Type pAttributes fontName As String * 25 fontSize As Integer fontBold As Boolean fontColor As Long textString As String * 60 textBufferBox As PictureBox textBufferWidth As Integer textBufferHeight As Integer textLocX As Integer textLocY As Integer scrBufferBox As PictureBox LastX As Integer LastY As Integer End Type
Şimdi ise bu API' leride module'de declare ediniz. Bunlarıda program içerisinde nokta koyarken veya nokta üzerindeki rengi öğrenirken v.s. kullanıcağız. - Kod:
-
Public Declare Function GetDesktopWindow Lib "user32" () As Long Public Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long Public Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long Public Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long Public Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
MODÜL iSE: - Kod:
-
Public Sub PrintOnScreen(ByRef textAttrib As pAttributes) Dim hDcDsk As Long, hWndDsk As Long Dim Rec As RECT Dim winW As Long, winH As Long Dim X As Long, Y As Long, c As Long, orgC As Long ' PictureBox için gerekli olan ayarlari yapalim.. textAttrib.textBufferBox.Font.Name = textAttrib.fontName textAttrib.textBufferBox.fontBold = textAttrib.fontBold textAttrib.textBufferBox.ForeColor = textAttrib.fontColor textAttrib.textBufferBox.fontSize = textAttrib.fontSize textAttrib.textBufferBox.Width = textAttrib.textBufferWidth * Screen.TwipsPerPixelX textAttrib.textBufferBox.Height = textAttrib.textBufferHeight * Screen.TwipsPerPixelY textAttrib.scrBufferBox.Width = Screen.Width textAttrib.scrBufferBox.Height = Screen.Height textAttrib.scrBufferBox.BackColor = textAttrib.fontColor textAttrib.textBufferBox.AutoRedraw = True textAttrib.scrBufferBox.AutoRedraw = True textAttrib.textBufferBox.Visible = False textAttrib.scrBufferBox.Visible = False ' Yaziyi pictureBox' a yazdiralim, textAttrib.textBufferBox.Cls textAttrib.scrBufferBox.Cls textAttrib.textBufferBox.Print textAttrib.textString GetWindowRect textAttrib.textBufferBox.hWnd, Rec ' Picture Box' in boyutlarini alalim.. winW = Rec.Right - Rec.Left ' Genisligi ve yüksekligi hesaplayalim winH = Rec.Bottom - Rec.Top hWndDsk = GetDesktopWindow ' Ekranin handle ini alalim hDcDsk = GetWindowDC(hWndDsk) ' ve bu handle a ait olan hDc(Handle Direct Call) numarasini ' alalim. For X = 0 To winW For Y = 0 To winH c = GetPixel(textAttrib.textBufferBox.hdc, X, Y) 'PictureBox üzerindeki rengi alalim, If c = textAttrib.fontColor Then 'Eger secilen renk, belirledigimiz renkse.. ' Ekran üzerindeki orjinal rengi alalim ve diger picturebox a yazalim. orgC = GetPixel(hDcDsk, textAttrib.textLocX + X, textAttrib.textLocY + Y) ' Ekran üzerine PictureBox dan aldigimiz rengi koyalim. SetPixel hDcDsk, textAttrib.textLocX + X, textAttrib.textLocY + Y, c ' Diger picturebox a ekran üzerinden aldigimiz rengi koyalim. SetPixel textAttrib.scrBufferBox.hdc, textAttrib.textLocX + X, textAttrib.textLocY + Y, orgC DoEvents textAttrib.LastX = textAttrib.textLocX + X ' En son nokta koyulan koordinatlari kaydedelim. End If Next Y ' Y yi döndür. textAttrib.LastY = textAttrib.textLocY + Y Next X ' X i döndür. End Sub Public Sub ClearScreen(ByRef textAttrib As pAttributes) Dim hDcDsk As Long, hWndDsk As Long Dim Rec As RECT Dim winW As Long, winH As Long Dim X As Long, Y As Long, c As Long, orgC As Long hWndDsk = GetDesktopWindow ' Ekranin handle ini alalim hDcDsk = GetWindowDC(hWndDsk) ' ve bu handle a ait olan hDc(Handle Direct Call) numarasini ' alalim. For X = 0 To textAttrib.LastX For Y = 0 To textAttrib.LastY c = GetPixel(textAttrib.scrBufferBox.hdc, X, Y) If Not c = textAttrib.fontColor Then SetPixel hDcDsk, X, Y, c ' PictureBox tan alıp ekrana yazalim DoEvents End If Next Y Next X End Sub ' Şimdi en son tanımlamalara yani değişkenlere geldik. Aşağıdaki değişkenleri Formda tanımlamayı unutmayınız. Private myText As pAttributes ' Sonunda geldik programın kodlarına. Aşağıdaki kodları programınıza direk olarak kopyalamadan önce programınıza btnClear(CommandButton) , btnPrint(CommandButton), Picture1,Picture2(PictureBox) olarak 2 adet picturebox ekleyiniz ve 1 tane de txtString(TextBox) ekleyiniz. Private Sub btnClear_Click() ClearScreen myText End Sub Private Sub btnPrint_Click() PrintOnScreen myText End Sub Private Sub Form_Load() myText.fontName = "Sans" myText.fontBold = True myText.fontSize = 12 myText.fontColor = RGB(255, 0, 0) Set myText.scrBufferBox = Picture2 Set myText.textBufferBox = Picture1 myText.textBufferWidth = 300 myText.textBufferHeight = 100 myText.textLocX = 100 myText.textLocY = 100 myText.textString = txtString.Text End Sub
________Kullanıcı İmzası_________ | |
| | | SessizAdam Sponsor
Mesaj Sayısı : 571 Kayıt tarihi : 09/05/09 Rep Puanı : 47
| Konu: Geri: Visual Basic Kod Paylaşım Merkezi Paz Mayıs 10, 2009 7:33 pm | |
| Sayısal Loto Programı Yeni bir form açyp bir command button ve alty adet label (labellerin isminden dolayı aldanıp textbox eklemeyin) ekledikten sonra a?a?ydaki kodlary kopyalayyp kod kysmyna yapy?tyryn. - Kod:
-
Private Sub Command1_Click() Randomize Timer text1.Caption = Int(Rnd * 49) + 1 text2.Caption = Int(Rnd * 49) + 1 text3.Caption = Int(Rnd * 49) + 1 text4.Caption = Int(Rnd * 49) + 1 text5.Caption = Int(Rnd * 49) + 1 text6.Caption = Int(Rnd * 49) + 1 End Sub Private Sub Text1_Change() If text1.Caption = text2.Caption Or text1.Caption = text3.Caption Or text1.Caption = text4.Caption Or text1.Caption = text5.Caption Or text1.Caption = text6.Caption Then text1.Caption = Int(Rnd * 49) + 1 End If End Sub Private Sub Text2_Change() If text2.Caption = text1.Caption Or text2.Caption = text3.Caption Or text2.Caption = text4.Caption Or text2.Caption = text5.Caption Or text2.Caption = text6.Caption Then text2.Caption = Int(Rnd * 49) + 1 End If End Sub Private Sub Text3_Change() If text3.Caption = text1.Caption Or text3.Caption = text2.Caption Or text3.Caption = text4.Caption Or text3.Caption = text5.Caption Or text3.Caption = text6.Caption Then text3.Caption = Int(Rnd * 49) + 1 End If End Sub Private Sub Text4_Change() If text4.Caption = text1.Caption Or text4.Caption = text2.Caption Or text4.Caption = text3.Caption Or text4.Caption = text5.Caption Or text4.Caption = text6.Caption Then text4.Caption = Int(Rnd * 49) + 1 End If End Sub Private Sub Text5_Change() If text5.Caption = text1.Caption Or text5.Caption = text2.Caption Or text5.Caption = text3.Caption Or text5.Caption = text4.Caption Or text5.Caption = text6.Caption Then text5.Caption = Int(Rnd * 49) + 1 End If End Sub Private Sub Text6_Change() If text6.Caption = text1.Caption Or text6.Caption = text2.Caption Or text6.Caption = text3.Caption Or text6.Caption = text4.Caption Or text6.Caption = text5.Caption Then text6.Caption = Int(Rnd * 49) + 1 End If End Sub
________Kullanıcı İmzası_________ | |
| | | | Visual Basic Kod Paylaşım Merkezi | |
|
Similar topics | |
|
| Bu forumun müsaadesi var: | Bu forumdaki mesajlara cevap veremezsiniz
| |
| |
| |