البرمجة في واجهة رسومية c. إنشاء واجهة مستخدم رسومية باستخدام Qt

يوم جيد! في هذا البرنامج التعليمي ، سننشئ أول تطبيق GUI لك في MS. استوديو مرئي. سيكون نوعًا من "Hello World" للتطبيقات الرسومية. سأقول ذلك على الفور استخدام الويندوزالنماذج ليست هي الطريقة الوحيدة لمبرمجي C # لإنشاء تطبيقات رسومية (تطبيقات ذات واجهة مستخدم رسومية) ، ولكنها مكان جيد لبدء التعلم. وهكذا ، أطلقنا Visual Studio.

انطلقت؟ ثم إلى العمل! نذهب إلى القائمة الرئيسية ونختار العنصر "ملف - جديد - مشروع" ، كما هو موضح في الشكل أدناه.

في النافذة التي تظهر:

  • على الجانب الأيسر ، حدد "قوالب - Visual C # - Windows" ؛
  • في المنطقة الرئيسية ، حدد العنصر "تطبيق نماذج Windows" ؛
  • في الجزء السفلي من النافذة ، أدخل اسم المشروع وحدد موقعه على القرص.

بشكل عام ، كما هو موضح في الشكل أدناه.

هل حددت ما تحتاجه؟ ثم انقر فوق الزر "موافق". الآن يجب أن ترى شيئًا كهذا (المناطق الرئيسية مظللة بالمستطيلات):

في الصورة أعلاه ، قمت بتسمية المناطق الرئيسية: منطقة المصمم (أعلى اليسار) ومنطقة مستكشف الحلول (أعلى اليمين) ومنطقة الخصائص (أسفل اليمين). هذه هي المجالات التي سنعمل معها في أغلب الأحيان.

في منطقة المصمم ، يوجد الآن "نموذج" فارغ ، هذه هي النافذة المزعومة ، في هذه الحالة ، النافذة الرئيسية لبرنامجنا. تعرض منطقة الخصائص خصائص العنصر المحدد في المصمم ، وفي هذه الحالة ، النموذج الخاص بنا ، لكن منطقة مستكشف الحلول تحتوي على ملفات المشروع ، بما في ذلك تلك المتعلقة بالنماذج (windows) للبرنامج. والآن ، دعنا نغير شكلنا قليلاً ، ونشغل هذا التطبيق الأول.

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

خاصية "النص" من النموذج الرئيسي للتطبيق

يرجى ملاحظة أن العمود الأيسر يظهر الاسم (اسم الخاصية) ، والعمود الأيمن يظهر قيمته.

في هذه الحالة ، نحن نتعامل مع خاصية نصية ، وقيمتها معروضة في عنوان النافذة ، لذلك دعونا الآن نضع شيئًا خاصًا بنا هناك ، على سبيل المثال ، شيء مثل: "النافذة الرئيسية" ، كما هو موضح في الشكل أدناه:

الآن ، يمكنك بناء المشروع وتشغيله. للقيام بذلك ، انتقل إلى القائمة الرئيسية وحدد "إنشاء - إنشاء حل". ثم نطلق التطبيق ، ولهذا نختار العنصر "تصحيح - تشغيل بدون تصحيح" في القائمة الرئيسية. نتيجة لذلك ، سترى النافذة التالية.

في الدرس التالي ، سنلقي نظرة على عمل بسيطمع مصمم النماذج ، وإعداد عناصر واجهة المستخدم الرسومية ، وانتهى هذا الدرس ، أنشأنا أول تطبيق رسومي ، وقمنا ببنائه وتشغيله.

أهلا بالجميع. في دروسي السابقة ، تحدثت عن إنشاء تطبيقات وحدة التحكم في بيئة Borland C ++ Builder. بدءًا من هذا الدرس ، سنتعلم C ++ باستخدام التطبيقات الرسومية كمثال. من يريد أن يتعلم كيفية إنشاء لوحات المفاتيح. يمكنه قراءة كتاب The Art of Building Console Applications in C ++. سيكون تطبيقنا الأول عبارة عن برنامج يعرض رقمًا عشوائيًا. نفتح borlandyayu ، فقط لا تنشئ تطبيق وحدة التحكم. بعد التشغيل ، سيظهر النموذج التالي على الشاشة:

