• 0
Ahed Alwafa

مساعدة في طلب اكواد المحاكاة لادوات التجارب

سؤال

السلآم عليكم ورحمة الله وبركاته 


عندي مشكلة اواجهه في مشروعنا 


وهو عبارة عن محاكاه للمختبر الكيميائي بلغة السي شآرب


والمشكلة تكمن في رسم الانابيب والاشكال المستخدمة في التجارب مثل الذي بالصورة :


 


0c32454960fa06.jpg


 


 


فلو احد عنده فكرة بآي لغة مستخدمة واي تقنيةة يآريت يقول وش الاكواد المستخدمة 


او يعطي لي كتب لدرآسةة هذة اللغة المستخدمة في المشروع ولكم جزيل الشكر ..


0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

18 إجابة على هذا السؤال .

  • 0

ماللذي تريد عمله : هل رسم الاشكال أم استخدام الأشكال كرسوم جاهزة ؟ كعمل زر صورة والضغط عليه أو سحبه؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

رسم الاشكال  هذة الاشكال برمجيا معالقدرة ع سحبهن واستخدامهن بالتجارب .. باي طريقة اقدر اسوي هكذا ؟؟

واذا صعب كيف اخليهم ززي الصورة في بوتن ولما اكبس البوتن يظهر لي الاداة واقدر اضيف داخلها مواد ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم. إذا كنت تعمل windows Forms Application. فعليك تعلم GDI+

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

الطريقة الأفضل. هي بتحديد نوع الأداة المحددة. وإعادة رسم هذه الأداة على لوحة الرسم على أساس حركة الماوس. لعبة الورق سوليتير. مثال واضح لبرامج الرسم مع التحريك.

انا أنصح دائما بتعلم تقنية WPF. بسبب قوتها في صناعة التطبيقات واهمها التطبيقات الرسومية. تخيل أخي الكريم أن الأداة التي تريد رسمها وتحريكها. ان WPF تمكنك من عمل حركة وتأثيرات على الرسوم. كما لو ان الماء يتحرك أو ان هناك نار شاعلة.

بالتوفيق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وهذا مثال صغير، لقوة WPF في عمليات Graphics

SimpleWPFAnimation.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرآ لككَ آخي الكريم  ..  وجزيتَ خيرآ
آيضآ لدي استفسار بخصوص البرمجةة بالخدع بالصور .؟!
عندككَ فكرة عنهآ ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 

شكرآ لككَ آخي الكريم  ..  وجزيتَ خيرآ

آيضآ لدي استفسار بخصوص البرمجةة بالخدع بالصور .؟!

عندككَ فكرة عنهآ ؟

 

 

عذراً، لم أفهم ما هو قصدك.[البرمجة بالخدع الصور].

هل تقصدين الألعاب التي تعتمد على الصور [مثل لعبة الذاكرة] أو ماشابه.

على العموم، كل هذه المواضيع قابلة للتطبيق بكل سهولة. كل ما تحتاجه تحديد متطلبات العمل.

 

بالتوفيق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اقصد في البرنامج سيكون التجربةة عبارة عن


عدة صورة يتم تحريكهم بسرعة


لتبدو وكانها تتحركك مثل افلام الكرتون ..


لانهه عملية تحريك المواد الداخلهه في التفاعل


اظنها صعبةة بحكم اننا لم ندرس البرمجة بشكل موسع .. 


0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالعكس

الرسم والتحريك من اسهل الأمور بالبرمجة، لان كا ما تحتاجه هو تغيير قمية X و Y  للعنصر المرسوم، وإعادة رسمة من جديد

وطبعا يتم التحريك بطريقتين:

1. إما يدويا عن طريق أحداث الماوس.

2. آليا عن طريق Timer الذي نقوم بعمل حسابات معينه خلال فترة معينه من الزمن، ثم نعيد الرسم على أساس  الحسابات الجديدة.

 

هذا مثال مصغر على رسم وتحريك العناصر أي كانت، فقط ضع هذا الكود في ملف الكود الخاص بالوجهة Form1

 public partial class Form1 : Form    {        Rectangle someObject;        bool hit = false;        public Form1()        {            InitializeComponent();            someObject = new Rectangle(0, 0, 50, 50);        }        protected override void OnPaint(PaintEventArgs e)        {            base.OnPaint(e);            e.Graphics.FillEllipse(Brushes.Orange, someObject);        }        protected override void OnMouseDown(MouseEventArgs e)        {            base.OnMouseDown(e);            if (someObject.Contains(e.Location))                hit = true;        }        protected override void OnMouseMove(MouseEventArgs e)        {            base.OnMouseMove(e);            if (hit)            {                someObject = new Rectangle(e.X, e.Y, 50, 50);                Invalidate();            }        }        protected override void OnMouseUp(MouseEventArgs e)        {            base.OnMouseUp(e);            hit = false;        }    }

إذا كان هناك اي اسئلة، فأنا موجود إن شاء الله.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

>> " شكرآ لكك ..


 طيب بحكم مشروعنا علمي وخاص بالتجارب آيهما افضل


تقنية WPF  او Windows Froms Application


لعمل المشروع واظهارة بطريقة افضل .. ..}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وعندي ايضا استفسار بخصوص الادوات المستخدمة في هذآ 


الصورة (1)  ماهي الادوات المستخدمة في هذة الصورة ؟!


غير اشكال الـ الواضحة 


 


0c32474266f003.jpg


 


 


 


الصورة (2) 


وكذلك هذة الصورة عند الضغط على اي عنصر تظهر بياناته اسفل


اش الاداة المستخدمة لتشكيل العناصر والاداة المستخدمة لاظهار بيانات العنصر


 


0c32474266f000.jpg


0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أولاً: عندما نقوم بتصميم نظام معين، فأول ما يجب أن نبدأ به هو الـ Data Modeling، أي تصميم الكلاسات  ووضع القواعد والشروط على البيانات ضمن ما يسمى ب Business Logic، وتحديد آليات ادخال واخراج البيانات ، كل هذا يتم بغض النظر عن طريقة العرض.


يعني نحن نعمل على  C#، لذلك يمكننا بعدها استضافة العمل على اي مشروع C#، سواء كان WPF او Windows Forms Application او ASP.NET أو حتى Console Application


حسب حاجتنا وحسب المطلوب، لكن في البرامج الرسومية فإنني أنصح وبشدة باستخدام WPF، التي جاءت بتقنيات رسومية رائعة مع سرعة في الأداء، واختصار في الكود.


 


ثانياً: بخصوص الأدوات المستخدمة فالأمر يرجع إلى طبيعة متطلبات العمل، لكن لا ننسى أن هذه الأدوات عبارة عن بيانات، والأداة عبارة عن اداة عرض فقط لهذه البيانات. يعني الأدوات السابقة عبارة عن Objects من الكلاسات التي عملنا مسبقا في Data Modeling.


 


ثالثاً: بخصوص الضغط على عنصر وإظهار بياناته بالأسفل فهناك العديد من الطرق للعمل، لكن من المهم أن ندرك أن العنصر الكيمائي الواحد عبارة عن Object يحوي قيمة الوزن الذري. وعندما نريد إظهار هذا العنصر بشكل معين كما في الصورة الثانية، يمكننا مثلا عمل كلاس جديد يرث من button ويحوي بداخلة على Object من العنصر الكميائي، ونقوم بوضع خاصية  Text لل Button إلى قيمة الوزن الذري للعنصر الكيميائي المعرف ضمن كلاس الزر الجديد. هكذا بعد عمل build للمشروع يصبح لدينا اداة جديدة ضمن Toolbox تشبة الزر ولكن لو اضنفاها إلى الواجهة مثلا. تكون عبارة عن زر لكن يحوي بداخلة معلومات العنصر الكيميائي، وكل مع علينا فعله هو عند الضغط على الزر نظهر بياناته على Labels اسفل الواجهة، والوصول للبيانات سهل كون كلاس الزر الجديد يحوي تلك البيانات.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

" ..  الله يسعدك ويوفقكك آخي الكريم


 


فهمتك كويس .. 


بس هذا السطر مافهمتهه


"عبارة عن زر لكن يحوي بداخلة معلومات العنصر الكيميائي، وكل مع علينا فعله هو عند الضغط على الزر نظهر بياناته "


آش تقصد به ؟ كيف يحوي بداخله نحن عملنا بيانات الجدول الدوري


