هل يوجد لها حل

أرسل من قبل bayrn في الإثنين, 2008/05/26 - 6:38pm.
صورة bayrn

تاريخ التسجيل: 2008-03-05
مشاركات: 513

الجامعة: الافتراضية
الكلية: تكنولوجيا المعلومات
المرحلة: السنة الثالثة
الاختصاص: غير ذلك

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

 لكن المشكلة

 التي ظهرت هي البطئ في عرض الواجهة نتيجة لكثرة العناصر المستخدمة

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

و الله خير و أبقى

 
دخول أو تسجيل لإرسال التعليقات | قراءة: 213

خيارات عرض التعليقات

اختر طريقتك المفضلة لعرض التعليقات و اضغط "حفظ الإعدادات" لتفعيل تغييراتك.
الإثنين, 2008/05/26 - 7:22pm
مشرف
صورة mpcabd

تاريخ التسجيل: 2006-02-19
مشاركات: 2337

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: السنة الثالثة

بس +GDI للأسف, ما عندي غيرها! (دور على Image map in windows application)

My mobile was stolen, if you gave me your number after 1/4/2008 send it to me again Smile

 
دخول أو تسجيل لإرسال التعليقات
الإثنين, 2008/05/26 - 10:23pm
عضو فعال
صورة en.karam1989

تاريخ التسجيل: 2007-03-24
مشاركات: 2139

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: السنة الثانية

في طريقة حلوة بس متعبة أنا استخدمتها بوظيفة المربع الفارغ بالخوارزميات
الطريقة هي :
بتجيب panel شفاف وبتحطو فوق البانل اللي عليه الرسمة
وبس .....
هلأ كل ما واحد كبس كبسة عالصورة اللي هو شايفها فرح يكبس على الصورة الشفافة .. واللي فيها رح نحط الأحداث

بس شلون ؟؟
مثلا رح نقسم الخريطة لخمس أقسام بالطول وخمسة بالعرض
وبالتالي عرض كل مستطيل هو عرض الصورة الكلي \ عدد المستطيلات عرضا
وطولو هو طول الصورة الكلي \ عدد المستطيلات طولا

وبالتالي منساوي تابع منعطيه إحداثيات مكان الكبسة بيردلنا رقم المربع بالطول والعرض (يعني عنا مصفوفة مربع )

مثلا :

Map_width = 100 (pixel)
w_rectangles = 5 (eg.)
h_rectangles = 5 (eg.)
//so the width of the cell is 100/5 and also the height
{and we have the click position (x,y)
so we will immediately know that the user clicked on the rectangle (x div CellWidth,y div CellHeight) where CellWidth = CellHeight = 20
and of course we have a saved Matrix that stores what each cell represents on the map}

هلأ هي مبينة صعبة شوي بالشرح بس سهلة بالتنفيذ ومجربة Very Happy


3D Max From The Begining

طعنة العدو تدمي الجسد وطعنة الصديق تدمي القلب

 
دخول أو تسجيل لإرسال التعليقات
الثلاثاء, 2008/05/27 - 3:31am
مدير
صورة foaad

تاريخ التسجيل: 2005-07-15
مشاركات: 2975

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات

كتب en.karam1989:
بتجيب panel شفاف وبتحطو فوق البانل اللي عليه الرسمة
وبس .....
هلأ كل ما واحد كبس كبسة عالصورة اللي هو شايفها فرح يكبس على الصورة الشفافة .. واللي فيها رح نحط الأحداث
بس لشو الـ panel الشفاف؟
مابعرف شو المكتبة الي عم تستخدمها, بس عادة أي عنصر بما في ذلك مربع الصورة بيرفع أحداث الماوس يعني MouseMove و MouseDown و MouseUp
ومن خلال هدول الأحداث ممكن تعمل هالشي.
أو بالطريقة الي حكيت عليها بكفي MouseUp

 
دخول أو تسجيل لإرسال التعليقات
الثلاثاء, 2008/05/27 - 10:44am
عضو فعال
صورة en.karam1989

تاريخ التسجيل: 2007-03-24
مشاركات: 2139

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: السنة الثانية

هلأ على حالتنا هي متل ما عم تقول صح أنو ما في داعي للبانل الشفاف
بس بركي مثلا كان عنا أكثر من صورة مركبين محد بعض (متل ما صار بالمربع الفارغ )
فهي اللي شرحتها هي الحالة العامة
بس إذا ما في غير صورة وحدة فما في داعي للصورة الشفافة
وشكرا عالتنبيه Smile


3D Max From The Begining

طعنة العدو تدمي الجسد وطعنة الصديق تدمي القلب

 
دخول أو تسجيل لإرسال التعليقات
الثلاثاء, 2008/05/27 - 11:49am

تاريخ التسجيل: 2006-02-08
مشاركات: 92

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: ذكاء صنعي

كتب mpcabd:
بس +GDI للأسف, ما عندي غيرها! (دور على Image map in windows application)

أنا برأيي أنو لو كان في هيك شي بيكون هو الحل بس هو مافي على ما أعتقد.

ولكن يمكن الاستفادة من الطريقة التالية:

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

وبيكفي أنو نعالج حدث MouseDown تبع الـ panel يلي بيعطينا بطريقو إحداثيات الماوس يلي صار عندها الحدث, ونحنا عندها بنقارن هذه الإحداثيات مع إحداثيات كل مدينة وبنعرف شو المدينة يلي نقر عليها.

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

أتمنى أنو كون فهمت الموضوع صح وأنو يكون الرد مفيد

اعمل لدنياك كأنك تعيش أبدا, واعمل لآخرتك كأنك تموت غدا

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2008/05/28 - 3:41pm
صورة bayrn

تاريخ التسجيل: 2008-03-05
مشاركات: 513

الجامعة: الافتراضية
الكلية: تكنولوجيا المعلومات
المرحلة: السنة الثالثة
الاختصاص: غير ذلك

يعني فعلا الأخوة

 en.Karam1989

 foaad

 Ammar_N

مشكوريين جدا على الاهتمام و على الفكر التي بتدل على خبرة جيدة

أنا خترت فكرة الأخ Ammar_N مع الأخذ بعين الاعتبار الفكرتيين للعضويين foaad and en_Karam لأنها فكر مفيدة أيضا سوف أحتاجها

السبب الذي دفعني لاختيار الفكرة الأخيرة للسيد Ammar_N لأنني كنت عم بشتغل فيها و أنا مالي دريان شلون يعني ؟

أنا وضعت على الخريطة TextBox يلي من خلاله كنت أعرض احداثيات الخريطة اللي جبتها ، و بالتالي مثل ماقال الأخ Ammar_n فرح اعمل عملية المقارنة عند حدث النقر

لكن من خلال هذه العملية

أنا فقدت ميزة كانت في طريقتي الأولى و هي أنه كنت ومن خلال حدث MouseHouver لكل panel فوق مدينة معينة حيث كنت أغير خاصية BorderStyle لل Panel و بالتالي عند مرور المؤشر فوق المدينة يتم تفعيل المدينة و يتتضح للمستخدم أنه بالامكان التعامل معالخريطة

و الله خير و أبقى

 
دخول أو تسجيل لإرسال التعليقات