Foksh قام بنشر أغسطس 3 قام بنشر أغسطس 3 (معدل) 4 دقائق مضت, حسين العربى said: طبعا مش كل الاجهزه سعر واحد فانا لاحظت في الكود انه واخد السعر من حقل جهاز 1 فقط لكل الاجهزة غير صحيح ,, كل جهاز له قيمة مختلفة ، وانا غيرت القيم في كل جهاز علشان تتأكد من هاي الفكرة لاحظ هذا الجزء في السطر ، i هي متغير لرقم مربع النص حسب رقم الجهاز Me.Controls("STSATR_DATE" & i).Value تم تعديل أغسطس 3 بواسطه Foksh
Foksh قام بنشر أغسطس 3 قام بنشر أغسطس 3 الان, حسين العربى said: طيب ممكن افهم ازاي مسويها في الكود لو تكرمت تم استخدام الخاصية Tag لكل جهاز ، حيث ما يلي :- أزرار البدء والإيقاف Tag = Station1 للجهاز الأول ... وهكذا لكل جهاز ( Station2 ، Station3 ... إلخ ) مربعات النص والليبلات Tag = St1 للجهاز الأول ... وهكذا لبقية الأجهزة ( St2 ، St3 ... إلخ ) شرح الكود بشكل مبسط وليس تفصيلاً :- في البداية تم حجز متغيرات عامة قابل للتعديل لتخزين القيم الزمنية للعدادات الستة و لتحديد ما إذا كان العداد قيد التشغيل أم لا و لتحديد ما إذا كان العداد متوقف مؤقتًا أم لا و لتخزين القيم الزمنية عند توقف العداد مؤقتًا . وطبعاً العدد 6 قابل للتعديل كيفما تريد . Dim counters(1 To 6) As Double Dim isRunning(1 To 6) As Boolean Dim isPaused(1 To 6) As Boolean Dim pauseCounters(1 To 6) As Double في الحدث عند التحميل كود لجعل الأزرار بالتسمية التوضيحية Start , Stop ، والعدادات قيمتها الإفتراضية = 00:00:00 ، والفاصل الزمني = 1 ثانية ( 1000 ملي ثانية ) Dim i As Integer For i = 1 To 6 counters(i) = 0 isRunning(i) = False isPaused(i) = False pauseCounters(i) = 0 Me.Controls("lblCounter" & i).Caption = "00:00:00" Me.Controls("TOTEL" & i).Value = 0 Me.Controls("cmdStartStop" & i).Caption = "Start" Me.Controls("cmdReset" & i).Caption = "Stop" Next i Me.TimerInterval = 1000 في الزر cmdStartStop هو المسؤول عن بدي وإيقاف مؤقت للتايمر مع تغيير حالة التسمية التوضيحية لكل زر حسب i ، حيث تم تسمية كل زر cmdStartStop بإضافة رقم يمثل رقم الجهاز للتمييز بينهم عند استدعاء الكود .. وكذلك الأمر عند الزر cmdReset المسؤول عن الإيقاف وإعادة تصفير العداد والقيم في كل جهاز ، ونفس الفكرة بالنسبة للتسمية التي تميز كل زر جهاز عن الآخر باستعمال المتغير i . وباقي الأجزاء الصغيرة واضحة ولا تحتاج شرح . Private Sub cmdStartStop_Click(Index As Integer) Dim stationId As Integer Dim startStopButton As Control Dim resetButton As Control stationId = Index Set startStopButton = Me.Controls("cmdStartStop" & stationId) Set resetButton = Me.Controls("cmdReset" & stationId) If startStopButton.Caption = "Start" Then startStopButton.Caption = "Pause" isRunning(stationId) = True isPaused(stationId) = False If counters(stationId) = 0 Then counters(stationId) = 0 Else counters(stationId) = pauseCounters(stationId) End If ElseIf startStopButton.Caption = "Pause" Then startStopButton.Caption = "Resume" isRunning(stationId) = False isPaused(stationId) = True pauseCounters(stationId) = counters(stationId) ElseIf startStopButton.Caption = "Resume" Then startStopButton.Caption = "Pause" isRunning(stationId) = True isPaused(stationId) = False counters(stationId) = pauseCounters(stationId) End If End Sub Private Sub cmdReset_Click(Index As Integer) Dim stationId As Integer Dim resetButton As Control Dim counterLabel As Control Dim totalCostBox As Control Dim startStopButton As Control stationId = Index Set resetButton = Me.Controls("cmdReset" & stationId) Set counterLabel = Me.Controls("lblCounter" & stationId) Set totalCostBox = Me.Controls("TOTEL" & stationId) Set startStopButton = Me.Controls("cmdStartStop" & stationId) If resetButton.Caption = "Stop" Then resetButton.Caption = "Reset" isRunning(stationId) = False isPaused(stationId) = True pauseCounters(stationId) = counters(stationId) ElseIf resetButton.Caption = "Reset" Then resetButton.Caption = "Stop" counterLabel.Caption = "00:00:00" counters(stationId) = 0 totalCostBox.Value = 0 isRunning(stationId) = False isPaused(stationId) = False pauseCounters(stationId) = 0 startStopButton.Caption = "Start" End If End Sub التركيز كله على الحدث عند الوقت ، وهو يحدث في كل ثانية العملية الحسابية لكل جهاز بشكل مستقل لا يؤثر على الآخر بالإعتماد على المتغيرات التي في الأسماء وهو الرقم i الذي يمثل رقم الجهاز ( لاحظ التسميات لهذه العناصر في النموذج ستعرف المقصود ) . والعملية الحسابية تقوم بتقسيم القيمة في STSATR_DATE لكل جهاز حساب التكلفة الإجمالية للعداد الحالي بناءً على معدل الساعة وإجمالي الثواني. ( طبعاً متغيرات كثيرة لم أتطرق لها لضيق الوقت ) . Private Sub Form_Timer() Dim i As Integer Dim totalSeconds As Long Dim hourlyRate As Double Dim totalCost As Double For i = 1 To 6 If isRunning(i) And Not isPaused(i) Then counters(i) = counters(i) + 1 Me.Controls("lblCounter" & i).Caption = Format(DateAdd("s", counters(i), "00:00:00"), "hh:mm:ss") hourlyRate = Me.Controls("STSATR_DATE" & i).Value totalSeconds = counters(i) totalCost = (hourlyRate / 3600) * totalSeconds Me.Controls("TOTEL" & i).Value = Format(totalCost, "0.00") End If Next i End Sub وفي النهاية استدعاء الأمر لكل زر (cmdStartStop1 ، cmdStartStop2 ... إلخ ) و (cmdReset1 ، cmdReset2 ... إلخ ) حسب تسميته Private Sub cmdStartStop1_Click() Call cmdStartStop_Click(1) End Sub Private Sub cmdStartStop2_Click() Call cmdStartStop_Click(2) End Sub Private Sub cmdStartStop3_Click() Call cmdStartStop_Click(3) End Sub Private Sub cmdStartStop4_Click() Call cmdStartStop_Click(4) End Sub Private Sub cmdStartStop5_Click() Call cmdStartStop_Click(5) End Sub Private Sub cmdStartStop6_Click() Call cmdStartStop_Click(6) End Sub Private Sub cmdReset1_Click() Call cmdReset_Click(1) End Sub Private Sub cmdReset2_Click() Call cmdReset_Click(2) End Sub Private Sub cmdReset3_Click() Call cmdReset_Click(3) End Sub Private Sub cmdReset4_Click() Call cmdReset_Click(4) End Sub Private Sub cmdReset5_Click() Call cmdReset_Click(5) End Sub Private Sub cmdReset6_Click() Call cmdReset_Click(6) End Sub وسلاااااامتك يا صديقي 1
حسين العربى قام بنشر أغسطس 3 الكاتب قام بنشر أغسطس 3 (معدل) الف شكر استاذي ومعلمي الفاضل Foksh وجزاك الله خير الجزاء وزادك الله من علمة وانا اسف ان كنت تقلت علي حضرتك وشكرا علي سعت صدرك لي طلب اخير استاذي الفاضل لماذا حقل عداد الوقت حقل تكست lblcounter1 وليس حقل نص غير منضم هل ممكن عمله حقل غير منضم لاني اريد تخزين البيانات في الجدول تم تعديل أغسطس 3 بواسطه حسين العربى اوكي 1
ahmed draz قام بنشر أغسطس 3 قام بنشر أغسطس 3 (معدل) السلام عليكم ورحمة الله أخي العزيز Foksh اقتباس وهذه فكرتي المتواضعة والقابلة للتطوير بشكل بسيط جداً ,, طبعاً أصبح العداد أفضل بدون (الرمش) الذي كان فيه أنت دائما مبدع بالإضافة لتشغيل كل عدادات الأجهزة في نموذج واحد وجزاك الله خيراً وبالنسبة للأخ حسين العربى تم تفعيل حقل إيجار الساعة لتتمكن من كتابة الرقم الذي تريده للإيجار TEST_3.accdb تم تعديل أغسطس 3 بواسطه ahmed draz 1
حسين العربى قام بنشر أغسطس 3 الكاتب قام بنشر أغسطس 3 (معدل) استاذي الفاضل ahmed draz لقد فهمتني خطأ انا اقصد حقل عداد الوقت حقل تكست وليس حقل نص غير منضم هل ممكن عمله حقل غير منضم لاني اريد تخزين البيانات في الجدول https://www.officena.net/ib/topic/126145-تصميم-برنامج-لسنتر-بلاي-ستيشن/?do=findComment&comment=748734 تم تعديل أغسطس 3 بواسطه حسين العربى اوكي
ahmed draz قام بنشر أغسطس 3 قام بنشر أغسطس 3 (معدل) أخونا حسين العربى أنا لم أفهمك خطأ فكلنا فهمنا كلامك وطنشنا بالعربي كدة عارف ليه؟ لان تصميم البرنامج من البداية تم على أنه برتامج Stopwatch وأضاف اليه أخونا Foksh الحساب حسب التسعيرة وأن القاعدة في الواقع ليس لها أي جدول فهي عبارة عن نموذج وبعض الاكواد فقط وعند بحثي في بداية التصميم وجدت أن حساب الوقت في الاكسس وتخزينه صعب قليلاً بعكس التواريخ فهو يتعامل معها بكل سهولة فقمت بعمله على الشكل الذي نراه وعلية أظن من خبرتي الصفرية المتواضعة أنه يجب علينا تصميم القاعدة من جديد لتقوم بعمليات الحساب والتخزين والمكسب والخسارة واصدار التقارير و الفواتير إلا إذا خالفني أخي العبقري Foksh الرأي واستطاع أن يقوم بتحويل برتامج Stopwatch إلى قاعدة حقيقية تقوم بمهام قواعد البيانات المعروفة وتقبل صراحتي وشكرأً جزيلاً لك تم تعديل أغسطس 3 بواسطه ahmed draz 1
Foksh قام بنشر أغسطس 3 قام بنشر أغسطس 3 (معدل) 8 ساعات مضت, حسين العربى said: الف شكر استاذي ومعلمي الفاضل Foksh وجزاك الله خير الجزاء وزادك الله من علمة وانا اسف ان كنت تقلت علي حضرتك وشكرا علي سعت صدرك لي طلب اخير استاذي الفاضل لماذا حقل عداد الوقت حقل تكست lblcounter1 وليس حقل نص غير منضم هل ممكن عمله حقل غير منضم لاني اريد تخزين البيانات في الجدول بالنسبة لهذه النقطة تم حلها ، واعتقد ان الليبل أفضل في المؤقتات والقيم الوقتية لإنه غير قابل للتركيز كما هو الحال في مربع النص ستضطر لقفله وعدم تمكينه. وسيتم إرفاق النسخة الجديدة مع تخزين القيم كما هي في الجدول. 6 ساعات مضت, ahmed draz said: أخونا حسين العربى أنا لم أفهمك خطأ فكلنا فهمنا كلامك وطنشنا بالعربي كدة عارف ليه؟ لان تصميم البرنامج من البداية تم على أنه برتامج Stopwatch وأضاف اليه أخونا Foksh الحساب حسب التسعيرة وأن القاعدة في الواقع ليس لها أي جدول فهي عبارة عن نموذج وبعض الاكواد فقط وعند بحثي في بداية التصميم وجدت أن حساب الوقت في الاكسس وتخزينه صعب قليلاً بعكس التواريخ فهو يتعامل معها بكل سهولة فقمت بعمله على الشكل الذي نراه وعلية أظن من خبرتي الصفرية المتواضعة أنه يجب علينا تصميم القاعدة من جديد لتقوم بعمليات الحساب والتخزين والمكسب والخسارة واصدار التقارير و الفواتير إلا إذا خالفني أخي العبقري Foksh الرأي واستطاع أن يقوم بتحويل برتامج Stopwatch إلى قاعدة حقيقية تقوم بمهام قواعد البيانات المعروفة وتقبل صراحتي وشكرأً جزيلاً لك أشكرك أخي أحمد على ذوقك 😇 وللأسف تم إنشاء جدول واحد كما قلت لك لتخزين القيم كما هي وبنفس التنسيقات في الجدول 😉 💡 بالنسبة للترميش كان سببه الصورة التي في النموذج. تم تعديل أغسطس 3 بواسطه Foksh 1 1
حسين العربى قام بنشر أغسطس 3 الكاتب قام بنشر أغسطس 3 (معدل) مشاء الله عليك استاذي ومعلمي الفاضل Foksh وعلي صبرك ذيما بجواب علي كل نقطه بسالها وبسعة صدر الله يجزيك الخير ويجعله في ميزان حسناتك ويزيدك صبرا وعلما وفعلا الرمشه التي في النموذج كانت من الصوره التي في الخلفية 😁 تم تعديل أغسطس 3 بواسطه حسين العربى 1
Foksh قام بنشر أغسطس 3 قام بنشر أغسطس 3 النسخة الجديدة والمطورة مع بعض اللمسات 1. حفظ القيم في الجدول من خلال زر جديد = Go 2. تمييز الجهاز المشغول باللون الأخضر ، وعند الإيقاف الؤقت باللون الأحمر ، وعند الأيقاف التام باللون البني . وعند الحفظ يعود الى اللون الأسود الباقي أتركه لكم لإكتشافه PlayStation.accdb 1
حسين العربى قام بنشر أغسطس 3 الكاتب قام بنشر أغسطس 3 (معدل) استاذي ومعلمي الفاضل عمل ممتاذ وجميل جزاك الله خير وزادك الله من علمه بس حبيت انبه علي حاجه هل عداد الوقت في هذه الصوره كده مظبوط لاني سعر الساعه 60 جنبه مصري والساعه فيها 60 دقيقه المفروض سعر الدقيقه 1جنيه يبق المفروض ال 26 دقيقه كما في عداد الوقت الذي في الصوره سعرهم 26 جنيه وقروش او انا في شي مش فاهمه تم تعديل أغسطس 3 بواسطه حسين العربى 1
Foksh قام بنشر أغسطس 3 قام بنشر أغسطس 3 32 دقائق مضت, حسين العربى said: استاذي ومعلمي الفاضل عمل ممتاذ وجميل جزاك الله خير وزادك الله من علمه بس حبيت انبه علي حاجه هل عداد الوقت في هذه الصوره كده مظبوط لاني سعر الساعه 60 جنبه مصري والساعه فيها 60 دقيقه المفروض سعر الدقيقه 1جنيه يبق المفروض ال 26 دقيقه كما في عداد الوقت الذي في الصوره سعرهم 26 جنيه وقروش او انا في شي مش فاهمه كلامك صحيح 100% يبدو ان العملية الحسابية لم تكن دقيقة ، سيتم التدقيق والتعديل ، ولا يهمك
Foksh قام بنشر أغسطس 3 قام بنشر أغسطس 3 (معدل) قمت بالتدقيق في ملاحظتك ، ولكن توضح لي أنه بعد تعديلك للقيمة في إيجار الساعة ، يجب إغلاق النموذج وفتحه مرة أخرى ، وذلك لأن المرفق يعتمد على القيمة الافتراضية لهذا العنصر ، ولأن مصدره ليس جدول. سيتم التعديل في المشاركات اللاحقة العملية الحسابية سليمة وصحيحة 1000%. 🤗 تم تعديل أغسطس 4 بواسطه Foksh
ahmed draz قام بنشر أغسطس 3 قام بنشر أغسطس 3 السلام عليكم لمسة جمالية مني لا تضاهي مجهود اخونا العزيز Foksh كما تم ضبط حساب ايجار الساعة مع اجمال المستحق بعمل Me.Refresh تابع المرفق لكبر حجم الصورة السابقة PlayStation.rar 1 1
أفضل إجابة Foksh قام بنشر أغسطس 3 أفضل إجابة قام بنشر أغسطس 3 (معدل) اممممم ، طيب لو جينا مثلاً مثلاً يعني وغيرنا مربع نص إيجار الساعة من مربع نص لكومبوبوكس يا ترى هيحصل ايييييه أكيد هتحصل طرطشة كبيرة أوي يعني لو انا جيت السنتر عندك و خدت الجهاز رقم 2 واللي هو متسعر أساساً 100 جنيه ( على سبيل المثال انا بقول ) ، وانا شغال وفي عز المعركة في اللعبة جيت انت وقلتلي انا هحسبلك الساعة بـ 50 جنيه خصم .. يا ترى هتعمل ايه ؟؟ انت ما تعملش حاجة هو نفسه هيرجع يحسب السعر في الإجمالي على حسب السعر اللي انت غيرته من غير تحديث ولا ريفريش ولا حاجة . وجرب كده واديني رأيك . وكمان انا قلت للزر Stop يوقف مؤقت العداد ولو الزبون طلع عيل ورجع في كلامه وما جاش على باله يروح وقال انا عايز أكمل ، تقدر تضغط على زر Resume مرتين علشان البيه يكمل لعب وما تضطرش تفتحله وقت تاني جديد دي طئطوئة من اللي في دماغي لما أكون مضغوط في الشغل PlayStation.accdb تم تعديل أغسطس 4 بواسطه Foksh تم تحديث المرفق
حسين العربى قام بنشر أغسطس 4 الكاتب قام بنشر أغسطس 4 بسم الله مشاء الله انا فتحت بحر علم نابع من اساتذتي الافاضل الاستاذ ahmed draz والاستاذ Foksh الظاهر كده هنطلع ببرامج قوي بارك الله فيكم علي جهودكم العظيمه وزادكم الله من علمه بصراحة عمل ما فيش اروع من كده 2
ahmed draz قام بنشر أغسطس 4 قام بنشر أغسطس 4 (معدل) السلام عليكم ورحمة الله أخواني الأعزاء أنا قولت طالما هنعلي الشغل..... ييقى نعليه على الأخر حظك بقة يا حسين وتحياتي لأخونا العبقري Foksh (يرجى أضافة الخط الموجود في الملف digital-7 (mono) مع الويندوز أولاً) PlayStation 6.rar تم تعديل أغسطس 4 بواسطه ahmed draz
Foksh قام بنشر أغسطس 4 قام بنشر أغسطس 4 فكرة القيمة على شكل نص أو كتابة ، لا أعتقد أنها فكرة ممتازة . لأن المبرمج الناجح يهدف إلى عدم تحميل النموذج حيز عمل كبير ( هناك من يتعاون في سرعة الأداء لأي كود في أكسيس منها كرت الشاشة والرام ونوع الهارد ديسك SSD , HDD ... إلخ ) . وفي مثالك أخي أحمد لو كنت مكانك لما تطرقت إلى هذه الفكرة . ليس إحباطاً للمعنويات ، ولكن وجهة نظر .. وإرجو الإهتمام من صاحب الموضوع لتحديد أهداف الطلب في هذا الموضوع ، وإن كان هناك تقرعات في طلبه فليتوجه لقتح موضوع جديد في طلبه الجديد 1
حسين العربى قام بنشر أغسطس 4 الكاتب قام بنشر أغسطس 4 مشاء الله مشاء الله استاذ احمد والله ده كتير علي طبعا الحمده لله لاني محظوظ اني اثنين من اساتذتي العباقره معهتمين بموضوعي والف شكر ليك استاذ Foksh وجعله الله في ميزان حسناتكم وبارك الله فيكم انتو كده وفيتو وكفيتو انا مش عاوز اكتر من كده وشكرا ليكم جميعا 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.