كجدول ع الاكسس بعدها سيتم ربطه بحيث عن الضغط ع الزر يكون يظهر لنا معلوماته " .. }

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم

كما تحدثنا يجب فصل  وتصميم البيانات عن واجهات العرض، يعني نصمم أولا آلية عمل بياناتنا Data Modeling، ثم يأتي العرض

وعند العرض لا يهم مصدر البيانات هل هو من قاعدة بيانات او بيانات ضمن نفس المشروع، أو اي مصدر أخر.

 

يوجد مثال مرفق صغير يحوي مشروعين، الأول عبارة عن مشروع من نوع Class Library يحوي كلاس واحد يمثل العنصر الكيميائي من إسم و رقم ذري ورمز. هذا المشروع هو الـ Data Modeling ويمكننا ترتيب بياناتنا ضمنه

أما المشروع الثاني عبارة عن مشروع WPF صغير قمنا بربطه مع المشروع الأول، يقوم بعرض مجموعة من العناصر الكيميائية [ قمت بتعريفها مباشرة ]، لكن يمكنك انت قراءة البيانات من قاعدة البيانات، وطريقة العرض ستكون واحدة. بالطبع WPF تقدم لنا الكثير من الخدمات في مجال ربط البيانات. والتي استخدمناها في مثالنا الصغير.

 

vxup6oq.png

 

 

يمكنك توسعة المثال. حسب المتطلبات

 

بالتوفيق

ChemicalSolution.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

0c32414961f105.jpg

شكرآ اخي الكريم تم التطبيق والحمدلله

بس اشتغلنا ع الابليكيش فورم مش ع التقنية wpf

لانهه بحكم انه البرمجة ماعندنا خليفهه زيادةة فيهآ ..
وبنحتاج مساعدتك في اداء التجاآرب فآستحملنآ والله يكتب لك الاجر ..~

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عمل جميل.

 

إن شاء الله أن أستطيع المساعدة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

thank you Eng.Tareq Jehad

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ..

اريد مسآعدة في كود ..

 

" عند الضغط ع  البوتن يتم احضار صورة داخل البكشر بوكس من خلال

استدعائها من قاعدة البيانات التي تحوي مسار الصورة "

 

وكذلك

"كود التايمر يلي عند ضغط الزر يقوم بعرض الصور بشكل متوسط السرعة "

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وعليكم السلام.

 

بما أن مسار الصورة لدينا، فلا يوجد مشكلة كل ما علينا هو تعريف متغير من نوع Image وليكن Bitmap ونقوم بإعطاءها مسار الصورة، بالطبع هنا نقوم بقراءته من قاعدة البيانات.

أولاً كمثال بسيط لنفرض أنه لدينا صورة في القرص D إسمها linux.jpg مثلا، لذلك نستطيع وضعها ل PictureBox كالتالي:

        private void button1_Click(object sender, EventArgs e)        {            pictureBox1.Image = new Bitmap(@"D:\linux.jpg");        }

أما إذا أردنا عرض مجموعة من الصور، فنقوم بحفظ مسارات هذا الصور ضمن List مثلاً، ثم نقوم بجعل Timer يعرض الصور بالتسلسل، لذلك أولا نحتاج لقراءة مسارات الصور من قاعدة البيانات وتخزينها ضمن lstImages. بعدها نقوم بتشغيل الـ Timer لقراءة الصور و عرضها بفاصل زمني معين.

   public partial class Form1 : Form    {        Timer timer;        List<string> lstImages = new List<string>();        int imgIndex = 0;        public Form1()        {            InitializeComponent();            timer = new Timer();            timer.Interval = 1000;            timer.Tick += timer_Tick;        }        private void button1_Click(object sender, EventArgs e)        {            // Read Images Paths from database and store them in lstNames            //            // ...            // while(reader.Read())            // {            //    lstNames.Add((string)reader["ImagePath"]);            // }            // ...            timer.Start();        }        void timer_Tick(object sender, EventArgs e)        {            if (imgIndex == lstImages.Count)                imgIndex = 0;            pictureBox1.Image = new Bitmap(lstImages[imgIndex++]);        }    }

استخدمنا المتغير imgIndex للمرور على عناصر الـ List ضمن Timer وفي حال وصولنا لنهاية List نقوم بإعادته للصفر.

 

... With best wishes

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .