![]() |
|
|||||||
| مجلس برمجة الماكنتوش باشراف ابو بكر
يختص بكل ما يتعلق ببرمجة الماك |
![]() |
|
|
LinkBack | أدوات الموضوع | طرق مشاهدة الموضوع |
|
||||
<div class='quotetop'>إقتباس(صهيل نجد @ 21-01-2008, 21:05) <{POST_SNAPBACK}></div>اقتباس:
اقتباس:
جزاك الله خير وجعله في ميزان حسناتك تحياااااااااااااااااااااا اااااااااااااتي لكل من سااااااااااااااااااااااهم في هذا الانجاز الذي أتمنى أن نكون مستفيدين فيه ومنتجين [/b][/quote] بالنسبة للملف في الماكنتوش ذكرت أنه يتكون من سلسلتين -مختلفتين ومنفصلتين كليا- من البايتات (البيانات أو المعلومات المحفوظة فيه) وتسمى السلسلتان بالشوكتين، الأولى شوكة البيانات: تقابل الملف بأكمله في الأنظمة الأخرى كنظام Windows أو Unix، والثانية تسمى شوكة الموارد وهي خاصة بنظام الماكنتوش. وفيزيائيا أن نصف الملف في الماكنوش يقابل الملف بأكمله في الأنظمة الأخرى. وهذه الشوكة لا تراها الأنظمة الأخرى، ولعل هذا ما يسبب حدوث بعض المشاكل عند تشغيل نظام الماكنتوش على حواسب غير ماكنتوشية. وبما أنك مبرمجة، سأذكر هذا المثال: تعرفين الإشارات البرمجية Pointers؟ صحيح؟ هذا السطر: void* myData; هو تعريف متغير اسمه myData ونوعه مؤشر إلى شيء ما، طيب هذا السطر: void** myData; هذا مؤشر أخر لكنه درجة ثانية من الإشارة، طيب انظري إلى تعريف هذا النمط: typedef signed char Byte; typedef Byte * Ptr; typedef Ptr * Handle; هذه تعاريف الإشارات في نظام الماكنتوش، فالإشارة Ptr هي الإشارة المستخدمة في جميع الأنظمة، أما التعريف الثاني Handle فهي إشارة الإشارة وهي بهذا الشكل خاصة بنظام الماكنتوش، وإذا ما تم تعريفها في نظام Windows على هذا الأساس، فستحدث مشاكل مما يضطر المبرمج إلى إعادة تشغيل الحاسوب، وذلك أن الذاكرة في الماكنتوش يتم حجز بلوكات فيها على نوعين، النوع الأول: البلوكات الغير قابلة لإعادة تمركزها، ولا يتغير مكانها في الذاكرة وهي نفسها التي تكون في الأنظمة Windows و Unix. أما النوع الثاني من البلوكات هي القابلة لإعادة التمركز وتغيير مكانها وعنوانها. وفي نظام Windows أو Unix لا يوجد هذا النوع الثاني. فالأن الشوكة الأولى شوكة البيانات يتم الإشارة إليها بالنوع الأول Ptr، وتكون البلوك المحجوزة لها ثابتة، بينما شوكة الموارد تكون إشارتها من النوع الثاني Handle ويتغير مكانها وعنوانها دائما والبلوك التي تحجز لها كذلك. وفي نظام Windows أو Unix لا تتوفر فيها هذه الإشارة بهذا التعريف، أما من ناحية الكلمة، فهي مستخدمة كتعريف عنصر Object، فتجد : HMENU أي أنها عنصر القائمة. فإذا ما أردت منع مستخدمي Windows من قراءة بعض البيانات انقليها الى الشوكة الثانية فقط. ومما كان في غاية الروعة أن Ptr إشارة، لأنها تشير إلى مكان في الذاكرة، وكذلك Handle إشارة لأنها تشير أيضا إلى مكان في الذاكرة (إشارة الإشارة) فنستطيع استخدام كل منهما ليشير إلى الأخر أو إلى أي من الشوكتين، وهذا ما انفرد به نظام الماكنتوش.
__________________
أبو بكر |
|
||||
|
أما شوكة البيانات .....فهمت والحمد لله
ولكن ....شوكة الموارد؟؟؟ ماذا تقصد بها؟؟ مافهمته أنه شئ فريد يميز الماكنتوش عن غيره.. فبالمثال ذكرت.... typedef signed char Byte; typedef Byte * Ptr; typedef Ptr * Handle; اذا اعتبرنا ptr هي مؤشر على string بطبيعة الحال مؤشر على الحرف الأول من string فان handle هي المؤشر الفعلي للحرف الاول.......وكأنه يقول مؤشر المؤشر.... أم هي طريقة اخرى ؟؟؟ او مميزات أخرى؟؟ في الوندز كنا نملك two dim.&three dimونستطيع التحرك بينهم بطلاقه. عن طريق pointers؟؟؟؟ أعذرني أتعبتك؟؟؟ |
|
||||
|
<div class='quotetop'>إقتباس(صهيل نجد @ 22-01-2008, 02:58) <{POST_SNAPBACK}></div>
اقتباس:
وبالنسبة للإشارتين Ptr و Handle فهي على النحو التالي: إذا اعتبرنا أن Ptr يشير إلى String فإنه يشير إلى أول حرف (بايت) فيها، والمؤشر Handle يشير إلى المؤشر Ptr، وليس إلى الحرف الأول في الجملة String، أي أن المؤشر Handle يحفظ عنوان المؤشر Ptr. وإليك هذا الشكل التوضيحي الذي يوضح كيف تشير الإشارتان، وكيف تكون إشارة Ptr ثابتة، وكيف يكون وضع الإشارة Handle قبل أن تقوم إدارة الذاكرة بتغيير مكانها، وكيف يكون وضعها بعد التغيير: [attachment=2108:Type_of_...acintosh.png] من الشكل يتضح: (الرسم الذي على اليسار قبل أن يتغير موقع Handle) لدينا متغير اسمه myHandle يشير إلى البلوك Master pointer، وهو إشارة إلى البلوك ذي اللون الغامق. (ومن الرسم الذي على اليمين بعد أن تغير موقع Handle) لاحظي كيف تغير موقع البلوك المشار إليه أصلا بواسطة myHandle. أما بالنسبة لما ذكرت <div class='quotetop'>إقتباس</div> اقتباس:
<div class='quotetop'>إقتباس</div> اقتباس:
هل قمت بتطبيق ما جاء في هذا الموضوع: انقري هنا.
__________________
أبو بكر |
|
||||
|
والله كلام راااااااااائع ....
وشرح أروع ...........أشكرك أستاذي أنا انقطعت فترة ....وعدت لأجد قسم البرمجة والمواضيع الكثيرة جدا فلم أعلم من أين أبتدأ ؟؟؟ لكن أمهلني فقط الى يوم الاحد البعد القادم.. لأبدأ خطوة ...خطوة تعلم أمتحانات وتسليم مشاريع ومناقشات... وقد قرأت هذا الموضوع في ماك أرابيا... أشكرك .... وأعانك الله علينا |
|
||||
|
بإذن الله تتعلم معنا البرمجة أنا مش عارف أي أخبار عن أخي الكريم أبو بكر بس إن شاء الله هو هيكمل الدورة والناس ترجع زي ما كانت ويكون في جدية منهم لأن الكسل مش من أخي أبى بكر ولكن من الناس.
بالتوفيق ليك ولجميع من يريد تعلم البرمجة والسلام عليكم ورحمة الله وبركاته. ![]() |
|
|||
|
الله يعطيكم العافية ياشباب
وبالتوفيق باذن الله لكن لي تساؤل هل هذا القسم يختص بالمبرمجين بمعنى آخر يجب أن يكون الواحد لديه خلفية عن البرمجة أم هاتبتدوا لنا من الصفر؟؟؟؟ فعلى سبيل المثال : بصراحة مش فاهم ولا كلمة من المداخلة مع الأخ صهيل حيث أنه من الواضح إن الاثنين فاهمين زيادة عن اللزوم هاهاهاها ![]() ![]() أنا طبعاً بهزرشكراً |
![]() |
|
| أدوات الموضوع | |
| طرق مشاهدة الموضوع | |
|
|