عند تشغيل البرنامج
يتم اختيار العنصر من الكمبوبوكس
الافطار مثلا
يتولد في القائمة التي اسفلها انواع الموجودة في الافطار
يمكن اختيار احداها
لو اخترنا المشروبات
يتولد تحتها او يظهر تحتها او يظهر في القائمة اسفلها المشوبات
نختار احداها ثم نكتب الكمية ونضغط انتر يتم اضافة العنصر في الداتاجريد
تمام
السؤال هو كيف عن بدء تشغيل البرنامج وعرض الفورمة
يتم تلقائيا اختيار المشروبات
واختيار القهوة من المشروبات
ثم نكتب العدد ونضغط انتر لاضافته في الداتا جريد
في البداية أنا حسبت أن هذه النافذة جزء من مشروعك
وأن البرنامج من شغلك وأنك انقطعت عند مرحلة منه
ولكن في النهاية اكتشفت أن هذا المشروع من تصميم طالب هندي اسمه (آرون ناير)
وأن البرنامج كله ع بعضه عبارة عن هذه النافذة لا أكثر..
وأنك جهدك فيه لم يتعدى تعديل ع ألوان الواجهة وبعض الكماليات ..
المشروع بعد الاطلاع عليه
كمثال أو مشروع مدرسي لطالب معهد برمجة : يدل على أنه يستطيع التعامل مع قواعد البيانات لا أكثر ..
قاعدة البيانات فيه :بدائية جداً لا تصلح لأن تكون قاعدة برنامج لمطعم ولا حتى كافتيريا ..
هذا البرنامج يحتاج كثير من الجهد حتى يصبح برنامج (يحتاج أكثر من 60 يوم برمجة لمبرمج محترف)..
أنا عملت على المشروع في البداية حتى صار بالامكان تنزيل المواد بالقائمة بالضغط ع الاختصارات
وعندما أكتشف أنه ليس جزء من مشروع بل نافذة وحيدة وأنه ليس من عملك قمت بمسح المشروع من أساسه،
لأن الغاية هنا دعم طلاب العلم -- وليست الغاية مادية..
فعندما تصبح الغاية مادية وبمقابل -- ستطلب شيء وتحصل عليه كما تريد ..
وهذا المنتدى مليء بالمبرمجين المحترفين الذين يستطيعون تنفيذ ما تريد وأكثر من ذلك
ولكن المقابل وقتها لن يكون بالثمن البخس..
حضرتك انا عايز اتعلم
ازي انفذ زر امر
يتم انشاؤه
زر امر محدد
لم اقل انه من انشائي
وجدت هذا المشروع لكي اتعلم فيه ما اريده
ولكن عايز اتعلم فيه حاجة محددة
ليس المشروع بعينه
علمني كيف انفذ امر معين
شكرا
لما تريد تنشئ زر (أمر) تكتب الكود التالي :
- كود التعريف :
كود :
Dim btnOk As New Button
كود الحجم والأبعاد :
كود :
btnOk.Size = New Size(90, 30)
تحديد موقع رسم الزر :
كود :
btnOk.Location = New Point(20, 100)
تحديد الاسم الظاهري له :
ثم إضافة الزر للنافذة التي سيظهر فيها سواء كانت (نافذة - مجموعة- بانل)
مثلاً يضاف لـ نافذة (Form2) :
كود :
Form2.Controls.Add(btnOk)
أما بالنسبة للحدث الذي سيتم تنفيذه عند الضغط على الزر ، فهناك أكثر من طريقة
إما تنشئ حدث جديد مثل التالي :
كود :
Private Sub btnOk_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox("123")
End Sub
وتربطه بالزر من خلال الكود :
كود :
AddHandler btnOk.Click, AddressOf btnOk_click
أو تنشئ حدث داخلي ضمن أكواد انشاء الزر وتضع فيه مباشرة الأكواد التي تريد تنفيذها :
كود :
AddHandler btnOk.Click, Sub(sender1 As Object, e1 As EventArgs)
MsgBox("111")
End Sub
مكان كود عرض الرسالة : تضع الأكواد التي تريد تنفيذها وقت الضغط على الزر ..
يعني بالمجمل :
- طريقة1 :
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim btnOk As New Button
btnOk.Size = New Size(90, 30)
btnOk.Location = New Point(20, 100)
btnOk.Text = "OK"
Me.Controls.Add(btnOk)
AddHandler btnOk.Click, AddressOf btnOk_click
End Sub
Private Sub btnOk_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox("123")
End Sub
- طريقة2 :
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim btnOk As New Button
btnOk.Size = New Size(90, 30)
btnOk.Location = New Point(20, 100)
btnOk.Text = "OK"
Me.Controls.Add(btnOk)
AddHandler btnOk.Click, Sub(sender1 As Object, e1 As EventArgs)
MsgBox("111")
End Sub
End Sub
يا ريس اشكرك علي الشرح المستفيض
والذي تعلم منه الجميع
يتبقي شيء واحد
في البروسيدجر مثلا
ارغب في تنفيذ امر رقم 2 بعد انشاء الازرار ووضعها في البانل
Private Sub com()
ComboBox1.SelectedText = "con"
cmd = New OleDbCommand
dtd = New DataTable
ddt = New OleDbDataAdapter
Panel1.Controls.Clear()
loc.Y = Nothing
loc.X = Nothing
con.Open()
cmd.CommandText = "SELECT * from cmn "
cmd.Connection = con
ddt.SelectCommand = cmd
ddt.Fill(dtd)
Dim cnt = (dtd.Rows.Count - 1)
Dim i As Short
ReDim btn(cnt)
For i = 0 To cnt
btn(i) = New Button
With btn(i)
.Size = New Point(230, 50)
.Name = "Button" & i
.Text = dtd.Rows(i)(1)
.BackColor = Color.BurlyWood
.Location = loc
.TabStop = False
loc.Y += 40
'TextBox1.Text = "Coffee" ' this block of code sends the name of the button for further action
'TextBox3.Text = dtd.Rows(i)(2)
'TextBox2.Focus()
AddHandler .Click, AddressOf btn_click
End With
Next
Me.Panel1.Controls.AddRange(btn)
''' المطلوب تنفيذ الامر رقم 2 في مصفوفة الازرار
'''''btn ماذا اكتب هنا
con.Close()
ddt.Dispose()
End Sub
عند كلمة ماذا اكتب هنا
كيف استدعي رقم 2 مثلا
شكرا لك
أعود وأقول لك هذا المثال لا ينفع إلا ليكون كـ وظيفة لطالب معهد برمجة لا أكثر
أستطاع اثبات أنه يستطيع التعامل مع قواعد البيانات بطريقة ما .. بالرغم من أن الطريقة غير مجدية في حال كان هذا البرنامج كجزء من منظومة حسابات.
-
- طريقة تخزين الوجبات غير منطقية في هذا البرنامج ..
- أي عمل على هذا البرنامج هي من سبيل اضاعة الوقت لا أكثر..
إن كان وقتك رخيص عندك ولا تبالي بأن تكمل عليه، ومصر عليه . سأرشدك للطريقة التي تريد.. ولكن أنت أعملها بنفسك..
الطريقة هي :
أصنع حقل جديد في كل جدول (وكمثال جدول المشروبات) سمي هذا الحقل (HotKey) يعني المفتاح الساخن
وظيفة هذا الحقل تخزن ضغطة زر لكل مفتاح تضغط به على الكيبورد
بحيث لو ضغطت على أي زر في الكيبور وهذه الضغطة مخزنة في أحد هذه الجداول بجانب مادة ما سيقوم البرنامج بإضافة هذه المادة مباشرة فتحدد الكمية وتضغط اضافة.. فتنزل في جدول الطلبات..
مثلاً خزنت بجانب القهوة الرمز(F2) فعندما تضغط على المفتاح الساخن (F2) سيقوم البرنامج بإضافتها مباشرة بدون الحاجة للذهاب للقائمة والبحث عنها ..
----------
في حدث (Form1_KeyDown) قم بإلغاء الكود التالي لكي لا يتعارض مع الأزرار الساخنة :
كود :
If e.KeyValue = Keys.F3 Then
MsgBox(Keys.F3.ToString())
ListView1.FocusedItem.Remove()
Beep()
End If
قم بإضافة مكان هذا الكود كود آخر يتعرف على ضغط الكيبورد من الأمر (e.KeyCode.ToString) وليس (
KeyValue)
لأن الـ (KeyCode) يأخذ رسم المفتاح(يعني : الاسم الظاهري لمفتاح) وبس كوده..
ثم يقوم بالبحث في قاعدة البيانات في حقل (HotKey) عن هذه القيمة.. ثم يعرضها للادخال بانتظار تحديد الكمية ومن ثم الادخال لجدول الطلبات كما في حدث البحث ضمن حدث (cmn) لكن أجعله يبحث في حقل الـ (HotKey) بدلا من (itn)
فإن وجد ضغطة الزر تلك فإنه سيدخل المادة المقابلة لذلك في الطلبات.. وإلا فإنه لن يفعل شيء..
شكرا
علي تحملك
وصبرك
شكرا كثيرا