حاول تقرأ الكود(كأنك أنت البرنامج) وأنت راح تعرف كيف بيشتغل سطر سطر..
لا تفكر بالنسخ واللصق --- حتى لو اشتغل معك البرنامج 100 %
لأن لو عدلت شي بسيط ع البرنامج راح يوقف البرنامج ومش راح تعرف وين حدث الخطأ
لأنك ما كنت فاهم كيف بيشتغل البرنامج ..
بينما لو كنت عارف برنامجك سطر سطر ..
فلما تجي تعدل شي : راح تعرف شو لازم تعدل كمان حتى يشتغل البرنامج على أكمل وجه..
مش كل مرة راح تلاقي اللي يعرف يصلح وراك..
قبل ما تنفذ أي كود حاول تفهم : شو؟ وليش؟ ووين؟ ولوين؟ رايح هذا الكود هو، ومدخلاته، ومخرجاته..
على كل .. هذا تعديل على كامل الكود في جزئية برنامجك، ضعه في نافذة الكود ..
وفي المرفقات المثال بعد التعديل
لا تفكر بالنسخ واللصق --- حتى لو اشتغل معك البرنامج 100 %
لأن لو عدلت شي بسيط ع البرنامج راح يوقف البرنامج ومش راح تعرف وين حدث الخطأ
لأنك ما كنت فاهم كيف بيشتغل البرنامج ..
بينما لو كنت عارف برنامجك سطر سطر ..
فلما تجي تعدل شي : راح تعرف شو لازم تعدل كمان حتى يشتغل البرنامج على أكمل وجه..
مش كل مرة راح تلاقي اللي يعرف يصلح وراك..
قبل ما تنفذ أي كود حاول تفهم : شو؟ وليش؟ ووين؟ ولوين؟ رايح هذا الكود هو، ومدخلاته، ومخرجاته..
على كل .. هذا تعديل على كامل الكود في جزئية برنامجك، ضعه في نافذة الكود ..
كود :
Imports System.Data.OleDb
Public Class Form1
Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB_FLP.mdb;Jet OLEDB:Database Password=")
Dim dp As New OleDbDataAdapter("Select * From Tbl order by Nam", con)
Dim ds As New DataSet
Dim dt As DataTable
Dim num2 As Integer ' عدد السجلات ضمن الجدول
Dim i As Integer = 0 ' مكان المؤشر الحالي في الجدول
Dim R1 As Integer = 20 ' معدل التغير -- وهو ثابت تحدده من بداية عمل البرنامج أو من الكود
Dim j As Integer = R1 ' المدى : مدى حركة المؤشر ضمن الحلقة
Dim str1 As String = "" ' شغلة للتبسيط
Dim FirstChar As String = " " ' أول حرف من الشغلة الحالية
Dim Fi1 As String = " " ' أول حرف من شغلة منتهية
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Button2.Text = "التالي"
Button2.Enabled = False
Button3.Text = "السابق"
Button3.Enabled = False
End Sub
Private Sub FlowLayoutPanel1_Scroll(sender As Object, e As ScrollEventArgs) Handles FlowLayoutPanel1.Scroll
' Button2_Click(Nothing, Nothing)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dp.Fill(ds)
dt = ds.Tables.Item(0)
num2 = (dt.Rows.Count - 1)
Me.FlowLayoutPanel1.Controls.Clear()
Do While (i <= num2)
TA_FillData()
i += 1
If i = j Then Exit Do
Loop
Button2.Enabled = True
Button1.Enabled = False
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
j = j - R1 : If j < 0 Then j = R1
i = i - 2 * R1 : If i < 0 Then i = 0
If i = 0 Then Button3.Enabled = False
If j < num2 Then Button2.Enabled = True
Try
Me.FlowLayoutPanel1.Controls.Clear()
Do While (i <= num2)
TA_FillData()
i += 1
If i = j Then Exit Do
Loop
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
j = j + R1
Try
Me.FlowLayoutPanel1.Controls.Clear()
Do While (i <= num2)
TA_FillData()
i += 1
If i = j Then Exit Do
Loop
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
If i = num2 + 1 Then Button2.Enabled = False
If i > 0 Then Button3.Enabled = True
End Sub
Sub TA_FillData()
str1 = dt.Rows.Item(i).Item("nam").ToString
FirstChar = Mid(str1, 1, 1)
FirstChar = UCase(FirstChar.Replace("إ", "أ").Replace("آ", "أ"))
If (i = 0) Or (FirstChar <> Fi1) Then
Dim uc1 As New UserControl1
uc1.Label1.Text = FirstChar
If (Asc(FirstChar) >= 65 And Asc(FirstChar) <= 90) Or (Asc(FirstChar) >= 97 And Asc(FirstChar) <= 122) Then
uc1.Label1.Left = uc1.Left + 10
Else
uc1.Label1.Left = uc1.Width - uc1.Label1.Width - 10
End If
Me.FlowLayoutPanel1.Controls.Add(uc1)
uc1.Label1.Font = New Font(uc1.Label1.Font.Name, uc1.Label1.Font.Size - 2, FontStyle.Bold)
uc1.Label1.ForeColor = Color.WhiteSmoke
uc1.BackColor = Color.LightGray
uc1.Height = uc1.Height * 2 / 3
uc1.Label1.Top = (uc1.Height - uc1.Label1.Height) / 2
Fi1 = FirstChar
End If
Dim uc As New UserControl1
uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString
If (Asc(FirstChar) >= 65 And Asc(FirstChar) <= 90) Or (Asc(FirstChar) >= 97 And Asc(FirstChar) <= 122) Then
uc.Label1.Left = uc.Left + 20
Else
uc.Label1.Left = uc.Width - uc.Label1.Width - 20
End If
Me.FlowLayoutPanel1.Controls.Add(uc)
End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Me.Text = Asc(TextBox1.Text)
End Sub
End Class
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».