في الجزء العلوي سيكون هناك شريط أدوات:

على اليمين ، مفتش الكائن وقائمة النماذج:

المكونات (على عكس BASIC) مقسمة بالفعل إلى علامات تبويب. بالاسم ، ليس من الصعب تخمين نوع المكونات الموضوعة في علامة التبويب. افتح علامة التبويب القياسية وضع المكونات على النموذج مثل لي:

سيتم تسمية الزر Button1. هي بحاجة إلى التغيير. في النافذة اليسرى السفلية من بورلاند ، يتم عرض خصائص المكونات ؛ يجب تغييرها إلى خصائصنا:

في زر Caption (Inscription) ، غيّر إلى Generate

بالنسبة للتسمية Label1 ، قم بتغيير خاصية التسمية التوضيحية إلى رقم

في Edit1 ، يتم محو خاصية Text (النص الموجود في التعديل نفسه) ببساطة.

بعد هذه التلاعبات ، سيبدو النموذج مثل لي:

لقد انتهينا من النمط المرئي ، بالمناسبة ، تبدو معظم الخصائص في Borlyad مثل BASIC أو Delphi. جرب معهم.

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

اليوم سوف نستخدم حدث Click فقط. انقر مرتين على الزر وادخل إلى نافذة الكود:

تم إنشاء حدث النقر للزر تلقائيًا. يتم وضع الكود ، مثل تطبيق وحدة التحكم ، بين الأقواس المتعرجة. نكتب الكود:

Void __fastcall TForm1 :: Button1Click (TObject * Sender) (double aaa؛ // ضع الرقم الذي تم إنشاؤه بواسطة المعالج هنا String count؛ // اكتب نفس الرقم ، ولكن تم تقليله إلى سلسلة بشكل عشوائي ؛ // هذا ضروري بحيث لا تتكرر الأرقام aaa = عشوائي (34) * 43646 ؛ // إنشاء أي عدد = FloatToStr (aaa) ؛ // ترجم الرقم إلى سلسلة باستخدام دالة FloatToString Edit1-> Text = count ؛ // إخراج متغير سلسلة في نافذة النص)

الخوارزمية بسيطة ، نعلن عن متغير لتخزين عدد كسري فيه ، ومتغير للرقم في شكل سلسلة. الحقيقة هي أنه لا يمكن عرض الرقم الذي تم إنشاؤه فورًا في مربع نص (سيكون هناك خطأ. كان من المتوقع وجود نص وتم استلام رقم) ، لذلك باستخدام وظيفة FloatToStr ، نترجم الرقم إلى سلسلة ونعرضه في مربع الكتابة. للإخراج ، ننتقل (باستخدام علامة -> (على غرار النقطة في vb)) إلى خاصية النص Edit1 ونعرض النص هناك. هذا كل شئ حتى الان.

بالمناسبة ، سؤال ردم: من يتكاثر بشكل أسرع فيروسات الكمبيوتر، الصينية ، أم الأرانب؟


تعليقات()

فيتاي

أرتيومكا

"العشوائية ؛ // هذا ضروري حتى لا تتكرر الأرقام." ما زلت أكرر. ما يجب القيام به؟

أندريه

هناك خياران 1-استخدام "عشوائي () ؛" أو في السطر 6 يعقد الوظيفة على سبيل المثال أضف المزيد من الثواني

أندريه

"الثواني" أو نتيجة إضافة رقمين شبه عشوائيين مقسومًا على ثوانٍ - فكلما زاد عدد العوامل ، زاد عدم القدرة على التنبؤ بالرقم

أرتيومكا Alexey (alex13sh)

عشوائيا
هذا حتى لا تتكرر الأرقام عند تشغيل البرنامج
حسنًا ، هذا هو. قم بتشغيل البرنامج ، اضغط على الزر عدة مرات
1)5
2)47
3)86
هذا أنا في أعداد صحيحة
حسنًا ، إذا قمت بإيقاف تشغيل البرنامج وتشغيله مرة أخرى ، عند الضغط على الزر بشكل متسلسل ، سيكون هناك نفس الأرقام بنفس التسلسلات
هذا بدون عشوائية ، ولكن لن يتم إزالته

وما يتكرر بهذه الطريقة
1)3
2)69
3)1
4)3
5)8
6)1
هذا لا ينطبق على العشوائية
لتجنب هذا Andrey أجاب بالفعل))

بيجزود

لدي بصري c ++. net على جهاز الكمبيوتر الخاص بي. لا أستطيع العثور على الكتب المدرسية ، ورموز المصدر لها. مساعدة pzhs.

علي 05

رأيت في المكتبة كتابًا دراسيًا عن Visual C ++. Net "أساسيات برمجة Nikita Kultin في مايكروسوفت البصرية C ++ 2010 "، فهو يوضح فقط كيفية إنشاء ملفات تطبيقات الرسومتحت Windows (WinForms).

كولهاكر نينتندو

أتساءل ما هو "سيئه"؟

كولهاكر

في غياب القدرة على تقديم المواد بشكل صحيح وتعويدكم ، أيها السادة ، على أسلوب برمجة سيئ ، أسماء متغيرات / وظائف مترجمة بحروف لغة أخرى.

إدوارد كولهاكر

وزارة التربية والتعليم والعلوم في الاتحاد الروسي

مؤسسة التعليم الفيدرالية للميزانية الحكومية

التعليم المهني العالي

"زيت ولاية أوفا

جامعة فنية"

قسم علوم الحاسب الآلي وعلم التحكم الآلي الهندسي

إنشاء تطبيق واجهة المستخدم الرسومية في Microsoft Visual Studio 2010

مساعدة تعليمية

للفصول المختبرية والعملية

مع طلاب الاتجاه

230100 (09.03.01) "المعلوماتية وهندسة الحاسوب"

توفر المساعدة التعليمية معلومات نظرية ومهام للعمل العملي والمختبري لدورة "البرمجة".

الدليل موجه لمعلمي التخصص وكذلك طلاب الاتجاه: 230100 "المعلوماتية وهندسة الحاسبات".

جمع: جبدولينا أ.أ. ، الفن. محاضر في القسم VTIK

Druzhinskaya E.V. ، الفن. محاضر في القسم VTIK

المراجع: فيليبوف ف.ن. ، دكتوراه ، أستاذ مشارك في القسم. VTIK.

1. المعلومات النظرية 4

1.1 المفاهيم الأساسية 4

1.2 التعارف مع تطبيق Windowsالنموذج في Microsoft Visual Studio 2010 4

1.3 شكل 7 السيطرة

1.5 وظيفة MessageBox 9

1.6 التحكم في مربع النص 10

2- مهمة عملية. مقدمة لتطبيق نموذج Windows في Microsoft Visual Studio 2010 12

2.1. هيكل التقييم للعمل المنجز 12

2.2. إجراءات أداء العمل العملي 12

3. العمل المخبري. تطوير التطبيقات في Microsoft Visual Studio 2010 16

3.1. ترتيب المعمل 16

3.2 المهمة 1. جدولة دالة وحساب قيمها في الفاصل الزمني المحدد بخطوة معينة 16

3.3 المهام الفردية 19

3.4. المهمة 2. المعالجة صفائف ثنائية الأبعاد 21

3.5 المهام الفردية 27

  1. المعلومات النظرية

  1. 1.1 مفاهيم أساسية

يتم تمثيل أتمتة عمليات المعلومات حاليًا ، أولاً وقبل كل شيء ، من خلال تطوير تطبيق برمجي بواجهة مستخدم رسومية (GUI) تدير تدفقات البيانات.

واجهة المستخدم الرسومية (GUI) هي نظام من وسائل تفاعل المستخدم مع جهاز يعتمد على عرض جميع كائنات النظام والوظائف المتاحة للمستخدم في شكل مكونات شاشة رسومية (النوافذ ، والأزرار ، وأشرطة التمرير ، وما إلى ذلك).

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

يجب أن تفي واجهة المستخدم الرسومية القياسية بعدد من المتطلبات:

الحفاظ على تقنية المعلومات لعمل المستخدم مع منتج البرنامج ؛

التركيز على المستخدم النهائي الذي يتواصل مع البرنامج على مستوى التفاعل الخارجي ؛

استيفاء مبدأ "ستة" ، عندما لا يتم تضمين أكثر من 6 مفاهيم في شريط قوائم واحد ، كل منها لا يحتوي على أكثر من 6 خيارات ؛

    الحفاظ على غرض موحد للأشياء الرسومية ، وإذا أمكن ، موقعها على الشاشة.

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

عند تطوير تطبيقات بخلاف وحدة التحكم ، فإن المفهوم الرئيسي هو النموذج.

النموذج عبارة عن حاوية لاستضافة عناصر تحكم بيئة التصميم.

الخصائص - القدرة على الوصول إلى المعلومات المخزنة في هذا العنصر.

الأساليب هي مجموعة من الإجراءات التي يمكن أن يؤديها الكائن.

الحدث عبارة عن إجراء يتعرف عليه كائن (على سبيل المثال ، نقرة بالماوس أو الضغط على مفتاح) ، والتي يمكن برمجة استجابة لها ، أي استجابة الكائن للحدث.

آخر تحديث: 05/26/2019

في Xamarin.Forms ، تتكون الواجهة المرئية من صفحات. الصفحة هي كائن من فئة الصفحة ، وهي تحتل مساحة الشاشة بأكملها. هذا ما نراه على الشاشة جهاز محمولهي صفحة. يمكن أن يحتوي التطبيق على صفحة واحدة أو أكثر.

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

لنأخذ مشروع HelloApp الذي تم إنشاؤه في الموضوع السابق (أو إنشاء واحد جديد). بشكل افتراضي ، يتم إنشاء الواجهة بالكامل في فئة التطبيقات ، والموجودة في ملف App.xaml.cs والتي تمثل التطبيق الحالي:

الكود الافتراضي الخاص به هو:

باستخدام النظام ؛ باستخدام Xamarin. باستخدام Xamarin.Forms.Xaml ؛ مساحة الاسم HelloApp (تطبيق فئة جزئية عامة: Application (تطبيق عام () (InitializeComponent () ؛ MainPage = new MainPage () ؛) تجاوز محمي باطل OnStart () (// معالجة عند بدء تشغيل التطبيق) تجاوز محمي باطل OnSleep () (/ / التعامل مع عندما ينام التطبيق الخاص بك) تجاوز محمي باطل OnResume () (// التعامل عند استئناف تطبيقك)))

تبدأ فئة التطبيق بالمُنشئ ، حيث يتم استدعاء أسلوب InitializeComponent () أولاً ، والذي يقوم بتهيئة الكائن ، ثم يتم تعيين خاصية MainPage. من خلال هذه الخاصية ، يتم تعيين فئة التطبيق الصفحة الرئيسيةالتطبيقات. في هذه الحالة ، يتم تعريفه بواسطة فئة HelloApp.MainPage ، وهي الفئة المحددة في ملفات MainPage.xaml و MainPage.xaml.cs.

لكن هذا الطريق ليس هو الوحيد. تسمح لك Xamarin.Forms بإنشاء واجهة مرئية إما باستخدام كود C # أو بشكل إعلاني باستخدام لغة xaml ، على غرار html ، أو مزيج من هذه الأساليب.

إنشاء واجهة من كود C #

دعنا نضيف فئة C # عادية إلى مشروع HelloApp ، والذي سنسميه StartPage.

وحدد المحتوى التالي في هذه الفئة:

باستخدام Xamarin.Forms. مساحة الاسم HelloApp (فئة StartPage: ContentPage (عامة StartPage () (Label header = new Label () (Text = "Hello from Xamarin Forms")؛ this.Content = header؛)))

تمثل هذه الفئة صفحة ، لذا فهي ترث من فئة ContentPage. يُنشئ المُنشئ تسمية مع النص ، والذي يتم تعيينه كمحتوى الصفحة (this.Content = header).

لتعيين MainPage كـ أبدأ الصفحة، قم بتغيير فئة التطبيق:

باستخدام Xamarin.Forms. مساحة الاسم HelloApp (تطبيق فئة جزئية عامة: Application (تطبيق عام () (InitializeComponent () ؛ MainPage = new StartPage () ؛) تجاوز محمي باطل OnStart () (// معالجة عند بدء تشغيل تطبيقك) تجاوز محمي باطل OnSleep () (/ / التعامل مع عندما ينام التطبيق الخاص بك) تجاوز محمي باطل OnResume () (// التعامل عند استئناف تطبيقك)))

تشير الخاصية MainPage الآن إلى StartPage الذي تم إنشاؤه حديثًا.

من الجدير بالذكر أيضًا أن Visual Studio يحتوي على قالب جاهز لإضافة فئات صفحات جديدة بأبسط رمز. لذلك ، لإضافة صفحة جديدة ، تحتاج إلى تحديد قالب صفحة المحتوى (C #) عند إضافة عنصر جديد:

تتم إضافة هذه الفئة إلى المشروع الرئيسي للحل (في هذه الحالة هو HelloApp).

سيكون لفئة الصفحة المضافة الرمز التالي:

باستخدام النظام ؛ باستخدام System.Collections.Generic ؛ باستخدام System.Linq ؛ باستخدام System.Reflection.Emit ؛ باستخدام System.Text ؛ باستخدام Xamarin. مساحة الاسم HelloApp (فئة عامة الصفحة 1: ContentPage (صفحة 1 عامة () (المحتوى = جديد StackLayout (الأطفال = (تسمية جديدة (نص = "صفحة مرحبًا"))) ؛)))

سترث هذه الفئة أيضًا من فئة ContentPage الأساسية وستكون لها نفس المؤسسة تقريبًا مثل فئة MainPage التي تم إنشاؤها أعلاه.

وأيضًا في فئة التطبيق ، يمكننا تعيين هذه الصفحة كصفحة البداية:

باستخدام Xamarin.Forms. مساحة الاسم HelloApp (تطبيق فئة جزئية عامة: التطبيق (التطبيق العام () (InitializeComponent () ؛ الصفحة الرئيسية = صفحة 1 () ؛) // ...........))

5

لقد أنشأت العديد من الأقسام المختلفة لنظام Nintendo DS GUI مثل الأزرار ومربعات النص ومربعات الاختيار ولكني بحاجة إلى طريقة لإخفاء هذه الفئات في فئة Gui واحدة حتى أتمكن من رسم كل شيء على الشاشة دفعة واحدة والتحقق من جميع الأزرار في وقت واحد للتحقق من الضغط على أي أزرار. سؤالي هو ما هي أفضل طريقة لتنظيم جميع الفئات (مثل الأزرار ومربعات النص) في فئة واجهة مستخدم رسومية واحدة؟

هذه طريقة فكرت بها ، لكنها لا تبدو صحيحة:

يحرر:أنا أستخدم C ++.

Class Gui (public: void update_all ()؛ void draw_all () const؛ int add_button (Button * button)؛ // Returns button id void remove_button (int button_id) ؛ خاص: أزرار * ؛ int num_buttons ؛)

يحتوي هذا الرمز على بعض المشاكل ، لكنني أردت فقط أن أعطيك فكرة عما أريد.

  • 5 ردود
  • فرز:

    نشاط

2

هذا السؤال مشابه جدًا للسؤال الذي كنت على وشك نشره ، فقط سؤالي مخصص لبرمجة Sony PSP.

لقد كنت أبحث عن شيء ما لفترة من الوقت ، لقد استشرت بعض الكتب و VTMs ، وحتى الآن هذه فكرة تقريبية لأنظمة واجهة المستخدم البسيطة.

فئة uiElement () (... تحديث الفراغ الظاهري () = 0 ؛ الفراغ الظاهري Draw () = 0 ؛ ...) فئة uiButton () عامة: uiElement (... تحديث الفراغ الظاهري () ؛ رسم الفراغ الظاهري () ؛ ...) فئة uiTextbox () عامة: uiElement (... تحديث الفراغ الظاهري () ؛ رسم الفراغ الظاهري () ؛ ...) ... // فئة عناصر واجهة المستخدم الأخرى uiWindow () (... تحديث باطل ()؛ void Draw ()؛ void AddElement (uiElement * Element)؛ void RemoveElement (uiElement * Element)؛ std :: list عناصر؛ ...) void uiWindow :: Update () (... لـ (list :: iterator it = Elements.begin () ؛ it! = Elements.end () ؛ it ++) it-> Update () ؛ ...) void uiWindow :: Draw () (... لـ (list :: iterator it = Elements.begin () ؛ it! = Elements.end () ؛ it ++) it-> Draw () ؛ ...)

princple هو إنشاء النافذة وعناصر Attact واجهة المستخدمإليها ، واستدعاء طرق السحب والتحديث من الوظائف الرئيسية المقابلة.

لا شيء يناسبني حتى الآن ، لأنني أواجه مشكلات في رمز الرسم. مع العديد من واجهات برمجة التطبيقات على الكمبيوتر الشخصي و PSP ، فإنني أبحث في رمز المجمع لـ OpenGL و psp gu.

أتمنى أن يساعدك هذا.

0

يمكن أن تكون إحدى الإستراتيجيات المفيدة التي يجب وضعها في الاعتبار هي النمط المركب. عند المستوى المنخفض ، يمكن أن يتيح لك التعامل بسهولة أكبر مع جميع كائنات واجهة المستخدم الرسومية (ومجموعات الكائنات) بمجرد إنشائها. لكني لا أعرف أي شيء يتعلق بتصميم واجهة المستخدم الرسومية ، لذا فإن أحد الأماكن للعثور على الإلهام العام هو الكود المصدري لمشروع قائم. WxWidgets عبارة عن واجهة مستخدم رسومية متعددة المنصات مع ملف مصدر الرمز. حظا سعيدا مع المشروع الخاص بك!

0

3

للمهتمين ، إليك مجموعة أدوات واجهة المستخدم الرسومية مفتوحة المصدر ومرخصة من BSD لـ DS:

تعد إجابة Subject2k جيدة جدًا ، لكنني أوصي بشدة بالحصول على كود يحتوي على عناصر واجهة فرعية في فئة uiElement الأساسية. هذا هو النمط الذي اتبعته في Woopsie.

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

  • يمكن نمذجة أشرطة الجدول كأزرار متعددة مجمعة تحت عنصر واجهة مستخدم أصل واحد يوفر حصرية متبادلة للاختيار ؛
  • مجموعات من أجهزة الراديو (بمرور الوقت) ؛
  • يمكن تمثيل أشرطة التمرير كعنصر منزلق / هامش وزر لأعلى / لأسفل ؛
  • يمكن تمثيل قوائم التمرير كحاوية والعديد من عناصر واجهة المستخدم.

أيضًا ، من الجدير بالذكر أن DS لديه معالج 66 ميجاهرتز و 4 ميجابايت من ذاكرة الوصول العشوائي ، والتي تُستخدم لتخزين البرنامج وتشغيله (يتم تحميل أقراص DS في ذاكرة الوصول العشوائي قبل تشغيلها). يجب عليك حقًا اعتباره نظامًا مضمنًا ، مما يعني عدم وجود STL. قمت بإزالة STL من Woopsi وتمكنت من توفير 0.5 ميغابايت. ليس كثيرًا وفقًا لمعايير سطح المكتب ، ولكنه يمثل 1/8 من إجمالي ذاكرة DS المتاحة التي تستهلكها بيانات STL المهملة.

أفصل العملية الكاملة لكتابة واجهة مستخدم على مدونتي:

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



تحميل...
قمة