هل يوجد لها حل
تاريخ التسجيل: 2008-03-05 مشاركات: 513
الجامعة: الافتراضية الكلية: تكنولوجيا المعلومات المرحلة: السنة الثالثة الاختصاص: غير ذلك
|
أنا أحتاج الى ادراج صورة الى واجهة البرنامج و هي عبارة عن خريطة بلد وبسبب أنني لم أستطيع التعامل معها من خلال gdi لأنني لا أمتلك خبرة فيه ، و بالتالي أنا قمت بادراج عنصر panel الى الواجهة و أدرجت الصورة فيه ومن ثم لجعل المناطق فعالة على الخريطة من خلال النقر بزر الماوس قمت بادراج عنصر panel لكل محافظة على الخريطة لكي أستطيع أن أتعامل معها عن طريق الأحداث الخاصة بالعنصر . لكن المشكلة التي ظهرت هي البطئ في عرض الواجهة نتيجة لكثرة العناصر المستخدمة هل يوجد فكرة عند أحد لتسريع البرنامج
|
| |
دخول أو تسجيل لإرسال التعليقات | قراءة: 213 |
|
مشرف
تاريخ التسجيل: 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
|
| |
دخول أو تسجيل لإرسال التعليقات |
|
عضو فعال
تاريخ التسجيل: 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}
هلأ هي مبينة صعبة شوي بالشرح بس سهلة بالتنفيذ ومجربة 
|
| |
دخول أو تسجيل لإرسال التعليقات |
|
مدير
تاريخ التسجيل: 2005-07-15 مشاركات: 2975
الجامعة: دمشق الكلية: الهندسة المعلوماتية المرحلة: السنة الخامسة الاختصاص: هندسة برمجيات
|
كتب en.karam1989:
بتجيب panel شفاف وبتحطو فوق البانل اللي عليه الرسمة
وبس .....
هلأ كل ما واحد كبس كبسة عالصورة اللي هو شايفها فرح يكبس على الصورة الشفافة .. واللي فيها رح نحط الأحداث
بس لشو الـ panel الشفاف؟
مابعرف شو المكتبة الي عم تستخدمها, بس عادة أي عنصر بما في ذلك مربع الصورة بيرفع أحداث الماوس يعني MouseMove و MouseDown و MouseUp
ومن خلال هدول الأحداث ممكن تعمل هالشي.
أو بالطريقة الي حكيت عليها بكفي MouseUp
|
| |
دخول أو تسجيل لإرسال التعليقات |
|
عضو فعال
تاريخ التسجيل: 2007-03-24 مشاركات: 2139
الجامعة: دمشق الكلية: الهندسة المعلوماتية المرحلة: السنة الثانية
|
هلأ على حالتنا هي متل ما عم تقول صح أنو ما في داعي للبانل الشفاف
بس بركي مثلا كان عنا أكثر من صورة مركبين محد بعض (متل ما صار بالمربع الفارغ )
فهي اللي شرحتها هي الحالة العامة
بس إذا ما في غير صورة وحدة فما في داعي للصورة الشفافة
وشكرا عالتنبيه 
|
| |
دخول أو تسجيل لإرسال التعليقات |
تاريخ التسجيل: 2006-02-08 مشاركات: 92
الجامعة: دمشق الكلية: الهندسة المعلوماتية المرحلة: متخرج الاختصاص: ذكاء صنعي
|
كتب mpcabd: بس +GDI للأسف, ما عندي غيرها! (دور على Image map in windows application)
أنا برأيي أنو لو كان في هيك شي بيكون هو الحل بس هو مافي على ما أعتقد.
ولكن يمكن الاستفادة من الطريقة التالية:
بيكفي نحط panel ونحط عليها الخريطة وباعتبار أنو هي خريطة فأكيد نحنا بنعرف إحدثيات المدن الجغرافية عليها. يعني فينا نعرف إحداثيات مؤشر الماوس لما بيكون فوق شي مدينة.
وبيكفي أنو نعالج حدث MouseDown تبع الـ panel يلي بيعطينا بطريقو إحداثيات الماوس يلي صار عندها الحدث, ونحنا عندها بنقارن هذه الإحداثيات مع إحداثيات كل مدينة وبنعرف شو المدينة يلي نقر عليها.
طبعاً لحتى يصير الموضوع أسهل وأعم لازم نلاقي طريقة نخزن فيها الإحداثيات بحيث البرنامج يقرأها لحالو أول شي وهيك إذا اضطرينا نغيير الخريطة بنغير الإحداثيات بمكان التخزين وكلشي بيرجع بيشتغل.
أتمنى أنو كون فهمت الموضوع صح وأنو يكون الرد مفيد
اعمل لدنياك كأنك تعيش أبدا, واعمل لآخرتك كأنك تموت غدا
|
| |
دخول أو تسجيل لإرسال التعليقات |
تاريخ التسجيل: 2008-03-05 مشاركات: 513
الجامعة: الافتراضية الكلية: تكنولوجيا المعلومات المرحلة: السنة الثالثة الاختصاص: غير ذلك
|
يعني فعلا الأخوة en.Karam1989 foaad Ammar_N مشكوريين جدا على الاهتمام و على الفكر التي بتدل على خبرة جيدة أنا خترت فكرة الأخ Ammar_N مع الأخذ بعين الاعتبار الفكرتيين للعضويين foaad and en_Karam لأنها فكر مفيدة أيضا سوف أحتاجها السبب الذي دفعني لاختيار الفكرة الأخيرة للسيد Ammar_N لأنني كنت عم بشتغل فيها و أنا مالي دريان شلون يعني ؟ أنا وضعت على الخريطة TextBox يلي من خلاله كنت أعرض احداثيات الخريطة اللي جبتها ، و بالتالي مثل ماقال الأخ Ammar_n فرح اعمل عملية المقارنة عند حدث النقر لكن من خلال هذه العملية أنا فقدت ميزة كانت في طريقتي الأولى و هي أنه كنت ومن خلال حدث MouseHouver لكل panel فوق مدينة معينة حيث كنت أغير خاصية BorderStyle لل Panel و بالتالي عند مرور المؤشر فوق المدينة يتم تفعيل المدينة و يتتضح للمستخدم أنه بالامكان التعامل معالخريطة
|
| |
دخول أو تسجيل لإرسال التعليقات |
|