تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشروع سأحتاج فيه أكثر من ألف 1000 زر ما رأيكم
#11
(30-07-17, 06:04 PM)silverlight كتب : عليك ان ترسمهم في صورة
إما بشكل أفقي  أو رأسي او ترسمهم مثل ColorPicker او ترسمهم علي هيئة صفوف و أعمدة

مرحبا أخي  silverlight
ممكن توضح لي أكثر 
كيف للصورة أن تعمل ,,,يجب من الضروري وضع أزرار فوقها
وكيف أستعمل ِ   ColorPicker   أو رسمهم علي هيئة صفوف و أعمدة
الرد }}}
تم الشكر بواسطة:
#12
اجعل طريقة الحجز كما هي الطريقة في حجز رحلات الطيران

خذ فكرة من هذا




وهذه صورة للتوضيح كيف يتم ترقيم المقاعد
لا تقوم بترقيم المقاعد من 1 الى 1000 لكن الصحيح تقوم بترقيم الصفوف وتسمية الاعمدة بحيث يكون رقم المقعد مثلا C55 او  A23  كما يظهر في الصورة




(إني وجهت وجهي للذي فطر السماوات والأرض حنيفًا وما أنا من المشركين)
الرد }}}
تم الشكر بواسطة: sniperjawadino , Amir_Alzubidy , Amir_Alzubidy
#13
لو ها ترسمهم فعلا سواء علي هيئة صفوف و اعمدة او حتي بشكل أفقي أو رأسي
هنا انت لا تحتاج الي الباتون

لأننا سنتعامل مع الرسم كمصفوفة ومن الممكن التعامل مع المصفوفة في احداث الماوس و بالتالي تحقق هدفك الاساسي وهو خاصية اللمس مثل الباتون

حدد أولا ماهي الأشياء التي تريد رسمها

مثلا:

تحتاج تحديد الألوان في حالة ان الكرسي محجوز و في حالة ان الكرسي غير محجوز
تحتاد أن تحدد هل سترسم صورة ...... منها تحدد هل الكرسي محجوز أو غير محجوز
تحتاج ان تحدد هل سترسم String برقم الكرسي أم لا
أخبرا تحتاج ان تحدد ابعاد المستطيل الذي سترسمه و غالبا هذا سيتم حسابه بواسطة الفونت و الصورة المستخدمة إن وجدت

عملية الرسم تحتاج حسابات
لذلك يجب تحديد المطلوب بكل دقة لأن الرسم محتاج شغل كتيير


عموم الرسم هو الطريق الصعب لتنفيذ فكرتك لكن سيعطيك نتائج أفضل من حيث الشكل

الطريق الاسهل لك تستخدم أي كونترول مناسب مثل الباتون
و لكن لتحصل علي منظومه شكلها افضل يجب أن تقوم بتطوير الباتون و تعيد رسمه
وهذا الاسهل لك
Retired
الرد }}}
#14
استخدم DataGridView بعشر اعمده و 100 صف ... لن تأخذ اجزاء من الثانية لرسم هذا وتلوينه
الرد }}}
تم الشكر بواسطة: sniperjawadino , Amir_Alzubidy , Amir_Alzubidy
#15
شكرا أخي ابو محمد القحطاني
فكرة طريقة الترقيم جميلة و سآخدها بعين الإعتبار

أخي silverlight
فهمت كلامك الآن
فكرة الرسم جميلة لكني لا أريد أن ألتجأ لها إذا كان السبب فقط مسألة شكل أفضل

ما أريده هو برمجة أفضل
و خفة أفضل فالعرض

بالتالي Button أو Label أضن سيكون بنفس النتيجة

أرجوا أن تصحح لي إن أخطأت

شكرا لك أخي HASAN6.0 على المعلومة
سآخد الفكرة بعين الإعتبار
جزاك الله خيرا
الرد }}}
تم الشكر بواسطة:
#16
اليس التخزين بقاعدة البيانات واستخدام اكواد التصفح مناسبة؟
وماهو المطلوب من اي زر؟
هل اما حجز او اتاحة المقعد؟
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: sniperjawadino
#17
(30-07-17, 11:49 PM)سعود كتب : اليس التخزين بقاعدة البيانات واستخدام اكواد التصفح مناسبة؟
وماهو المطلوب من اي زر؟
هل اما حجز او اتاحة المقعد؟

المطلوب من الزر هو الحجز

بالإضافة لعمل LOOP  في كل مرة لتلوين الأزرار المحجوزة
الرد }}}
تم الشكر بواسطة:
#18
الرسم في حالتك هو الأفضل و الأخف علي البرنامج لكنه الطريق الأصعب

و علي فكرة Label أخف كثيرا من Button
Retired
الرد }}}
تم الشكر بواسطة: sniperjawadino , sniperjawadino , Amir_Alzubidy , Amir_Alzubidy
#19

آمل من كل قلبي ان اكون وفقت لتسهيل عليك ولو نسبة قليلة من المهمة.

هذا الفورم كامل
كود :
Public Class Form1
   Dim str As String = "provider=microsoft.ace.oledb.12.0;data source='" & Application.StartupPath & "\db.accdb'"
   Dim buttons As Integer '= Panel1.Controls.Count
   Dim rows As New List(Of String)
   Dim sts As New List(Of Boolean)
   Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click

       Using con As New OleDb.OleDbConnection(str)
           Using cm As New OleDb.OleDbCommand("select count(tid) from tb", con)
               If con.State = ConnectionState.Closed Then con.Open()

               If cm.ExecuteScalar >= 1000 Then
                   If con.State = ConnectionState.Open Then con.Close()

                   MsgBox("لا تحتاج لهذا الاجراء لوجود الف سجل للتجربة")
                   Exit Sub
               End If
           End Using
       End Using






       Button11.Enabled = False
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()

           For r = 1 To 1000
               Using cm As New OleDb.OleDbCommand("insert into tb(korsi) values(@korsi)", con)
                   cm.Parameters.AddWithValue("@korsi", "korsi_" & r)
                   cm.ExecuteNonQuery()
               End Using
           Next
           If con.State = ConnectionState.Open Then con.Close()
       End Using
       Button11.Enabled = True
   End Sub

   Private Function setbc(ByVal st As Boolean) As Color
       If st = True Then
           Return Color.Red
       Else
           Return Color.YellowGreen
       End If
   End Function
   Private Sub btn_first_Click(sender As Object, e As EventArgs) Handles btn_first.Click
       rows.Clear()
       sts.Clear()

       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel1.Controls.Count & " * from tb", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For i = 0 To Panel1.Controls.Count - 1
                       Panel1.Controls(i).Text = rows(i)
                       Panel1.Controls(i).BackColor = setbc(sts(i))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using




   End Sub

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       buttons = Panel1.Controls.Count
   End Sub

   Private Sub Btn_next_Click(sender As Object, e As EventArgs) Handles Btn_next.Click
       ' MsgBox(buttons)


       rows.Clear()
       sts.Clear()
       buttons += Panel1.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel1.Controls.Count & " * from tb where tid not in (select top " & buttons & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For i = 0 To Panel1.Controls.Count - 1
                       Panel1.Controls(i).Text = rows(i)
                       Panel1.Controls(i).BackColor = setbc(sts(i))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

       ' MsgBox(buttons)

   End Sub
   Private Function replace(ByVal bc As String) As Boolean
       If bc = "Color [YellowGreen]" Then
           Return True
       Else
           Return False
       End If
   End Function
 
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click, Button10.Click
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("update tb set st=@st where korsi=@korsi", con)
               cm.Parameters.AddWithValue("@st", replace(sender.backcolor.ToString))
               cm.Parameters.AddWithValue("@korsi", sender.text)
               cm.ExecuteNonQuery()
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub

   Private Sub Btn_priv_Click(sender As Object, e As EventArgs) Handles Btn_priv.Click
       rows.Clear()
       sts.Clear()

       If buttons <= Panel1.Controls.Count Then btn_first.PerformClick() : Exit Sub


       buttons -= Panel1.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel1.Controls.Count & " * from tb where tid not in (select top " & buttons & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For i = 0 To Panel1.Controls.Count - 1
                       Panel1.Controls(i).Text = rows(i)
                       Panel1.Controls(i).BackColor = setbc(sts(i))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub

   Private Sub Btn_last_Click(sender As Object, e As EventArgs) Handles Btn_last.Click
       rows.Clear()
       sts.Clear()
       buttons += Panel1.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel1.Controls.Count & " * from tb where tid not in (select top " & (1000 - Panel1.Controls.Count) & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For i = 0 To Panel1.Controls.Count - 1
                       Panel1.Controls(i).Text = rows(i)
                       Panel1.Controls(i).BackColor = setbc(sts(i))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub
End Class

فقط تفحص الفكرة وقل رايك.
والسلام عليكم ورحمة الله وبركاته


الملفات المرفقة
.zip   JustSomething.zip (الحجم : 65.51 ك ب / التحميلات : 115)
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: sniperjawadino
#20
(31-07-17, 08:08 AM)silverlight كتب : الرسم في حالتك هو الأفضل و الأخف علي البرنامج لكنه الطريق الأصعب

و علي فكرة Label أخف كثيرا من Button

و من الأخف  Label أو PicturBox

أعتدر على كثرة أسئلتي
لكن إجاباتك ستغير مسار برمجتي
شكرا لك

(31-07-17, 11:38 PM)سعود كتب :





شكرا كثيرا أخي سعود
لقد أتعبتك أعتذر

أرجوا لو تتكرم وتضع المثال بنسخة أخرى 2010 إذا كانت لديك
لأن 2012 يتشنج
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مشروع] مشروع لاضافة رسم بيانى محتاج التدخل لاصلاحه dr.programming 0 214 09-11-25, 01:48 AM
آخر رد: dr.programming
  [سؤال] سؤال ترددت قبل نشرة:طابعة الباركود لماذا تطبع أكثر من ليبل فارغ قبل السليم dr.programming 1 507 20-04-25, 09:26 PM
آخر رد: Kamil
  [VB.NET] مشروع للاستأناس EMADW 3 526 02-04-25, 04:20 PM
آخر رد: princelovelorn
  [VB.NET] اذا ممكن مشروع ادارة مدرسة بدر إشتية 4 8,533 08-02-25, 02:05 AM
آخر رد: الورد2
  [VB.NET] مساعدة في مشروع ZEEN4ZEEN 0 250 12-01-25, 06:03 PM
آخر رد: ZEEN4ZEEN
  مساعدة فى حفظ مشروع برنامج الى ضيغة apk م / وليد تيتو 1 371 03-11-24, 05:27 PM
آخر رد: Taha Okla
  مشروع اكمال ساعة المسجد اجر للجميع altoki939 0 286 30-10-24, 09:49 PM
آخر رد: altoki939
  [سؤال] افضل الطرق في تحزيم مشروع بقواعد SQL محمد العامر 5 560 23-10-24, 11:19 AM
آخر رد: محمد العامر
  [سؤال] عند بدأ مشروع جديد غير قادر على روئية الـForm1 ABDULLAH HASSAN 1 435 30-04-24, 12:22 AM
آخر رد: Jounior_P
  ممكن طريقه وتصميم مشروع بالفيجوال بيسك خالد كامل1 2 471 28-04-24, 02:56 AM
آخر رد: خالد كامل1

التنقل السريع :


يقوم بقرائة الموضوع: