كيف انشأ واجهة برنامج احترافية بإستخدام القوائم المنسدلة
#1
كيف انشأ واجهة برنامج احترافية بإستخدام القوائم المنسدلة كما في الصورة المرفقة


الملفات المرفقة
.jpg   Untitled.jpg (الحجم : 22.95 ك ب / التحميلات : 159)
الرد
#2
من خلال إن شاء مكوناتك الخاصة والتي تحمل التصميم الذي تريد
فإذا اردت عمل مثل الشكل الذي بالصورة سيتوجب عليك عمل مكونات
تقوم برسمها بنفسك بدلاً من الإعتماد على المكونات الرئيسية , طبعاً
إذا اردت الأمور بشكل إحترافي , كذلك يوجد خيار آخر وهو ان تقوم
بتعديل المكونات الرئيسية من خلال توريثها في مكوناتك لكن هذه
لن تعطيك الحرية التي تتوقعه عندما تريد شيء إحترافي .
الرد
#3
السلام عليكم ....
تجد في المرفقات صورة لبرنامج عملته بدلفي لنفس ماطلبت تقريبا
أخي الموضوع بسيط ولا يحتاج إلى مجهود كبير .. فاللعبة هنا في إستعمال مكون Image و ImageList و مجموعة من Panel إذا أردت عدم إستعمال مكونات مثل PageControl...
الفكرة هي أن تصمم صورتين لكل عنصر قائمة فالعنصر الأول مثلا صورة لها خلفية بيضاء تقريبا وعند الضغط عليها يتم تحميل نفس الصورة ولكن بخلفية رمادية مع مثلث أبيض في اليمين .. ونفس الشي لبقية عناصر القائمة
أما كيفية محاكاة القائمة فهي وضع كود في حدث Onclick للصورة الأولى وربط كل مكونات Image الأخرى بنفس حدث Image الأولى ...

كود :
for i := 0 to ComponentCount-1 do if (Components[i] is TImage) then if(Components[i] as TImage).Parent = panel1 Then begin iml.GetBitmap((Components[i] as TImage).Tag,(Components[i] as TImage).Picture.Bitmap); (Components[i] as TImage).Refresh; up := not up; end; if Up then Iml.GetBitmap(TImage(Sender).tag+1,TImage(Sender).Picture.Bitmap); TImage(Sender).Refresh; if TImage(Sender).tag = 0 then jpc.ActivePage := ts1 else if TImage(Sender).tag = 2 then jpc.ActivePage := ts2;
في الكود السابق خصصت قيمة لخاصية tag لكل Image وباعتبار أن لكل Image صورتين كانت قيمة Tag على النحو التالي 0 و 2 و 4 و 6 و 8 و 10 ثم قمت باستعمالها لتحميل رقم الصورة الموجودة في ImageList ،، أيضا استخدمت متغير من نوع Boolean أسميته Up لمعرفة حالة الصورة هل تم النقر عليها أم لا
عند الضغط على الصورة الأولى قم بإظهار Panel الأول وإخفاء البقية وعند الضغط على الصورة الثانية قم باظهار panel الثاني وإخفاء البقية وهكذا ... ويمكنك أن تستعمل مكون مثل مكون JVPageControl بدل من Panel فهو لديه خاصية إخفاء ألسنة التبويب Tabsheets
في هذا المثال قمت باستعمال JVPageControl


الملفات المرفقة
.jpg   pic001.jpg (الحجم : 16.15 ك ب / التحميلات : 120)
الرد
#4
استخدم هذه المكونات
كود :
http://www.alphaskins.com/index.php
او استخدم TreeView كما استخدمته في برنامج لا تنس صلاتك
[صورة: desc%20(4).png]
الرد
#5
onexite كتب :استخدم هذه المكونات alphaskins
هل من مثال لكيفية استخدام هذا المكون و كذا كيفية الربط مع الكونات الأخرى.
من قال حاد عن أصله أو قال مات فقد كذب
الرد
#6
الكاسر الآخر كتب :أخي الموضوع بسيط ولا يحتاج إلى مجهود كبير .. فاللعبة هنا في إستعمال مكون image و imagelist و مجموعة من panel إذا أردت عدم إستعمال مكونات مثل pagecontrol...
شكرا لك اخي الكريم هذا ما أبحث عنه و ياريت لو تفضلت بإرفاق المثال التطبيقي للواجهة التي قمت بإنشائها بالدلفي حتى يتسنى لي فهم المثال تطبيقيا مع كامل الشكر و التقدير لك و لكل من شارك في هذا المنتدى
الرد
#7
salmaanga كتب :شكرا لك اخي الكريم هذا ما أبحث عنه و ياريت لو تفضلت بإرفاق المثال التطبيقي للواجهة التي قمت بإنشائها بالدلفي حتى يتسنى لي فهم المثال تطبيقيا مع كامل الشكر و التقدير لك و لكل من شارك في هذا المنتدى

لقد تغيبت قليلا عن الإنترنت .... تفضل أخي هذا الكود ..


الملفات المرفقة
.rar   test.rar (الحجم : 140.87 ك ب / التحميلات : 221)
الرد
#8
الكاسر الآخر كتب :لقد تغيبت قليلا عن الإنترنت .... تفضل أخي هذا الكود ..

شكرا أخي الكاسر على الكود و ابشرك اني جربته و نجح الامر و أنا حقيقة ممتن لك و أسال الله ان يفتح لك ابواب الخير كله
بقيا عندي إشكال حاولت تخطيه و لم انجح و هو كيف اقوم برسم صور الأزرار؟ حاولت بالرسام و لم ينجح الامر
الرد
#9
قم بعمل كلاس مورث من الزر الذي تريد الرسم عليه
وأعد كتابة الحدث Paint وارسم ما تريد على الزر , بالتوفيق
الرد
#10
الكاسر الآخر كتب :لقد تغيبت قليلا عن الإنترنت .... تفضل أخي هذا الكود ..

بقيا عندي إشكال حاولت تخطيه و لم انجح و هو كيف اقوم برسم صور الأزرار؟ حاولت بالرسام و لم ينجح الامر
الرد


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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم