X
تبلیغات
منزلگه ققنوس - برنامه نویسی با ویژوال بیسیک 6
جواب نیکی شنبه چهاردهم بهمن 1391 6:55

کد زیر یک مستطیل توپر تو ویژوال بیسیک رسم میکنه...

مختصاتش رو تغییر بدید...

[Visual Basic] 
Public Sub FillRectangleFloat(e As PaintEventArgs)
' Create solid brush.
Dim blueBrush As New SolidBrush(Color.Blue)
' Create location and size of rectangle.
Dim x As Single = 0F
Dim y As Single = 0F
Dim width As Single = 200F
Dim height As Single = 200F
' Fill rectangle to screen.
e.Graphics.FillRectangle(blueBrush, x, y, width, height)
End Sub
        
[C#] 
public void FillRectangleFloat(PaintEventArgs e)
{
// Create solid brush.
SolidBrush blueBrush = new SolidBrush(Color.Blue);
// Create location and size of rectangle.
float x = 0.0F;
float y = 0.0F;
float width = 200.0F;
float height = 200.0F;
// Fill rectangle to screen.
e.Graphics.FillRectangle(blueBrush, x, y, width, height);
}

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

مجموعه ي 101 مثال ويزوال بيسيك و #C یکشنبه هشتم بهمن 1391 13:49

مجموعه ي 101 مثال ويزوال بيسيك و #C هم اكنون جهت دانلود در منزلگه ققنوس

File name Size
CSharp.msi 6.4 MB Download
VisualBasic.msi 6.7 MB Download








نوشته شده توسط سعید دامغانیان  | لینک ثابت |

Dim aa(9), cnt, f

Private Sub Form_Activate()
Option1.Value = True
cnt = 0
f = 0
End Sub

Private Sub List1_Click()
If Option1.Value = True Then
    Select Case List1.Text
        Case Is = "Cell - 1"
            Image1.Visible = True
            aa(0) = 1
        Case Is = "Cell - 2"
            Image2.Visible = True
            aa(1) = 1
        Case Is = "Cell - 3"
            Image3.Visible = True
            aa(2) = 1
        Case Is = "Cell - 4"
            Image4.Visible = True
            aa(3) = 1
        Case Is = "Cell - 5"
            Image5.Visible = True
            aa(4) = 1
        Case Is = "Cell - 6"
            Image6.Visible = True
            aa(5) = 1
        Case Is = "Cell - 7"
            Image7.Visible = True
            aa(6) = 1
        Case Is = "Cell - 8"
            Image8.Visible = True
            aa(7) = 1
        Case Is = "Cell - 9"
            Image9.Visible = True
            aa(8) = 1
    End Select
ElseIf Option2.Value = True Then
    Select Case List1.Text
        Case Is = "Cell - 1"
            Image10.Visible = True
            aa(0) = 2
        Case Is = "Cell - 2"
            Image11.Visible = True
            aa(1) = 2
        Case Is = "Cell - 3"
            Image12.Visible = True
            aa(2) = 2
        Case Is = "Cell - 4"
            Image13.Visible = True
            aa(3) = 2
        Case Is = "Cell - 5"
            Image14.Visible = True
            aa(4) = 2
        Case Is = "Cell - 6"
            Image15.Visible = True
            aa(5) = 2
        Case Is = "Cell - 7"
            Image16.Visible = True
            aa(6) = 2
        Case Is = "Cell - 8"
            Image17.Visible = True
            aa(7) = 2
        Case Is = "Cell - 9"
            Image18.Visible = True
            aa(8) = 2
    End Select
End If

List1.RemoveItem List1.ListIndex
If Option1.Value = True Then
    Option2.Value = True
ElseIf Option2.Value = True Then
    Option1.Value = True
End If
cnt = cnt + 1
If cnt >= 5 Then
    f = 0
    Call calc
End If

If f = 1 Then
    wq = MsgBox(Option1.Caption & " Wins", vbOKOnly + vbInformation, "Yeah......")
    qw = MsgBox("Game Over, play it again......", vbOKOnly + vbCritical, "Oopsss.....")
    Unload Me
End If
If f = 2 Then
    wq = MsgBox(Option2.Caption & " Wins", vbOKOnly + vbInformation, "Yeah......")
    qw = MsgBox("Game Over, play it again......", vbOKOnly + vbCritical, "Oopsss.....")
    Unload Me
End If
If cnt = 9 Then
    wq = MsgBox("Its a Draw !!", vbOKOnly + vbExclamation, "Oopsss........")
    qw = MsgBox("Game Over, play it again......", vbOKOnly + vbCritical, "Oopsss.....")
    Unload Me
End If
End Sub

Public Sub calc()
If aa(0) = 1 And aa(1) = 1 And aa(2) = 1 Then
    f = 1
    Line5.Visible = True
ElseIf aa(3) = 1 And aa(4) = 1 And aa(5) = 1 Then
    f = 1
    Line6.Visible = True
ElseIf aa(6) = 1 And aa(7) = 1 And aa(8) = 1 Then
    f = 1
    Line7.Visible = True
ElseIf aa(0) = 1 And aa(3) = 1 And aa(6) = 1 Then
    f = 1
    Line8.Visible = True
ElseIf aa(1) = 1 And aa(4) = 1 And aa(7) = 1 Then
    f = 1
    Line9.Visible = True
ElseIf aa(2) = 1 And aa(5) = 1 And aa(8) = 1 Then
    f = 1
    Line10.Visible = True
ElseIf aa(0) = 1 And aa(4) = 1 And aa(8) = 1 Then
    f = 1
    Line12.Visible = True
ElseIf aa(2) = 1 And aa(4) = 1 And aa(6) = 1 Then
    f = 1
    Line11.Visible = True
ElseIf aa(0) = 2 And aa(1) = 2 And aa(2) = 2 Then
    f = 2
    Line5.Visible = True
ElseIf aa(3) = 2 And aa(4) = 2 And aa(5) = 2 Then
    f = 2
    Line6.Visible = True
ElseIf aa(6) = 2 And aa(7) = 2 And aa(8) = 2 Then
    f = 2
    Line7.Visible = True
ElseIf aa(0) = 2 And aa(3) = 2 And aa(6) = 2 Then
    f = 2
    Line8.Visible = True
ElseIf aa(1) = 2 And aa(4) = 2 And aa(7) = 2 Then
    f = 2
    Line9.Visible = True
ElseIf aa(2) = 2 And aa(5) = 2 And aa(8) = 2 Then
    f = 2
    Line10.Visible = True
ElseIf aa(0) = 2 And aa(4) = 2 And aa(8) = 2 Then
    f = 2
    Line12.Visible = True
ElseIf aa(2) = 2 And aa(4) = 2 And aa(6) = 2 Then
    f = 2
    Line11.Visible = True
End If
End Sub

Private Sub Option1_DblClick()
Option1.Caption = Left(InputBox("Please enter Player-1 Name :: ", "Input Player-1 Name"), 10)
If Len(Trim(Option1.Caption)) <= 0 Then
    Option1.Caption = "Player-1"
End If
End Sub
Private Sub Option2_DblClick()
Option2.Caption = Left(InputBox("Please enter Player-2 Name :: ", "Input Player-2 Name"), 10)
If Len(Trim(Option2.Caption)) <= 0 Then
    Option2.Caption = "Player-2"
End If
End Sub

نوشته شده توسط سعید دامغانیان  | لینک ثابت |


Option Explicit

Private mdblResult           As Double
Private mdblSavedNumber      As Double
Private mstrDot              As String
Private mstrOp               As String
Private mstrDisplay          As String
Private mblnDecEntered       As Boolean
Private mblnOpPending        As Boolean
Private mblnNewEquals        As Boolean
Private mblnEqualsPressed    As Boolean
Private mintCurrKeyIndex    As Integer

Private Sub Form_Load()

    Top = (Screen.Height - Height) / 2
    Left = (Screen.Width - Width) / 2

End Sub


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    Dim intIndex    As Integer
   
    Select Case KeyCode
        Case vbKeyBack:             intIndex = 0
        Case vbKeyDelete:           intIndex = 1
        Case vbKeyEscape:           intIndex = 2
        Case vbKey0, vbKeyNumpad0:  intIndex = 18
        Case vbKey1, vbKeyNumpad1:  intIndex = 13
        Case vbKey2, vbKeyNumpad2:  intIndex = 14
        Case vbKey3, vbKeyNumpad3:  intIndex = 15
        Case vbKey4, vbKeyNumpad4:  intIndex = 8
        Case vbKey5, vbKeyNumpad5:  intIndex = 9
        Case vbKey6, vbKeyNumpad6:  intIndex = 10
        Case vbKey7, vbKeyNumpad7:  intIndex = 3
        Case vbKey8, vbKeyNumpad8:  intIndex = 4
        Case vbKey9, vbKeyNumpad9:  intIndex = 5
        Case vbKeyDecimal:          intIndex = 20
        Case vbKeyAdd:              intIndex = 21
        Case vbKeySubtract:         intIndex = 16
        Case vbKeyMultiply:         intIndex = 11
        Case vbKeyDivide:           intIndex = 6
        Case Else:                  Exit Sub
    End Select
   
    cmdCalc(intIndex).SetFocus
    cmdCalc_Click intIndex
   
End Sub


Private Sub Form_KeyPress(KeyAscii As Integer)
   
    Dim intIndex    As Integer
   
    Select Case Chr$(KeyAscii)
        Case "S", "s":  intIndex = 7
        Case "P", "p":  intIndex = 12
        Case "R", "r":  intIndex = 17
        Case "X", "x":  intIndex = 11
        Case "=":       intIndex = 22
        Case Else:      Exit Sub
    End Select
   
    cmdCalc(intIndex).SetFocus
    cmdCalc_Click intIndex

End Sub

Private Sub cmdCalc_Click(Index As Integer)

    Dim strPressedKey   As String
   
    mintCurrKeyIndex = Index
   
    If mstrDisplay = "ERROR" Then
        mstrDisplay = ""
    End If
   
    strPressedKey = cmdCalc(Index).Caption
   
    Select Case strPressedKey
        Case "0", "1", "2", "3", "4", _
             "5", "6", "7", "8", "9"
            If mblnOpPending Then
                mstrDisplay = ""
                mblnOpPending = False
            End If
            If mblnEqualsPressed Then
                mstrDisplay = ""
                mblnEqualsPressed = False
            End If
            mstrDisplay = mstrDisplay & strPressedKey
        Case "."
            If mblnOpPending Then
                mstrDisplay = ""
                mblnOpPending = False
            End If
            If mblnEqualsPressed Then
                mstrDisplay = ""
                mblnEqualsPressed = False
            End If
            If InStr(mstrDisplay, ".") > 0 Then
                Beep
            Else
                mstrDisplay = mstrDisplay & strPressedKey
            End If
        Case "+", "-", "X", "/"
            mdblResult = Val(mstrDisplay)
            mstrOp = strPressedKey
            mblnOpPending = True
            mblnDecEntered = False
            mblnNewEquals = True
        Case "%"
            mdblSavedNumber = (Val(mstrDisplay) / 100) * mdblResult
            mstrDisplay = Format$(mdblSavedNumber)
        Case "="
            If mblnNewEquals Then
                mdblSavedNumber = Val(mstrDisplay)
                mblnNewEquals = False
            End If
            Select Case mstrOp
                Case "+"
                    mdblResult = mdblResult + mdblSavedNumber
                Case "-"
                    mdblResult = mdblResult - mdblSavedNumber
                Case "X"
                    mdblResult = mdblResult * mdblSavedNumber
                Case "/"
                    If mdblSavedNumber = 0 Then
                        mstrDisplay = "ERROR"
                    Else
                        mdblResult = mdblResult / mdblSavedNumber
                    End If
                Case Else
                    mdblResult = Val(mstrDisplay)
            End Select
            If mstrDisplay <> "ERROR" Then
                mstrDisplay = Format$(mdblResult)
            End If
            mblnEqualsPressed = True
        Case "+/-"
            If mstrDisplay <> "" Then
                If Left$(mstrDisplay, 1) = "-" Then
                    mstrDisplay = Right$(mstrDisplay, 2)
                Else
                    mstrDisplay = "-" & mstrDisplay
                End If
            End If
        Case "Backspace"
            If Val(mstrDisplay) <> 0 Then
                mstrDisplay = Left$(mstrDisplay, Len(mstrDisplay) - 1)
                mdblResult = Val(mstrDisplay)
            End If
        Case "CE"
            mstrDisplay = ""
        Case "C"
            mstrDisplay = ""
            mdblResult = 0
            mdblSavedNumber = 0
        Case "1/x"
            If Val(mstrDisplay) = 0 Then
                mstrDisplay = "ERROR"
            Else
                mdblResult = Val(mstrDisplay)
                mdblResult = 1 / mdblResult
                mstrDisplay = Format$(mdblResult)
            End If
        Case "sqrt"
            If Val(mstrDisplay) < 0 Then
                mstrDisplay = "ERROR"
            Else
                mdblResult = Val(mstrDisplay)
                mdblResult = Sqr(mdblResult)
                mstrDisplay = Format$(mdblResult)
            End If
    End Select
       
    If mstrDisplay = "" Then
        lblDisplay = "0."
    Else
        mstrDot = IIf(InStr(mstrDisplay, ".") > 0, "", ".")
        lblDisplay = mstrDisplay & mstrDot
        If Left$(lblDisplay, 1) = "0" Then
            lblDisplay = Mid$(lblDisplay, 2)
        End If
    End If
   
    If lblDisplay = "." Then lblDisplay = "0."
   
End Sub

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

Option Explicit
Dim intDiskToPole() As Integer
Dim intToPtr As Integer
Dim intDiskFromPole() As Integer
Dim intFromPtr As Integer
Dim intDiskUsingPole() As Integer
Dim intUsingPtr As Integer
Dim Line1() As Line
Dim NODisks As Integer
Dim txtRules As String
Dim StopHere As Boolean

‘Main Recursive Logic for solving Tower Of Hanoi
Private Sub SolveHanoi(strFrom As String, strTO As String, strUsing As String, NOD As Integer)
If StopHere Then Exit Sub
If NOD > 0 Then
SolveHanoi strFrom, strUsing, strTO, NOD – 1 ‘Step 1
If StopHere Then Exit Sub
txtOutput.Text = txtOutput.Text & vbCrLf & “Disk ” & NOD & ” Moved From ” & strFrom & ” To ” & strTO
If StopHere Then Exit Sub
Select Case strFrom ‘Step 2
Case “Left”:
ShowTransition strFrom, strTO, strUsing, intDiskFromPole(intFromPtr)
Case “Right”:
ShowTransition strFrom, strTO, strUsing, intDiskToPole(intToPtr)
Case “Middle”:
ShowTransition strFrom, strTO, strUsing, intDiskUsingPole(intUsingPtr)
End Select
If StopHere Then Exit Sub
If optStandard.Value Then
AddDelay
ElseIf optDynamic.Value Then
Pause 1 / NODisks
End If
If StopHere Then Exit Sub
SolveHanoi strUsing, strTO, strFrom, NOD – 1 ‘Step 3
End If
End Sub

‘Delay Loop
Private Sub AddDelay()
Dim i As Integer
Dim j As Integer

For i = 0 To 800
For j = 0 To 800
DoEvents
Next j
Next i
End Sub

‘Here Transitions are shown
Private Sub ShowTransition(strFrom As String, strTO As String, strUsing As String, NOD As Integer)
Dim i As Integer
Dim DiskNO As Integer

DiskNO = NOD
For i = 1 To NODisks
Line1(i).Visible = False
Next
AdjustNOD strFrom, -1, DiskNO
AdjustNOD strTO, 1, DiskNO
ShowDisks
End Sub

‘Refresh all componnets for net session of Hanoi solving
Private Sub RemoveAllObjects()
On Error GoTo EndHere
Dim i As Integer
For i = 1 To NODisks
Controls.Remove (“Lin” & (i + 1))
Next i
EndHere:
End Sub

‘Adjust individual Stacks correspoding to each pole
Private Sub AdjustNOD(strPole As String, AddRemove As Integer, DiskValue As Integer)
If AddRemove = -1 Then
Select Case strPole
Case “Left”:
intDiskFromPole(intFromPtr) = 0
intFromPtr = intFromPtr – 1
Case “Right”:
intDiskToPole(intToPtr) = 0
intToPtr = intToPtr – 1
Case “Middle”:
intDiskUsingPole(intUsingPtr) = 0
intUsingPtr = intUsingPtr – 1
End Select
ElseIf AddRemove = 1 Then
Select Case strPole
Case “Left”:
intFromPtr = intFromPtr + 1
intDiskFromPole(intFromPtr) = DiskValue
Case “Right”:
intToPtr = intToPtr + 1
intDiskToPole(intToPtr) = DiskValue
Case “Middle”:
intUsingPtr = intUsingPtr + 1
intDiskUsingPole(intUsingPtr) = DiskValue
End Select
End If
End Sub

‘Print Current Stacks
Private Sub ShowDisks()
Dim i As Integer

‘ In Case “Left”:
For i = 1 To intFromPtr
Line1(intDiskFromPole(i)).X1 = 240 + 150 * intDiskFromPole(i)
Line1(intDiskFromPole(i)).Y1 = 5160 – 200 * i
Line1(intDiskFromPole(i)).X2 = 2880 + 240 – 150 * intDiskFromPole(i)
Line1(intDiskFromPole(i)).Y2 = 5160 – 200 * i
Line1(intDiskFromPole(i)).Visible = True
Next
‘ In Case “Right”:
For i = 1 To intToPtr
Line1(intDiskToPole(i)).X1 = 6220 + 150 * intDiskToPole(i)
Line1(intDiskToPole(i)).Y1 = 5160 – 200 * i
Line1(intDiskToPole(i)).X2 = 2880 + 6220 – 150 * intDiskToPole(i)
Line1(intDiskToPole(i)).Y2 = 5160 – 200 * i
Line1(intDiskToPole(i)).Visible = True
Next
‘ In Case “Middle”:
For i = 1 To intUsingPtr
Line1(intDiskUsingPole(i)).X1 = 3200 + 150 * (intDiskUsingPole(i))
Line1(intDiskUsingPole(i)).Y1 = 5160 – 200 * i
Line1(intDiskUsingPole(i)).X2 = 2880 + 3200 – 150 * (intDiskUsingPole(i))
Line1(intDiskUsingPole(i)).Y2 = 5160 – 200 * i
Line1(intDiskUsingPole(i)).Visible = True
Next
End Sub

‘On Solve Click do this …….
Private Sub cmdSolve_Click()
On Error GoTo ErrorHandler
NODisks = CInt(lstValues.Text)

ReDim Line1(NODisks) As Line

ReDim intDiskToPole(NODisks) As Integer
ReDim intDiskFromPole(NODisks) As Integer
ReDim intDiskUsingPole(NODisks) As Integer

Dim i As Integer

Label3.Caption = “S O L V I N G …”

txtOutput.Text = “”

For i = 1 To NODisks
intDiskFromPole(i) = i
Set Line1(i) = Controls.Add(“vb.line”, “Lin” & (i + 1))
Line1(i).BorderStyle = 6
Line1(i).BorderWidth = 10
Line1(i).BorderColor = &HC0FFFF + Hex(i) * 50
Next

intFromPtr = NODisks
intToPtr = 0
intUsingPtr = 0

For i = 1 To intFromPtr
Line1(intDiskFromPole(i)).X1 = 240 + 150 * (intDiskFromPole(i))
Line1(intDiskFromPole(i)).Y1 = 5160 – 200 * i
Line1(intDiskFromPole(i)).X2 = 2880 – 150 * (intDiskFromPole(i))
Line1(intDiskFromPole(i)).Y2 = 5160 – 200 * i
Line1(intDiskFromPole(i)).Visible = True
Next
‘If NODisks >= 1 And NODisks <= 9 Then
If MsgBox("Press Yes To Solve Tower Of Hanoi ……", vbYesNo) = vbYes Then
MousePointer = vbHourglass
SolveHanoi "Left", "Right", "Middle", NODisks
If Not StopHere Then
MousePointer = vbNormal
MsgBox "DONE!"
End If
End If
If Not StopHere Then
RemoveAllObjects
Label3.Caption = txtRules
'txtInput.Text = ""
End If
'End If
Exit Sub
ErrorHandler:
If Err.Number = 13 Or Err.Number = 9 Then
MsgBox "Please Select a proper numeric value.", vbCritical, "TOH Error"
RemoveAllObjects
Label3.Caption = txtRules
'txtInput.Text = ""
End If
End Sub

Private Sub Form_Load()
StopHere = False
Label3.Caption = "* * * * * * * * R U L E S F O R T O W E R O F H A N O I * * * * * * * " & vbCrLf & vbCrLf & vbCrLf
Label3.Caption = Label3.Caption & "A B O U T S O L V E R … " & vbCrLf & vbCrLf
Label3.Caption = Label3.Caption & "This game has 3 poles FROM, TO and USING. There are N no of Disks in the FROM pole that has to be moved to the TO pole by using the USING Pole" & vbCrLf
Label3.Caption = Label3.Caption & "In any move of the game, a given pole has to have a Larger Disk under a Smaller Disk but not vice versa" & vbCrLf
Label3.Caption = Label3.Caption & "This Solver Solves the problem in minimum possible number of transitions" & vbCrLf & vbCrLf
Label3.Caption = Label3.Caption & "P L A Y I N G T H E S O L V E R … " & vbCrLf & vbCrLf
Label3.Caption = Label3.Caption & "1. The Number Of disks has to be between 1 to 9" & vbCrLf
Label3.Caption = Label3.Caption & "2. The Solver moves disk After a small interval of approx half a sec." & vbCrLf
Label3.Caption = Label3.Caption & "3. For Larger Number of Disks the solver will take considerable amount of time. So avoid large values such as 8 or 9 for quick play. Try them otherwise" & vbCrLf
Label3.Caption = Label3.Caption & "==========================================================================================================================" & vbCrLf & vbCrLf
Label3.Caption = Label3.Caption & "Input the Number Of Disks ……. and Press 'Solve' "

'txtInput.Text = ""
lstValues.Text = "1"
txtOutput.Text = ""
txtRules = Label3.Caption
optStandard.Value = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
StopHere = True
End Sub

Sub Pause(ByVal nSecond As Single)
'nSeconds should be the number of seconds you want the Pause to last
'(may be a decimal fraction .5)
Dim StartTime As Single
StartTime = Timer
Do While Timer – StartTime < nSecond
DoEvents 'Allows you to continue interacting with the rest of your program
' if we cross midnight, back up one day
If Timer < StartTime Then
' separating the numbers stops a nasty overflow error
StartTime = StartTime – 24 * 60 * 60
End If
Loop
End Sub

Private Sub Label3_Click()

End Sub

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

' Quote from
'Visual Basic 2005 Cookbook Solutions for VB 2005 Programmers
'by Tim Patrick (Author), John Craig (Author)
'# Publisher: O'Reilly Media, Inc. (September 212006)
'# Language: English
'# ISBN-100596101775
'# ISBN-13978-0596101770

Public Class Tester
    Public Shared Sub Main
        Dim matrixA(,As Double = _
            {123}, _
            {546}, _
            {978}}
        Dim determinant As Double = MatrixHelper.Determinant(matrixA)

        Console.WriteLine(MatrixHelper.MakeDisplayable(matrixA& _
            vbNewLine & vbNewLine & "Determinant: " & _
            determinant.ToString)
     End Sub
End Class



Module MatrixHelper
    Public Function MakeDisplayable(ByVal sourceMatrix(,As DoubleAs String
        ' ----- Prepare a multi-line string that shows the contents
        '       of a matrix, a 2D array.
        Dim rows As Integer
        Dim cols As Integer
        Dim eachRow As Integer
        Dim eachCol As Integer
        Dim result As New System.Text.StringBuilder

        ' ----- Process all rows of the matrix, generating one
        '       output line per row.
        rows = UBound(sourceMatrix, 11
        cols = UBound(sourceMatrix, 21
        For eachRow = To rows - 1
            ' ----- Process each column of the matrix on a single
            '       row, separating values by commas.
            If (eachRow > 0Then result.AppendLine()
            For eachCol = To cols - 1
                ' ----- Add a single matrix element to the output.
                If (eachCol > 0Then result.Append(",")
                result.Append(sourceMatrix(eachRow, eachCol).ToString)
            Next eachCol
        Next eachRow

        ' ----- Finished.
        Return result.ToString
    End Function

    Public Function MakeDisplayable(ByVal sourceArray() As DoubleAs String
        ' ----- Present an array as multiple lines of output.
        Dim result As New System.Text.StringBuilder
        Dim scanValue As Double

        For Each scanValue In sourceArray
            result.AppendLine(scanValue.ToString)
        Next scanValue

        Return result.ToString
    End Function

    Public Function Inverse(ByVal sourceMatrix(,As DoubleAs Double(,)
        ' ----- Build a new matrix that is the mathematical inverse
        '       of the supplied matrix. Multiplying a matrix and its
        '       inverse together will give the identity matrix.
        Dim eachCol As Integer
        Dim eachRow As Integer
        Dim rowsAndCols As Integer

        ' ----- Determine the size of each dimension of the matrix.
        '       Only square matrices can be inverted.
        If (UBound(sourceMatrix, 1<> UBound(sourceMatrix, 2)) Then
            Throw New Exception("Matrix must be square.")
        End If
        Dim rank As Integer = UBound(sourceMatrix, 1)

        ' ----- Clone a copy of the matrix (not just a new reference).
        Dim workMatrix(,As Double = _
            CType(sourceMatrix.Clone, Double(,))

        ' ----- Variables used for backsolving.
        Dim destMatrix(rank, rankAs Double
        Dim rightHandSide(rankAs Double
        Dim solutions(rankAs Double
        Dim rowPivots(rankAs Integer
        Dim colPivots(rankAs Integer

        ' ----- Use LU decomposition to form a triangular matrix.
        workMatrix = FormLU(workMatrix, rowPivots, colPivots, rowsAndCols)

        ' ----- Backsolve the triangular matrix to get the inverted
        '       value for each position in the final matrix.
        For eachCol = To rank
            rightHandSide(eachCol1
            BackSolve(workMatrix, rightHandSide, solutions, rowPivots, colPivots)
            For eachRow = To rank
                destMatrix(eachRow, eachCol= solutions(eachRow)
                rightHandSide(eachRow0
            Next eachRow
        Next eachCol

        ' ----- Return the inverted matrix result.
        Return destMatrix
    End Function

    Public Function Determinant(ByVal sourceMatrix(,As DoubleAs Double
        ' ----- Calculate the determinant of a matrix.
        Dim result As Double
        Dim pivots As Integer
        Dim count As Integer

        ' ----- Only calculate the determinants of square matrices.
        If (UBound(sourceMatrix, 1<> UBound(sourceMatrix, 2)) Then
            Throw New Exception_
                "Determinant only calculated for square matrices.")
        End If
        Dim rank As Integer = UBound(sourceMatrix, 1)

        ' ----- Make a copy of the matrix so we can work inside of it.
        Dim workMatrix(rank, rankAs Double
        Array.Copy(sourceMatrix, workMatrix, sourceMatrix.Length)

        ' ----- Use LU decomposition to form a triangular matrix.
        Dim rowPivots(rankAs Integer
        Dim colPivots(rankAs Integer
        workMatrix = FormLU(workMatrix, rowPivots, colPivots, count)

        ' ----- Get the product at each of the pivot points.
        result = 1
        For pivots = To rank
            result *= workMatrix(rowPivots(pivots), colPivots(pivots))
        Next pivots

        ' ----- Determine the sign of the result using LaPlace's formula.
        result = (-1^ count * result
        Return result
    End Function

    Public Function SimultEq(ByVal sourceEquations(,As Double, _
            ByVal sourceRHS() As DoubleAs Double()
        ' ----- Use matrices to solve simultaneous equations.
        Dim rowsAndCols As Integer

        ' ----- The matrix must be square and the array size must match.
        Dim rank As Integer = UBound(sourceEquations, 1)
        If (UBound(sourceEquations, 2<> rankOr _
                (UBound(sourceRHS, 1<> rankThen
            Throw New Exception("Size problem for simultaneous equations.")
        End If

        ' ----- Create some arrays for doing all of the work.
        Dim coefficientMatrix(rank, rankAs Double
        Dim rightHandSide(rankAs Double
        Dim solutions(rankAs Double
        Dim rowPivots(rankAs Integer
        Dim colPivots(rankAs Integer

        ' ----- Make copies of the original matrices so we don't
        '       mess them up.
        Array.Copy(sourceEquations, coefficientMatrix, sourceEquations.Length)
        Array.Copy(sourceRHS, rightHandSide, sourceRHS.Length)

        ' ----- Use LU decomposition to form a triangular matrix.
        coefficientMatrix = FormLU(coefficientMatrix, rowPivots, _
            colPivots, rowsAndCols)

        ' ----- Find the unique solution for the upper-triangle.
        BackSolve(coefficientMatrix, rightHandSide, solutions, _
            rowPivots, colPivots)

        ' ----- Return the simultaneous equations result in an array.
        Return solutions
    End Function

    Private Function FormLU(ByVal sourceMatrix(,As Double, _
            ByRef rowPivots() As Integer, ByRef colPivots() As Integer, _
            ByRef rowsAndCols As IntegerAs Double(,)
        ' ----- Perform an LU (lower and upperdecomposition of a matrix,
        '       a modified form of Gaussian elimination.
        Dim eachRow As Integer
        Dim eachCol As Integer
        Dim pivot As Integer
        Dim rowIndex As Integer
        Dim colIndex As Integer
        Dim bestRow As Integer
        Dim bestCol As Integer
        Dim rowToPivot As Integer
        Dim colToPivot As Integer
        Dim maxValue As Double
        Dim testValue As Double
        Dim oldMax As Double
        Const Deps As Double = 0.0000000000000001

        ' ----- Determine the size of the array.
        Dim rank As Integer = UBound(sourceMatrix, 1)
        Dim destMatrix(rank, rankAs Double
        Dim rowNorm(rankAs Double
        ReDim rowPivots(rank)
        ReDim colPivots(rank)

        ' ----- Make a copy of the array so we don't mess it up.
        Array.Copy(sourceMatrix, destMatrix, sourceMatrix.Length)

        ' ----- Initialize row and column pivot arrays.
        For eachRow = To rank
            rowPivots(eachRow= eachRow
            colPivots(eachRow= eachRow
            For eachCol = To rank
                rowNorm(eachRow+= Math.Abs(destMatrix(eachRow, eachCol))
            Next eachCol
            If (rowNorm(eachRow0Then
                Throw New Exception("Cannot invert a singular matrix.")
            End If
        Next eachRow

        ' ----- Use Gauss-Jordan elimination on the matrix rows.
        For pivot = To rank - 1
            maxValue = 0
            For eachRow = pivot To rank
                rowIndex = rowPivots(eachRow)
                For eachCol = pivot To rank
                    colIndex = colPivots(eachCol)
                    testValue = Math.Abs(destMatrix(rowIndex, colIndex)) _
                        / rowNorm(rowIndex)
                    If (testValue > maxValueThen
                        maxValue = testValue
                        bestRow = eachRow
                        bestCol = eachCol
                    End If
                Next eachCol
            Next eachRow

            ' ----- Detect a singular, or very nearly singular, matrix.
            If (maxValue = 0Then
                Throw New Exception("Singular matrix used for LU.")
            ElseIf (pivot > 1Then
                If (maxValue < (Deps * oldMax)) Then
                    Throw New Exception("Non-invertible matrix used for LU.")
                End If
            End If
            oldMax = maxValue

            ' ----- Swap row pivot values for the best row.
            If (rowPivots(pivot<> rowPivots(bestRow)) Then
                rowsAndCols += 1
                Swap(rowPivots(pivot), rowPivots(bestRow))
            End If

            ' ----- Swap column pivot values for the best column.
            If (colPivots(pivot<> colPivots(bestCol)) Then
                rowsAndCols += 1
                Swap(colPivots(pivot), colPivots(bestCol))
            End If

            ' ----- Work with the current pivot points.
            rowToPivot = rowPivots(pivot)
            colToPivot = colPivots(pivot)

            ' ----- Modify the remaining rows from the pivot points.
            For eachRow = (pivot + 1To rank
                rowIndex = rowPivots(eachRow)
                destMatrix(rowIndex, colToPivot= _
                    -destMatrix(rowIndex, colToPivot/ _
                    destMatrix(rowToPivot, colToPivot)
                For eachCol = (pivot + 1To rank
                    colIndex = colPivots(eachCol)
                    destMatrix(rowIndex, colIndex+= _
                        destMatrix(rowIndex, colToPivot* _
                        destMatrix(rowToPivot, colIndex)
                Next eachCol
            Next eachRow
        Next pivot

        ' ----- Detect a non-invertible matrix.
        If (destMatrix(rowPivots(rank), colPivots(rank)) 0Then
            Throw New Exception("Non-invertible matrix used for LU.")
        ElseIf (Math.Abs(destMatrix(rowPivots(rank), colPivots(rank))) / _
                rowNorm(rowPivots(rank))) (Deps * oldMaxThen
            Throw New Exception("Non-invertible matrix used for LU.")
        End If

        ' ----- Success. Return the LU triangular matrix.
        Return destMatrix
    End Function

    Private Sub Swap(ByRef firstValue As Integer, ByRef secondValue As Integer)
        ' ----- Reverse the values of two reference integers.
        Dim holdValue As Integer
        holdValue = firstValue
        firstValue = secondValue
        secondValue = holdValue
    End Sub

    Private Sub BackSolve(ByVal sourceMatrix(,As Double, _
            ByVal rightHandSide() As Double, ByVal solutions() As Double, _
            ByRef rowPivots() As Integer, ByRef colPivots() As Integer)
        ' ----- Solve an upper-right-triangle matrix.
        Dim pivot As Integer
        Dim rowToPivot As Integer
        Dim colToPivot As Integer
        Dim eachRow As Integer
        Dim eachCol As Integer
        Dim rank As Integer = UBound(sourceMatrix, 1)

        ' ----- Work through all pivot points. This section builds
        '       the "B" in the AX=B formula.
        For pivot = To (rank - 1)
            colToPivot = colPivots(pivot)
            For eachRow = (pivot + 1To rank
                rowToPivot = rowPivots(eachRow)
                rightHandSide(rowToPivot+= _
                    sourceMatrix(rowToPivot, colToPivot_
                    * rightHandSide(rowPivots(pivot))
            Next eachRow
        Next pivot

        ' ----- Now solve for each X using the general formula
        '       x(i(b(i- summation(a(i,j)x(j)))/a(i,i)
        For eachRow = rank To Step -1
            colToPivot = colPivots(eachRow)
            rowToPivot = rowPivots(eachRow)
            solutions(colToPivot= rightHandSide(rowToPivot)
            For eachCol = (eachRow + 1To rank
                solutions(colToPivot-= _
                    sourceMatrix(rowToPivot, colPivots(eachCol)) _
                    * solutions(colPivots(eachCol))
            Next eachCol
            solutions(colToPivot/= sourceMatrix(rowToPivot, colToPivot)
        Next eachRow
    End Sub
End Module


نمونه خروجی|
1,2,3
5,4,6
9,7,8

Determinant: 15

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

این سورس کد ، برنامه یک ‌Button دارد که وقتی کاربر می خواهد روی آن کلیک کند حرکت می کند.

+ سازگار با VB 6.0
+ حجم: 2 کیلوبایت

 Quick way to annoy your friend Ermine

دریافت سورس

 ------------------------------------------------------------------------------------------------------------------------------------------

این سورس که به زبان ویژوال بیسیک نوشته شده است برنامه Picture Viewer XP که یکی از دوستان درخواست کرده بودند. امیدوارم که براشون مفید باشد.

+ سازگار با VB 6.0
+ حجم: 29.7 کیلوبایت

تصویر برنامه

دریافت سورس Picture Viewer XP

-------------------------------------------------------------------------------------------------------------------------------------------

این هم یک سورس که به زبان ویژوال بیسیک نوشته شده است و می توان گفت که محیطی مانند Color picker

برنامه Adobe Photoshop در آن شبیه سازی شده است.

+ سازگار با Visual Basic 6
+ حجم:
۳۰۷ کیلوبایت

دریافت سورس Colorpicker

 ------------------------------------------------------------------------------------------------------------------------------------------

 

بازی معروف Bomber man که توسط Ian Gregor به زبان ویژوال بیسیک نوشته شده است. تصویر برنامه را ببینید حتماً این بازی رو می بینید که در کنسول های دیگه هم دیدید.

+ سازگار با VB 5.0, VB 6.0
+ حجم:
۱.۳۲ مگابایت

تصویر برنامه

دریافت سورس Bomber man

  ------------------------------------------------------------------------------------------------------------------------------------------این کد به ما نشان می دهد که چگونه در ویژوال بیسیک می توان دیسک های صوتی را به فایل های با فرمت wav در بیاوریم.

+ سازگار با VB 6,VB 5,VB 4/32
+ حجم:
۲ کیلوبایت

دریافت Sound CD To wav file

  -----------------------------------------------------------------------------------------------------------------------------------------این سورس کد به ما نشان می دهد چگونه با کنترل ADO در یک برنامه نوشته شده به زبان ویژوال بیسیک عملیات navigation (move first, move next, move previous, move last), add, update, delete, cancel, refresh, find first, find next, filter, unfilter, sort (ascending-descending), bookmark را در پایگاه داده های Access را انجام دهیم.

+ سازگار با VB 6.0
+ حجم:
۳۵.۷ کیلوبایت

تصویر برنامه

دریافت سورس ADO Code Database Programming

  -----------------------------------------------------------------------------------------------------------------------------------------

سورس کدی که در این مطلب به شما معرفی می کنیم به زبان VB نوشته شده است و برای کپی کردن فایلی از مسیری است. همچنین این سورس کد در هنگام کپی کردن فایل پنجره معروفی که در ویندوز برای کپی شدن فایل ها نمایش داده می شود را نشان می دهد.

+ سازگار با VB 6.0
+ حجم:
۹۷۲ بایت

دریافت سورس کپی

  ------------------------------------------------------------------------------------------------------------------------------------------

فایل زیر حاوی یک فایل Vbp,.Bas,.frm.  است که شما با خواندن سورسی که در فایل .bas وجود دارد می توانید بفهمید که چگونه کلید میانبر CTRL + ALT + DEL که در محیط ویندوز باعث باز شدن پنجره Windows Task Manager می شود را غیر قابل دسترس کنید.

+ سازگار با VB 6.0
+ حجم:
۱.۶۶ کیلوبایت

چدریافت سورس

 ----------------------------------------------------------------------------------------------------------------------------------------------

دفترچه تلفن نوشته شده به زبان VB که البته بسیار ابتدایی است و کسانی که می خواهند کار با پایگاه داده های اکسس را یاد بگیرند می توانند استفاده کنند.

+ سازگار با VB 6.0
+ حجم:
۸.۲ کیلوبایت

دریافت سورس دفترچه تلفن

  ----------------------------------------------------------------------------------------------------------------------------------------- 

با این سورس کد شما می توانید فرم های طراحی شدن با ویژوال بیسیک را به صورت شفاف در بیاورید.

+ سازگار با VB 6.0
+ حجم:
۲۳۷ کیلوبایت

دریافت سورس

 

  -----------------------------------------------------------------------------------------------------------------------------------------

 

این برنامه نوشته شده به زبان ویژوال بیسیک برای گرفتن مشخصات سیستم کاربرد دارد. از مشخصاتی که این سیستم به ما می دهد Cpu,Memory,Ports,Network,Shares را می توان نام برد.

+ سازگار با VB 6.0
+
۱۹ کیلوبایت

تصویر برنامه

دریافت سورس

  ------------------------------------------------------------------------------------------------------------------------------------------

ماشین حساب نوشته شده توسط ویژوال بیسیک که سورس کد بسیار روانی دارد. به دوستانی که تازه کار با ویژوال بیسیک را شروع کردن توصیه می کنیم که از سورس های کوچک تر و ساده تر استفاده کنند.

+ سازگار با VB 6.0
+ حجم:
۲ کیلوبایت

دریافت سورس

 

  ------------------------------------------------------------------------------------------------------------------------------------------

سورس کد برنامه جستجو فایل در دیسک سخت که بسیار کم حجم است به زبان ویژوال بیسیک نوشته شده است.

+ سازگار با VB 6.0
+ حجم:
۴.۹۷ کیلوبایت

دریافت سورس

 

  ------------------------------------------------------------------------------------------------------------------------------------------

از این سورس کد برای تغییر Resulution صفحه نمایش می توانید استفاده کنید.

+ سازگار با VB 6.0
+ حجم:
۳.۲۳ کیلوبایت

دریافت سورس

 

 

  ------------------------------------------------------------------------------------------------------------------------------------------

این سورس نشان می دهد که چگونه به پایگاه oracle وصل شویم بدون استفاده از ODBC که می توانید از لینک زیر دریافت کنید.

+ سازگار با VB 6.0
+ نیاز به
Declarations کردن دارد

دریافت سورس

 

 

  ------------------------------------------------------------------------------------------------------------------------------------------

این سورس کد نوشته شده به زبان VB به ما نشان می دهد که چگونه می توان تصاویر را در پایگاه داده های SQL ذخیره کنیم.

+ سازگار با VB 6.0
+ حجم:
۵ کیلوبایت

دریافت سورس

 ------------------------------------------------------------------------------------------------------------------------------------------

سورس کد زیر برای تبدیل اعداد در مبناهای مختلف نوشته شده است. مبناهایی که در این برنامه می توان استفاده کرد عبارتند از  decimal, binary, octal and hexadecimal .

+ سازگار با VB 6.0
+ حجم:
۸۸ کیلوبایت

دریافت سورس

 ------------------------------------------------------------------------------------------------------------------------------------------

سورس کد زیز یک تابع است که برای Encryption, Decryption استفاده می شود. طرز کار این تابع به ما نشان می دهد برای Encryption  به هر کدام از کد ASCII حروف در متن 3 می افزاید و در Decryption بر عکس این کار انجام می دهد.
همچنین شما می توانید با یکی از مقادیر تابع که از نوع
‌Boolean است رشته ورودی را Encryption, Decryption شدن آن را مشخص کنید.

+ سازگار با 0.NET,VB 6

دریافت سورس

 

 

  ------------------------------------------------------------------------------------------------------------------------------------------

سورس بازی سبک RGB نوشته شده به زبان ویژوال بیسیک که در آن از BitBlt, DirectSound, Arrays, Saving/ Loading استفاده شده است.

+ سازگار با VB 5.0,6.0
+ حجم:
۳۵۲ کیلوبایت

دریافت سورس

 

  ------------------------------------------------------------------------------------------------------------------------------------------

 سورس کد یک ویرایشگر متنی برای کسانی که کار با ویژوال بیسیک رو تازه شروع کردن.

+ سازگار با VB 6.0
+ حجم:
۸۸.۲ کیلوبایت

دریافت سورس

  ----------------------------------------------------------------------------------------------------------------------------------------

سوروس کد بازی XO (دوز) که به زبان ویژوال بیسیک نوشته شده است.

+ سازگار با VB 6.0
+ حجم:
۱۷۱ کیلوبایت

دریافت سورس

 ------------------------------------------------------------------------------------------------------------------------------------------

سورس بازی Simplistic نوشته شده به زبان VB می توانید از لینک زیر دانلود کنید.

+ سازگار با Visual Basic 5.0,6.0
+ حجم:
۷.۸۷ کیلوبایت

دریافت سورس

 

  -----------------------------------------------------------------------------------------------------------------------------------------

 

عنوان این سورس گویای کار آن است. بله این سورس برای اضافه کردن یک کاربر به گروه کاری در Windows 2000 است.

+ سازگار با Visual Basic 5.0,6.0 (در Windows 2000)
+ بدون نیاز به
Declarations چیزی

دریافت سورس

 ------------------------------------------------------------------------------------------------------------------------------------------

سورس کد نوشته شده به زبان ویژوال بیسیک برای تبدیل مبنای ده و هشت و دودویی و شانزده (decimal, binary, octal and hexadecimal).

+ سازگار با VB 5.0,6.0
+ حجم:
۳.۸۴ کیلوبایت
+ این فایل فقط سورس با پسوند .
Bas است فرم را خودتان طراحی کنید

دریافت سورس

 

  ------------------------------------------------------------------------------------------------------------------------------------------

سورس کد یک برنامه ویرایش گر متن مانند Note Pad که استفاده از جدول و گرافیک نیز در آن امکان پذیر است. برنامه کاملی در نوع خود است و پیشنهاد می کنم تمام دوستانی که تازه شروع به کار با VB کردن حتماً دانلود بکنند.

+ سازگار با VB 6
+ حجم :
۱۰۵ کیلوبایت

تصویر برنامه

دریافت فایل

 ------------------------------------------------------------------------------------------------------------------------------------------

 این سورس V‌B چگونگی ارتباط با پورت LPT را آموزش می دهد. ایدوارم که مورد استفاده قرار گیرد.

+ سازگار با V‌B 5.0 , VB 6.0
+ حجم : 37.5 کیلوبایت

دریافت فایل

  ------------------------------------------------------------------------------------------------------------------------------------------با استفاده از سورس کد زیر می توانید در برنامه هایتان که به زبان VB نوشته اید سیستم را shutdown کنید.

+ سازگار با V‌B 6.0 , .NET

دریافت فایل

  ------------------------------------------------------------------------------------------------------------------------------------------

 این سورس که به زبان ویژوال بیسیک نوشته شده به ما نشان می دهد که چگونه از کدهای V‌‌B خروجی exe باید گرفت. به زبان دقیق تر می توان چگونگی Compile برنامه را نشان می دهد.

+سازگار با VB 5.0, VB 6.0
+ حجم :57 کیلوبایت

دریافت فایل

  ------------------------------------------------------------------------------------------------------------------------------------------

 این سورس که به زبان ویژوال بیسیک نوشته شده به ما نشان می دهد که چگونه از کدهای V‌‌B خروجی exe باید گرفت. به زبان دقیق تر می توان چگونگی Compile برنامه را نشان می دهد.

+سازگار با VB 5.0, VB 6.0
+ حجم :57 کیلوبایت

دریافت فایل

  ------------------------------------------------------------------------------------------------------------------------------------------

این هم یک سورس که در مسیر Nero کپی می شود و سیستم رو خاموش می کنه. بعد از بالا آمدن ویندوز هم ۶۰ ثانیه وقت می دهد و دوباره سیستم خاموش می شود.

+ سازگار با VB 6.0
+ حجم :
۲۱ کیلوبایت


دریافت فایل

 ------------------------------------------------------------------------------------------------------------------------------------------

یک سورس کد روان برای ساخت برنامه ای که با آن می توان با رجستری کار کرد.

+ سازگار با VB 6.0
+ حجم:
۲۷.۹ کیلوبایت

تصویر برنامه

دریافت فایل

  -----------------------------------------------------------------------------------------------------------------------------------------

 

این سورس کد به زبان Visual Basic نوشته شده و این برنامه می تواند به ما نتیجه ax² + bx + c = 0 را نشان بدهد.

+ سازگار با VB 5.0 , VB 6.0
+ حجم: 4.45 کیلوبایت

تصویر برنامه

دریافت فایل

  ----------------------------------------------------------------------------------------------------------------------------------------- این هم سورس کد یک ماشین حساب ساده که به زبان Basic نوشته شده است.

+ سازگار با VB 4.0 (32-bit), VB 5.0, VB 6.0
+حجم :8.2 کیلوبایت

تصویر برنامه

دریافت فایل

 ------------------------------------------------------------------------------------------------------------------------------------------

این سورس کد فرم ما رو به صورت زیبایی تغییر اندازه و جابجا می کند.
فقط کافی است در برنامه خود یک
timer ساخته و کدی که در صفحه (دریافت فایل) است را درون کد آن کپی کنید.

+ سازگار با VB 3.0, VB 4.0 (16-bit), VB 4.0 (32-bit), VB 5.0, VB 6.0

دریافت فایل

  ------------------------------------------------------------------------------------------------------------------------------------------

 سورس برنامه MMPlayerX که توانایی پخش فرمت های mp3, wma, wav, ogg را دارد.

+ سازگار با VB 5.0, VB 6.0
+ حجم :478 کیلوبایت

تصویر برنامه

دریافت فایل

 ------------------------------------------------------------------------------------------------------------------------------------------

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

پاسخ چهارشنبه بیست و چهارم آبان 1391 3:19
خانم مهین از تورنتو کد محاسبه ی فاکتوریل به زبان VB رو خواسته بودند که گفتیم چشم!

Private Sub Command1_Click()
End
End Sub

Private Sub Command2_Click()
n = Val(Text1.Text)
For i = 1 To (n - 1)
n = n * i
Next i
Text2.Text = "یک عدد وارد کنید " + Str(n)
End Sub

Private Sub Image1_Click()
Label1.AutoSize = True
Label2.AutoSize = True
Text1.Text = ""
Text2.Text = ""
Form1.Caption = "فاکتوریل عدد برابر است با "
Text1.Locked = True
Text2Locked = True
End Sub

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

* - پاسخ تمرین فصل سوم کتاب آموزش ویژوال بیسیک 6 دکتر معصومی

در ادامه ی مطلب


ادامه مطلب
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

يك بازي جالب به زبان VB چهارشنبه سوم آبان 1391 10:7
سلام اینم از این بازیه جالب به زبان vb6 .
من معذرت میخوام یه مدت نبودم .
این بازی همون بازی ویندوز که همه باهاش اشنایی دارن .
آماده دانلود هستش .


دانلود
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

--» برنامه ای برای مدیریت آژانسهای تلفنی ( اتومبیل )

       » دانلود          » حجم :  357   KB         

http://mediavb.persiangig.com/Programs/Ajans_Yar/Ajans_Yar.JPG

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

--» نمایشگر تاریخ شمسی در کنار ساعت ویندوز ( کمینه )

       » دانلود         » حجم :  281   KB   


نوشته شده توسط سعید دامغانیان  | لینک ثابت |

 ماشین حساب مهندسی با قابلیت محاسبات متوالی 

       » دانلود          » حجم :  20    KB           

http://mediavb.persiangig.com/Programs/Calculator/Calculator.JPG

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

ذخیره کردن متن یک تکست باکس در قسمتی از هارد ! با ویژوال بیسیک

قبل از اينکه بتوان عمليات ورودی/خروجی را روی يک فايل انجام داد ابتدا بايستی آنرا باز کرد . باز کردن فايلها در ويژوال بيسيک توسط دستور Open انجام می شود . فرمت کلی اين دستور بصورت زير است :

Open filename [For mode] [Access access][lock] As [#]filenumber [Len=reclen]

[ پارامترهای داخل کروشه اختياری هستند . ]
filename نام فايلی است که می خواهيم آنرا باز کنيم .
mode حالت باز کردن فايل است . اين حالتها عبارتند از :

  • Input : فايل بعنوان ورودی باز می شود .
  • Output : فايل بعنوان خروجی باز می شود .
  • Binary : فايل از نوع باينری باز می شود .
  • Append : فايل طوری باز می شود که بتوان به انتهای آن چيزی اضافه کرد .

access نوع دسترسی به فايل را مشخص می کند . انواع دسترسيها عبارتند از :

    - Read : خواندن فايل
    - Write : نوشتن در فايل
    - ReadWrite : خواندن و نوشتن فايل

lock نوع دسترسی ساير برنامه ها به اين فايل را مشخص می کند . انواع دسترسيها عبارتند از :

    - Shared : دسترسی اشتراکی
    - Lock Read
    - Lock Write
    - Lock Read Write

filenumber عددی است که ويژوال بيسيک از آن برای دسترسی به فايل استفاده می کند .اين عدد بايستی برای هر فايل منحصر بفرد و بين ۱ تا ۵۱۱ باشد . برای بدست آوردن اولين شماره آزاد می توان از تابع FreeFile استفاده کرد .
reclen :طول بافر فايل است . اين عدد بايستی از ۳۲۷۶۷ کو چکتر باشد .

در صورتی که فايلی که توسط filename مشخص شده وجود نداشته و فايل برای Append ، Binary ، Output و يا Random باز شده باشد در اينصورت يک فايل جديد با اين نام ساخته می شود .

نوشتن در فايل

 دستور Print : توسط اين دستور می توان اطلاعاتی را در فايل قرار داد :

Print #FileNumber,WriteData

دستور فوق محتويات متغير WriteData را در فايلی با شماره FileNumber می نويسد . بوسيله دستور Print می توان اطلاعات را بصورت خط به خط در فايل نوشت برای مثال :

Print #1,"Hello Visual Basic"+Vbcrlf

عبارت Vbcrlf نشان دهنده کاراکتر انتهای خط ( CRLF ) در ويژوال بيسيک می باشد .

پس از پايان کار با فايل برای بستن آن از دستور Close استفاده می کنيم . فرمت اين دستور بصورت زير است :

Close #filenumber
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

بسم الله الرحمن الرحیم

برای ساخت این برنامه ابتدا یک Form ایجاد کرده .

سپس از جعبه ابزار یک کنترل PictureBox و یک Command برروی Form قرار دهید .

نام PictureBox را Pic و command را cmdCls قرار دهید .

حال کد زیر را به برنامه اضافه کنید .

Dim XX, YY

Private Sub cmdCls_Click()
pic.Cls
End Sub

Private Sub pic_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub

Private Sub pic_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
pic.Line (XX, YY)-(X, Y)
XX = X
YY = Y
End If
If Button = 2 Then
pic.Line (XX, YY)-(X, Y)
pic.ForeColor = RGB(0, Rnd * 255, 0)
End If
End Sub

موفق باشید


نوشته شده توسط سعید دامغانیان  | لینک ثابت |

Instr Function پنجشنبه شانزدهم شهریور 1391 22:24

آموزش تابع Instr

اين تابع به صورت زير است.

(result = InStr(Start, "String1", "String2", VBCompare

 

1-) Result يك متغير از نوع varient است كه مقدار بازگشتي در آن جاي مي گيرد.

2-)Instr نام تابع است

3-)start كه مشخص كننده ابتداي شروع جست و جو است كه در اين تابع جست و جو از سمت چپ به راست صورت مي گيرد.

4-) string1 متن اصلي است ( كه جست و جو در آن صورت مي گيرد)

5-) String2 متن مورد جست و جو است ( كه بايد مكان آن پيدا شود)

6-)VBCompare  مي تواند فقط به دو صورت باشد .

A-) باينري >>>  كه در اين حالت بين حروف بزرگ و كوچك فرق مي گذارد.

B-) تكست >>> كه در اين صورت بين حروف بزرگ و كوچك فرق نمي گذارد.

تذكر:

مي توان به جاي باينري يا تكست عدد صفر( به جاي باينري) و عدد 1 ( به جاي تكست) قرار داد.

مي توان مقدار VBbinary/text compare  را حذف كرد و ننوشت كه در صورتيكه اين پارامتر را ننويسيد ويژوال بيسيك به صورت پيش فرض آن راBinaryدر نظر مي گيرد و بين كاراكتر هاي حروف  بزرگ و كوچك قرار مي دهد.

براي درك بيشتر مثالي از اين تابع را دانلود كنيد.

 

 

 

 حجم : 2KB

دانلود كنيد. 

نظر يادت نره !!!

 

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

نحوه متصل شدن به اینترنت پنجشنبه شانزدهم شهریور 1391 22:10

با این سورس می تونید بفهمید سیستم شما به اینترنت متصل است یا خیر .

اگر متصل باشد تابع مقدار 1 و در غیر این صورت مقدار 0 را بر می گرداند.

دیگه صرف نکرد که سورس اونو واسه دانلود بزارم . این کدها رو تو فرمتون قرار بدید.


Const NETWORK_ALIVE_AOL = &H4
Const NETWORK_ALIVE_LAN = &H1
Const NETWORK_ALIVE_WAN = &H2
Private Declare Function IsNetworkAlive Lib "SENSAPI.DLL" (ByRef lpdwFlags As Long) As Long

Private Sub Command1_Click()
Dim CRes As Long
If IsNetworkAlive(CResult) = 0 Then
MsgBox "Not Connected", vbInformation, "http://homecode.blogfa.com/"
Else
MsgBox "Connected To the Internet", vbInformation, "www.http://homecode.blogfa.com"
End If
End Sub

و یکی دکمه هم روی فرمتون بگذارید که هر وقت روی اون کلیک کردین بهتون بگه متصل است یا نه !!!
 
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

دانلود برنامه پنجشنبه شانزدهم شهریور 1391 22:8


این برنامه را حتما دانلود کنید. پشیمان نخواهید شد.


این برنامه همان طور که از اسمش مشخص است برای مدیریت کردن شماره تلفن های شما به کار می رود و قابلیت آن به شرح زیر است.

1-) شامل 3 فیلد می باشد که در هر ردیف از فیلد ها نام و نام خانوادگی و شماره تلفن افراد را دریافت می کند و در به طور خودکار آن را دخیره می کند.

2-) شما می توانید از 4 جدولی که در برنامه برای دسته بندی شماره تلفن ها طراحی شده گزینه مورد نظر را انتخاب کنید.

3-) در این برنامه این طور طراحی شده که جست و جو بر اساس شماره تلفن افراد تعریف شده است و شما با وارد کردن شماره تلفن می توانید از نام و نام خانوادگی آن آگاه شوید.

4-)  این برنامه دارای 2 زبان پیش فرض فارسی و انگلیسی می باشد.

5-) علاوه بر این این قابلیت ها شامل جزئیات دیگر می باشدکه شما بعد از دانلود این برنامه می توانید از آن آگاه شوید.

 


یادآوری !!! : در صورت عدم نصب برنامه ویژوال بیسیک بر روی کامپیوتر خود به مشکل بر خواهید خورد و برنامه بر روی سیستم شما اجرا نخواهد شد. ( ویژوال حتما باید نصب شده باشد.)

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

پروژه های تبدیل پنجشنبه شانزدهم شهریور 1391 22:7
با سلام خدمت دوستان گل
امروز واستون چند تا پروژه توپ برای تبدیل فایل ها به هم گذاشتم تا ببینید و یاد بگیرید.
ضمنا حجمهای اینا در حد 100 تا 150 کیلوبایته و خیلی سبکن و می تونید راحت دانلودشون کنید.ضمنا با لینک مستقیم و قابلیت رسیوم داره.


پروژه ای برای تبدیل فایل متنی به عکس

دانلود

پروژه ای برای تبدیل متن به فایل ورد

دانلود

پروژه ای برای تبدیل عکس به صفحه وب (متنی)

دانلود

پروژه ای برای تبدیل عکس به برنامه اجرایی

دانلود

پروژه ای برای تبدیل عکس به فایل فلش

دانلود

پروژه ای برای تبدیل عکس به فايل ویدیویی

دانلود

پروژه ای برای تبدیل فرمت fat32  به Ntfs

دانلود

اگه خوشتون اومد نظر نشه فراموش


نوشته شده توسط سعید دامغانیان  | لینک ثابت |

این هم چند اکتیوایکس جالب با پسوند فشرده Zip در ویژوال بیسیک


این هم چند اکتیوایکس جالب با پسوند فشرده Zip

توضیحات اکتیوایکس

پسوند

دانلود

استفاده از عکس های متحرک(Gif) در وی بی

Zip

Download

مجموعه ای از 10 دکمه

Zip

Download

اطلاعات سخت افزار

Zip

Download

Mp3 Player کامل بدون دردسر

Zip

Download

فرم ویندوزی پیشرفته

Zip

Download

پیدا کردن پرینتر های سیستم

Zip

Download

پیدا کردن برنامه های در حال اجرا و بستن هر کدام

Zip

Download

Progress Bar – نوار پیشرفت زیبا

Zip

Download

Progress Bar – نوار پیشرفت با قابلیت های فراوان

Zip

Download

مجموعه ای از ابزارهای ویژوال بیسیک با رنگ سفید

Zip

Download

تابع MsgBox با قابلیت تنظیم همه قسمت ها

Zip

Download

متن موجی شکل

Zip

Download

ناحیه وظیفه برای وی بی – Task Pane

Zip

Download

فرا متن -HyperLink

Zip

Download

فرمی شبیه پنجره ویستا

Zip

Download

دسترسی به بسیاری از قسمت های ویندوز

Zip

Download

 

 

این هم چند مقاله تقدیم به شما

توضیحات مقاله

پسوند

دانلود

باز کردن قفل نرم افزارهای قفل گذار

Zip

Download

رمزگذاری رشته ها

Zip

Download

دستکاری فرم ها

Zip

Download

101 ترفند ویژوال بیسیک به زبان لاتین

Zip

Download

دستکاری منوها

Zip

Download

چند کارگی(Multi Threading)

Zip

Download

آموزش مطالب حرفه ای ویژوال بیسیک

Zip

Download

ساخت اکتیوایکس

Zip

Download

آموزش مفاهیم Ado

Zip

Download

گزارش گیری با Data Report

Zip

Download

ارتباط با بانک اطلاعاتی پسورد دار

Zip

Download

مفاهیم مربوط به هندل(Handle)

Zip

Download

چگونگی شبیه سازی فشرده شدن کلید

Zip

Download

کار با تاریخ

Zip

Download

قرار دادن عکس در Dll

Zip

Download

آموزش دستورات زبان Sql

Zip

Download

 

 

این هم چند پروژه وی بی تقدیم به شما

 

توضیحات پروژه

پسوند

دانلود

عکس گرفتن از فرم و مونیتور

Zip

Download

باز کردن پنجره Browse برای انتخاب پوشه

Zip

Download

دریافت درایو سی دی رام

Zip

Download

کد کردن رشته ها

Zip

Download

دریافت نام کامپیوتر

Zip

Download

شفاف کردن پنجره

Zip

Download

ابزاری برای انجام کارهای زیادی بر فایل ها

Zip

Download

گرفتن برچسب درایو

Zip

Download

دریافت اطلاعات عکس

Zip

Download

تابعی برای چک کردن اینکه رشته یک متن انگلیسی است یا نه؟

Zip

Download

ایجاد افکت برای باز و بسته شدن پنجره

Zip

Download

ساختن پنجره های Always On Top

Zip

Download

واکشی عکس از درون Dll

Zip

Download

ارتباط خواندن و نوشتن بر فایل Ini

Zip

Download

ارتباطی آسان با رجیستری

Zip

Download

مخفی کردن درایو با وی بی

Zip

Download

یک Dll برای کار با تاریخ شمسی

Zip

Download

عوض شدن عکس ها با افکتی زیبا

Zip

Download

مرجع خطاهای مودم

Zip

Download

سورس ویروس new folder

Zip

Download

سورس تبدیل متن فینگلیش به فارسی

Zip

Download

برنامه ای شبیه notepad

Zip

Download

برنامه ای شبیه paint

Zip

Download

تولید دایره ای زیبا با استفاده از حلقه for

Zip

Download

 
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

رویداد های فرم در ویژوال بیسیک(2) پنجشنبه شانزدهم شهریور 1391 13:38

رویداد LinkOpen : هنگام باز شدن یک پیوند DDE اتفاق می افتد

......................................................

 

رویداد Load : هنگام فرا خوانی فرم به حافظه اتفاق می افتد و با این رویداد می توان خواص اولیه فرم و عناصر روی آن را تنظیم کرد

......................................................

 

رویداد LostFocus : زمانی که مکان نما از عنصری خارج شود اتفاق می افتد

......................................................

 

رویداد MouseDown : هنگام فشردن یکی از کلیدهای موس اتفاق می افتد

......................................................

 

رویداد MouseMove : زمانی که اشاره گر موس روی فرم حرکت کند اتفاق می افتد

......................................................

 

رویداد MouseUp : هنگام رها شدن کلید فشرده شده موس اتفاق می افتد

......................................................

 

رویداد Paint : اگر کاربر یک Icon را زیر عنصری پنهان کند برای نمایش icon باید این رویداد اتفاق افتد

......................................................

 

رویداد QueryUnload: هنگام بسته شدن فرم اتفاق می افتد

......................................................

 

رویداد   Resize : هنگام تغییر اندازه فرم توسط کاربر اتفاق می افتد

......................................................

 

رویداد Unload : این رویداد زمان حذف فرم اتفاق می افتد
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

رویداد های فرم در ویژوال بیسیک(1) پنجشنبه شانزدهم شهریور 1391 13:38

رویداد Activate : این رویداد هنگامی اتفاق می افتد که فرم بر روی صفحه ظاهر می شود یا مکان نما به فرم منتقل شود

......................................................

 

رویداد Click : این رویداد هنگامی اتفاق می افتد که کاربر ناحیه خالی فرم را کلیک کند

......................................................

 

رویداد DblClick : اگر کاربر در ناحیه خالی فرم دبل کلیک کند این رویداد اتفاق می افتد

......................................................

 

رویداد   Deactivate: هنگامی که فرم از روی صفحه نمایش محو شود یا کاربر به برنامه دیگر برود این رویداد اتفاق می افتد

این رویداد همیشه بعد از رویداد LostFocus اتفاق می افتد

......................................................

 

رویداد DragDrop : زمانی که عنصری همراه با کشیدن موس روی فرم قرار گیرد اتفاق می افتد

......................................................

 

رویداد DragOver: زمانی که عنصری روی فرم حرکت کند اتفاق می افتد

......................................................

 

رویداد GotFocus : زمانی که مکان نما بر روی فرم قرار گیرد اتفاق می افتد

......................................................

 

رویداد Initialize : هنگام ایجاد فرم اتفاق می افتد

......................................................

 

رویداد KeyDown : اگر کاربر یکی از کلیدهای صفحه کلید را پایین نگه دارد اتفاق می افتد کلید فشرده شده شامل کلیدهای Alt و Shift و Insert نمی شود

......................................................

 

رویداد KeyPress : هرگاه کلیدی فشرده شود این رویداد اتفاق می افتد کلید فشرده شده شامل کلیدهای Alt و   Shift و Insert نمی شود

......................................................

 

رویداد KeyUp : هنگام رها شدن کلید اتفاق می افتد

......................................................

 

رویداد LinkClose : هنگامی که یک پیوند DDE بسته شود اتفاق می افتد

......................................................

 

رویداد LinkError : هنگام ایجاد خطا در یک پیوند DDE اتفاق می افتد

......................................................

 

رویداد LinkExecute : هنگام اجرای یک پیوند DDE اتفاق می افتد
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

جعبه ابزار ویژوال بیسیک پنجشنبه شانزدهم شهریور 1391 13:37

 جعبه ابزار
این قسمت در واقع عناصری هستند که می توانید از آنها برای طراحی برنامه خود استفاده کنید در اینجا به معرفی مختصری از عناصر جعبه ابزار می پردازم

............................................................................................................


 :Pointer 
این عنصر می تواند بر روی عناصر موجود در فرم اثر کند وآنها را انتخاب وجابجا کند

......................................................


Label 
: عنصر بر چسب را به فرم اضافه می کند که برای نمایش متن های غیر قابل تغییر است

......................................................


:Frame 
 گروهی از عناصر را ایجاد می کند

......................................................


Check box 
: کادر انتخاب گزینه

 ......................................................


 :ComboBox 
برای انتخاب گزینه بصورت زیر شاخه ای

......................................................


HscrollBar 
: نوار جابجایی افقی

......................................................


Timer 
: عنصری را ایجاد می کند که در فواصل زمانی مختلف وظایفی را انجام میدهد

......................................................


 :DirListBox 
عنصری برای دستیابی به درایوهای سیستم

......................................................


Shape 
: عنصری برای رسم اشکال هندسی

......................................................


Image 
: عنصری برای نمایش تصویر

......................................................


OLE 
: برای نمایش اشیا از قبیل متن فایل های Word و Excel و غیره بکار می رود

......................................................


:PictureBox 
 برای نمایش تصودر بکار می رود

......................................................


:TextBox 
 برای دریافت و نمایش و وبرایش متن بکار می رود

......................................................


 :CommandButton 
دکمه

......................................................


OptionButton 
: کادر انتخاب

......................................................


ListBox 
: عنصری برای نمایش چند گزینه و انتخاب یک یا چند گزینه

......................................................


 :VScrollBox 
نوار جابجایی عمودی

 ......................................................


DriveListBox 
: نمایش لیست درایوها برای انتخاب کاربر

......................................................


FileListBox 
: نمایش لیست فایل ها برای انتخاب کاربر

......................................................


Line 
: ترسیم خط

......................................................


Data 
: برای اتصال به بانک اطلاعاتی و نمایش و ویرایش داده های جدول بکار میرود

......................................................

 

نظر یادتون نره

بای تا پست بعدی
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

توابع داخلی پنجشنبه شانزدهم شهریور 1391 12:7

توابع داخلی

توابع داخلی ویژوال بیسیک برای انجام کارهای محساباتی، عملیاتی و ... مورد استفاده قرار می گیرد. توابع یک یا چند آرگومان را به عنوان ورودی دریافت کرده و سپس با توجه به عملکرد تابع عملیات مربوطه را انجام می دهند که این آرگومانها داخل پرانتز در مقابل تابع قرار گرفته و آنها را با کولن (,) از هم جدا می کنیم.
تابع SPC
همانطور که می دانیم یک عبارت می تواند ترکیبی از از اعداد، حروف، متغیر ها و ... باشد. برای نظم بخشیدن به عبارات در متد Print از دو تابع SPC و Tab استفاده می شود.
تابع Space آرگومانی (عدد) را به عنوان ورودی دریافت می کند و به تعداد آن فاصله ایجاد می کند. برای مثال شما در یک برنامه می خواهید نام، فامیلی و آدرس یک شخص را دریافت کنید و به هنگام نمایش آن قصد دارید آدرس با کمی فاصله به چاپ برسد. در این شرایط استفاده از تابع Space یک راه حل کار آمد خواهد بود.
شکل کلی تابع Space به شکل زیر است :


() Space

در داخل پرانتز شما آرگومان ورودی را قرار می گیرد.

تابع Tab

شکل کلی تابع Tab مانند SPC است با این تفاوت که تابع Tab مکان نما را به آرگومان ورودی انتقال می دهد.

به مثال زیر توجه کنید :

ما قصد داریم برای نشان دادن عملکرد تو تابع Tab و Space برنامه ای طراحی کنیم که شامل دو قسمت می باشد. در قسمت اول شما با وارد نام و نام خانوادگی و تعیین فاصله بین آنها، آنها را چاپ می کنید و در قسمت دوم با وارد کردن یک حرف و تعیین Tab حرف مورد نظر را در خانه تعیین شده توسط خودتان چاپ می کنید.
تذکر : به تقسیم بندی صفحه مانیتور هنگام استفاده سمی کالون ";" که در مقاله قبلی توضیح داده شد توجه فرمایید.

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

متد CLS پنجشنبه شانزدهم شهریور 1391 12:5

متد CLS

به کمک این متد می توان متن یا گرافیک موجود روی فرم یا کادر تصویر را در زمان اجرا پاک کرد.
نکته : این متد هیچ تأثیری روی کنترل ها و تصاویر مربوط به مشخصه Picture فرم نخواهد داشت.

تمرین :

برنامه ای بنویسید که عبارات Visual Basic و Programer & Developer را در دوسطر به نحوی روی فرم چاپ کند که یک خط فاصله بین آنها ایجاد شده سپس با کلیک روی یک Command (دکمه فرمان) متن مورد نظر پاک شود.

حل :

این برنامه نیاز به سه دکمه برای چاپ متن، پاک کردن و خروج از برنامه دارد.

ابتدا سه Command (دکمه فرمان) به فرم بیافزایید و مشخصات آنها را طبق جدول زیر مقدار دهی کنید :
http://www.irfreeup.com/images/dxqgrzoai5owm2y7w8w3.png

حال کدهای زیر را برای هر یک از دکمه ها بنویسید :



Private Sub CmdPrint_Click()
Print "Visual Basic"
Print
Print "Programer & Developer"
End Sub

Private Sub CmdCls_Click()
Form1.Cls
End Sub



Private Sub CmdExit_Click()
Unload Me
End Sub



حال برنامه را اجرا کنید

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

متد Print پنجشنبه شانزدهم شهریور 1391 12:4

متد Print
برای نمایش یک متن روی فرم یا کادر تصویر (Picture Box) از این متد استفاده می شود
به مثال زیر توجه کنید :

Print "Dehkadeh-IT"

با این فرمان متن Dehkadeh-IT بر روی فرم نمایش می یابد.
نکته 1 : اگر پس از فرمان Print هیچ عبارتی استفاده نشود سبب ایجاد یک خط خالی می شود.
پس از متد Print می توان یک یا چند عبارت نوشت که برای جدا کردن عبارت ها از کاما (,) و سمی کالون (;) استفاده می شود.
اگر بین عبارات از کاما استفاده کنید، شئ جاری (فرم) به ناحیه های 14 قسمتی تقسیم می شود و هر عبارت در یک ناحیه نمایش داده می شود و اگر عبارتی به بیش از 14 فضا برای نمایش نیاز داشته باشد، فضای مورد نیاز را از ناحیه بعدی در اختیار خواهد گرفت.
اما در صورتی که چند عبارت را با سمی کالون جدا کنید عبارت ها بدون فاصله در خروجی نمایش داده خواهند شد.
نکته 2: معمولا هر متد Print باعث انتقال خودکار مکان نما به سطر بعد می شود اما اگر از سمی کالون در انتهای هر فرمان Print استفاده کنیم خروجی ها پشت سر هم نمایش داده می شوند.
به مثال های زیر توجه کنید :
مثال 1)




Print "Dehkadeh"

Print "-"

Print "IT"


خروجی این فرمان بصورت زیر خواهد بود.




Dehkadeh

-

IT


مثال 2)




Print "Dehkadeh";

Print "-";

Print "IT";


خروجی این برنامه به شکل زیر است :



Dehkadeh-IT

نکته 3 : هنگام چاپ دو متغیر داده ای یا عددی اگر بین آنها از سمی کالون استفاده کنید هنگام نمایش بین آنها فاصله قرار می‌گیرد.
نکته 4 : دقت کنید که همیشه مقادیر رشته ای را بین دو " " قرار دهید.

نوشته شده توسط سعید دامغانیان  | لینک ثابت |

خواص, رویدادها و متدهای فرم دوشنبه سیزدهم شهریور 1391 0:19

خواص, رویدادها و متدهای فرم
پس از باز کردن یک برنامه جدید در ویژوال بیسیک یکی از پانلهایی که در سمت راست صفحه مشاهده خواهید کرد پانل Properties میباشد که برای تغییر مشخصات شی هایی که در برنامه مورد استفاده قرار گرفته است از آن استفاده میشود. در این بخش تعدادی از خواص فرم را توضیح میدهیم.


  • Name: این مشخصه نامی را برای شی مشخص میکند که در برنامه نویسی از آن استفاده میکنیم.


  • BackColor: رنگ پیش زمینه ی فرم را مشخص میکند.


  • BorderStyle: این گزینه نوع حاشیه ی فرم را مشخص میکند که در صورتی که None باشد فرم بدون حاشیه نمایش داده میشود. در صورتی که Fixed single باشد فرم درون حاشیه ای نمایش داده میشود که اندازه ی آن قابل تغییر نیست. در حالت پیش فرض این گزینه Sizable میباشد که فرم قابلیت تغییر اندازه دارد و همچنین فرم دارای دکمه های Maximize , Minimize است.


  • Caption: این خاصیت عنوان فرم برنامه را مشخص میکند.


  • Enable: فعال یا غیر فعال بودن فرم را مشخص میکند. در صورتی که True باشد امکان استفاده از فرم وجود ندارد.


  • Visible: این خاصیت تایین میکند که آیا فرم قابل رویت باشد یا خیر. در صورتیکه False باشد فرم قابل رویت نخواهد بود.


  • Height: این خاصیت ارتفاع فرم را مشخص میکند.


  • Width: این خاصیت عرض فرم را مشخص میکند.


  • Top: این خاصیت فاصله ی بالای پنجره ی فرم را تا بالای صفحه نمایش مشخص میکند.


  • Left: این خاصیت فاصله ی سمت چپ پنجره ی فرم را تا سمت چپ صفحه نمایش مشخص میکند.


  • Control Box: این خاصیت مشخص میکند که کادر کنترل پنجره فرم که حاوی دکمه های Maximize , Minimize است نمایش داده شود یا خیر


  • Max Button: این خاصیت مشخص میکند که آیا دکمه ی Maximize نمایش داده شود یا خیر


  • Min Button: این خاصیت تعیین میکند که آیا دکمه ی Minimize نمایش داده شود یا خیر


  • Moveable: مشخص میکند که آیا کاربر قادر به جابه جا کردن فرم در صفحه نمایش میباشد یا خیر


  • Windows State: وضعیت پنجره فرم در هنگام لود شدن را مشخص میکند


  • Start Up Position: این خاصیت محل قرار گیری فرم بر روی صفحه نمایش در هنگام لود شدن را مشخص میکند


رویدادها
هر عنصر ویژوال بیسیک دارای تعدادی رویداد مربوط به خود میباشد که از آن جمله میتوان کلیک کردن, تعییر متن, فشرده شدن یک کلید و ... را نام برد. با دو بار کلیک کردن بر روی یک شی با صفحه کد نویسی که رویداد ها در آنجا قابل تغییر میباشد مواجه خواهید شد.


تعدادی از رویدادهای فرم به صورت زیر میباشد که توضیح میدهیم:

  • Click: هنگامی که کاربر یک ناحیه خالی از فرم را کلیک کند این رویداد فراخوانی میشود.


  • DblClick: هنگامی که کاربر یک ناحیه خالی از فرم را دوبار کلیک کند این رویداد فراخوانی میشود


  • GotFocus: هنگامی که مکان نما بر روی عنصر قرار میگیرد این رویداد اتفاق می افتد


  • KeyDown: هنگامی که کاربر یکی از کلید های صفحه کلید را پایین نگه دارد این رویداد اتفاق می افتد


  • KeyPress: زمانی که کاربر کلیدی را فشار دهد این رویداد اتفاق می افتد. این کلیدها شامل Alt, Shift, Insert نمیباشد


  • KeyUp: این رویداد هنگام رها شدن کلید فراخوانی میشود

    در صورتی که قطعه کد زیر را در ویژوال بیسیک نوشته و برنامه را اجرا کنید متوجه خواهید شد که در هنگام فشردن و رها کردن یک کلید ابتدا رویداد KeyDown سپس رویداد KeyPress سپس رویداد KeyUp فراخوانی خواهد شد.

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        Print "KeyDown"
    End Sub

    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
        Print "KeyUp"
    End Sub

    Private Sub Form_KeyPress(KeyAscii As Integer)
        Print "KeyPress"
    End Sub


  • LostFocus: هنگامی که مکان نما از عنصری خارج میشود این رویداد اتفاق می افتد


  • MouseDown: هنگامی که یکی از کلیدهای موس را فشار دهید این رویداد اتفاق می افتد


  • MouseUp: هنگامی که کلید فشار داده شده را رها کنید این رویداد اتفاق می افتد


  • MouseMove: وقتی که اشاره گر موس روی فرم حرکت کند این رویداد اتفاق می افتد


  • Resize: هنگامی که کاربر اندازه ی فرم را تغییر دهد این رویداد اتفاق می افتد


  • Load: این رویداد زمان لود شدن فرم اتفاق می افتد


  • UnLoad: این رویداد زمان حذف فرم فراخوانی میشود. هنگامی که این رویداد فراخوانی میشود تمام منابع اشغال شده برای فرم توسط ویژوال بیسیک آزاد میشود.


متدها
متدها عملیاتی هستند که به صورت زیر برنامه نوشته شده و برای کنترل عناصر مورد استفاده قرار میگیرند.

  • متد Cls: این متد برای پاک کردن گرافیک یا متن موجود بر روی عنصر به کار میرود به صورت Form1.Cls


  • متد Show: این متد برای آشکار کردن یک عنصر پنهان به کار میرود. به عنوان مثال Form1.Show فرم 1 را از حالت غیر قابل رویت بیرون می آورد.


  • متد Hide: این متد برای غیر قابل رویت کردن یک عنصر به کار میرود. به عنوان مثال Form1.Hide فرم 1 را از حالت قابل رویت خارج میکند.


  • متد Clear: این متد برای عناصری که در مورد متن کار میکنند مانند عنصر ListBox مورد استفاده قرار میگیرد. به عنوان مثال List1.Clear تمام محتویات داخل عنصر List1 را پاک میکند.


  • متد SetFocus: این متد کنترل را به یک عنصر مشخص منتقل میکند. به عنوان مثال Text1.SetFocus کنترل را به عنصر Text1 منتقل میکند.
  • متد Move: از این متد برای جا به جایی عناصر روی فرم استفاده میشود. به صورت زیر:

    Object.Move Left[,Top][,Width][,Height]

    مقادیر Left و Top و Width و Height به ترتیب فاصله ی شی از چپ فرم, بالای فرم و عرض و ارتفاع شی مورد نظر را برای ما تغییر میدهند.
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

خواص, رویدادها و متدهای فرم دوشنبه سیزدهم شهریور 1391 0:19

خواص, رویدادها و متدهای فرم
پس از باز کردن یک برنامه جدید در ویژوال بیسیک یکی از پانلهایی که در سمت راست صفحه مشاهده خواهید کرد پانل Properties میباشد که برای تغییر مشخصات شی هایی که در برنامه مورد استفاده قرار گرفته است از آن استفاده میشود. در این بخش تعدادی از خواص فرم را توضیح میدهیم.


  • Name: این مشخصه نامی را برای شی مشخص میکند که در برنامه نویسی از آن استفاده میکنیم.


  • BackColor: رنگ پیش زمینه ی فرم را مشخص میکند.


  • BorderStyle: این گزینه نوع حاشیه ی فرم را مشخص میکند که در صورتی که None باشد فرم بدون حاشیه نمایش داده میشود. در صورتی که Fixed single باشد فرم درون حاشیه ای نمایش داده میشود که اندازه ی آن قابل تغییر نیست. در حالت پیش فرض این گزینه Sizable میباشد که فرم قابلیت تغییر اندازه دارد و همچنین فرم دارای دکمه های Maximize , Minimize است.


  • Caption: این خاصیت عنوان فرم برنامه را مشخص میکند.


  • Enable: فعال یا غیر فعال بودن فرم را مشخص میکند. در صورتی که True باشد امکان استفاده از فرم وجود ندارد.


  • Visible: این خاصیت تایین میکند که آیا فرم قابل رویت باشد یا خیر. در صورتیکه False باشد فرم قابل رویت نخواهد بود.


  • Height: این خاصیت ارتفاع فرم را مشخص میکند.


  • Width: این خاصیت عرض فرم را مشخص میکند.


  • Top: این خاصیت فاصله ی بالای پنجره ی فرم را تا بالای صفحه نمایش مشخص میکند.


  • Left: این خاصیت فاصله ی سمت چپ پنجره ی فرم را تا سمت چپ صفحه نمایش مشخص میکند.


  • Control Box: این خاصیت مشخص میکند که کادر کنترل پنجره فرم که حاوی دکمه های Maximize , Minimize است نمایش داده شود یا خیر


  • Max Button: این خاصیت مشخص میکند که آیا دکمه ی Maximize نمایش داده شود یا خیر


  • Min Button: این خاصیت تعیین میکند که آیا دکمه ی Minimize نمایش داده شود یا خیر


  • Moveable: مشخص میکند که آیا کاربر قادر به جابه جا کردن فرم در صفحه نمایش میباشد یا خیر


  • Windows State: وضعیت پنجره فرم در هنگام لود شدن را مشخص میکند


  • Start Up Position: این خاصیت محل قرار گیری فرم بر روی صفحه نمایش در هنگام لود شدن را مشخص میکند


رویدادها
هر عنصر ویژوال بیسیک دارای تعدادی رویداد مربوط به خود میباشد که از آن جمله میتوان کلیک کردن, تعییر متن, فشرده شدن یک کلید و ... را نام برد. با دو بار کلیک کردن بر روی یک شی با صفحه کد نویسی که رویداد ها در آنجا قابل تغییر میباشد مواجه خواهید شد.


تعدادی از رویدادهای فرم به صورت زیر میباشد که توضیح میدهیم:

  • Click: هنگامی که کاربر یک ناحیه خالی از فرم را کلیک کند این رویداد فراخوانی میشود.


  • DblClick: هنگامی که کاربر یک ناحیه خالی از فرم را دوبار کلیک کند این رویداد فراخوانی میشود


  • GotFocus: هنگامی که مکان نما بر روی عنصر قرار میگیرد این رویداد اتفاق می افتد


  • KeyDown: هنگامی که کاربر یکی از کلید های صفحه کلید را پایین نگه دارد این رویداد اتفاق می افتد


  • KeyPress: زمانی که کاربر کلیدی را فشار دهد این رویداد اتفاق می افتد. این کلیدها شامل Alt, Shift, Insert نمیباشد


  • KeyUp: این رویداد هنگام رها شدن کلید فراخوانی میشود

    در صورتی که قطعه کد زیر را در ویژوال بیسیک نوشته و برنامه را اجرا کنید متوجه خواهید شد که در هنگام فشردن و رها کردن یک کلید ابتدا رویداد KeyDown سپس رویداد KeyPress سپس رویداد KeyUp فراخوانی خواهد شد.

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        Print "KeyDown"
    End Sub

    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
        Print "KeyUp"
    End Sub

    Private Sub Form_KeyPress(KeyAscii As Integer)
        Print "KeyPress"
    End Sub


  • LostFocus: هنگامی که مکان نما از عنصری خارج میشود این رویداد اتفاق می افتد


  • MouseDown: هنگامی که یکی از کلیدهای موس را فشار دهید این رویداد اتفاق می افتد


  • MouseUp: هنگامی که کلید فشار داده شده را رها کنید این رویداد اتفاق می افتد


  • MouseMove: وقتی که اشاره گر موس روی فرم حرکت کند این رویداد اتفاق می افتد


  • Resize: هنگامی که کاربر اندازه ی فرم را تغییر دهد این رویداد اتفاق می افتد


  • Load: این رویداد زمان لود شدن فرم اتفاق می افتد


  • UnLoad: این رویداد زمان حذف فرم فراخوانی میشود. هنگامی که این رویداد فراخوانی میشود تمام منابع اشغال شده برای فرم توسط ویژوال بیسیک آزاد میشود.


متدها
متدها عملیاتی هستند که به صورت زیر برنامه نوشته شده و برای کنترل عناصر مورد استفاده قرار میگیرند.

  • متد Cls: این متد برای پاک کردن گرافیک یا متن موجود بر روی عنصر به کار میرود به صورت Form1.Cls


  • متد Show: این متد برای آشکار کردن یک عنصر پنهان به کار میرود. به عنوان مثال Form1.Show فرم 1 را از حالت غیر قابل رویت بیرون می آورد.


  • متد Hide: این متد برای غیر قابل رویت کردن یک عنصر به کار میرود. به عنوان مثال Form1.Hide فرم 1 را از حالت قابل رویت خارج میکند.


  • متد Clear: این متد برای عناصری که در مورد متن کار میکنند مانند عنصر ListBox مورد استفاده قرار میگیرد. به عنوان مثال List1.Clear تمام محتویات داخل عنصر List1 را پاک میکند.


  • متد SetFocus: این متد کنترل را به یک عنصر مشخص منتقل میکند. به عنوان مثال Text1.SetFocus کنترل را به عنصر Text1 منتقل میکند.
  • متد Move: از این متد برای جا به جایی عناصر روی فرم استفاده میشود. به صورت زیر:

    Object.Move Left[,Top][,Width][,Height]

    مقادیر Left و Top و Width و Height به ترتیب فاصله ی شی از چپ فرم, بالای فرم و عرض و ارتفاع شی مورد نظر را برای ما تغییر میدهند.
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

انواع داده, متغیر, عملگرها دوشنبه سیزدهم شهریور 1391 0:18
انواع داده, متغیر, عملگرها

برای شروع کار با ویژوال بیسیک این برنامه را باز کرده سپس پنجره ی New Project ظاهر خواهد شد که برای ایجاد یک برنامه جدید بایستی گزینه ی Standard EXE را انتخاب کنید و دکمه ی Open را فشار دهید. پس از انجام این کار یک فرم خالی بر روی صفحه نمایان خواهد شد.


فرم چیست؟
فرم اساس کار برنامه های ویژوال بیسیک است. طراحی برنامه در فرم انجام میشود و عناصر برنامه در این فرم قرار میگیرند.


انواع داده ها
یکی از مهم ترین جنبه های هر زبان برنامه نویسی که باید مورد بررسی قرار بگیرد داده های آن است.


انواع داده های عددی: انواع داده های عددی ویژوال بیسیک در جدول زیر آمده است.

میزان حافظه نوع
Byte 1
Integer 2
Long 4
Single 4
Double 8
Currency 8
Decimal


انواع داده های غیر عددی:
انواع داده های غیر عددی که در ویژوال بیسیک مورد استفاده قرار میگیرد به شرح زیر است:
  • نوع رشته ای: رشته دنباله ای از کاراکترهاست, به صورت "Visual Basic"
  • نوع بولین: برای متغیرهایی که میتوانند دو مقدار True یا False را نگهداری کنند
  • نوع تاریخ: تاریخ و زمان را میتوان در ویژوال بیسیک به صورت یک نوع داده مورد استفاده قرار داد به صورت # July 15,2005 #
  • نوع Variant: در مواردی که از یک حافظه ی ثابت برای نگهداری نوع های داده ی گوناگون استفاده میشود


تعریف متغیرها
جهت تعریف متغیرها از فرم کلی زیر استفاده میکنیم:
Dim نام متغیر As نوع متغیر
Dim x as integer
Dim y as boolean
Dim str1 as string
Dim str2 as string * 5

دستور اول متغیر x را از نوع عددی, دومی y را از نوع منطقی تعریف میکند. سومی str1 را از نوع رشته ای به طول 255 و دستور آخر str2 را از نوع رشته ای به طول 5 تعریف میکند. در صورتی که متغیری را تعریف نکنیم و از آن در برنامه استفاده کنیم هنگام مقداردهی اولیه به متغیر در برنامه نوع آن به صورت اتوماتیک توسط ویژوال بیسیک مشخص میگردد. به عنوان مثال دستور x = True متغیر x را از نوع منطقی تعریف خواهد کرد. جهت استفاده از یک متغیر رشته ای در برنامه در صورتی که آنرا تعریف نکرده باشیم بایستی از علامت $ به همراه نام متغیر استفاده کنیم. به عنوان مثال
$txt = "Visual Basic"


عملگرها
عملگر نام مثال نتیجه
^ توان 2 ^ 3 9
* ضرب 2 * 3 6
/ تقسیم 2 / 3 1.5
+ جمع 2 + 3 5
- تفریق 2 - 3 1
Mod باقیمانده تقسیم
15 mod 3
0
\ تقسیم صحیح 3 \ 14 3
& , + الحاق رشته "V" + "B" + "6" VB6

عملگر نام مثال
<
کوچکتر X < Y
<=
کوچکتر مساوی X <= Y
>
بزرگتر X > Y
>=
بزرگتر مساوی X >= Y
<>
مخالف X <> Y
Not نقیض Not X
And و X and Y
Or یا X or Y
Xor یای انحصاری X xor Y
Eqv هم ارزی X eqv Y
Imp مشمول X imp Y
نوشته شده توسط سعید دامغانیان  | لینک ثابت |

عنصر Check Box و Option Button دوشنبه سیزدهم شهریور 1391 0:17

عنصر Check Box و Option Button

عنصر Check Box
این شی در نوار ابزار به صورت Check Box میباشد. از این عنصر در مواقعی استفاده میشود که بخواهیم به ازای یک سوال چند گزینه را انتخاب کنیم. تعدادی از خاصیت های این عنصر به شرح زیر می باشد:

  • Value: برای تعیین وضعیت عنصر به کار میرود. در صورتیکه مقدار آن Unchecked باشد شی حالت انتخاب نشده دارد. در صورتی که مقدار Check داشته باشد, شی ما حالت انتخاب شده دارد. و در صورتی که مقدار Grayed داشته باشد حالت غیر فعال شی Check Box میباشد


در کدنویسی برای اینکه مشخص کنیم که Check Box انتخاب شده است یا خیر به صورت زیر عمل میکنیم:

If (CheckBox1.Value = 1) Then Print "Selected"
If (CheckBox1.Value = 0) Then Print "Not Selected"

عنصر Option Button
این شی در نوار ابزار به صورت Option Button میباشد. از این عنصر برای ایجاد مجموعه ای از عناصر که فقط یکی از آنها قابل انتخاب است استفاده میشود. از خاصیت Value آن که میتواند دو مقدار True یا False را بپذیرد میتوان جهت مشخص کردن اینکه عنصر انتخاب شده است یا خیر استفاده کرد. به صورت زیر:

If (OptionButton1.Value = True) Then
   Print "Option 1"
Else: If (OptionButton2.Value = True) Then Print "Option 2"
End If
نوشته شده توسط سعید دامغانیان  | لینک ثابت |