تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 36 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت محمد (ص) : طلب علم بر هر انسانی واجب است ،همانا خداوند علم آموزان را دوست دارد.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و نود و ششم


 به نام خداوند جان آفرین حکیم سخن در زبان آفرین



آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و نود و ششم

سلام به همه کاربران وب‌سایت لندلرن

قسمت صد و نود و ششم


همانطور كه مي دانيد براي رسم يك شكل با استفاده از ماوس، بايد هنگامي كه كاربر در نقطه اي از كنترل كليك مي كند (و يـا در حالي كه كليد ماوس را نگه داشته است، ماوس را از روي نقطه اي مي گذراند )، بر اساس ابزاري كه انتخاب كرده است يا يك دايـره ي كوچك و يا يك مستطيل كوچك در آن نقطه رسم مي شود.

اين دايره ها و يا مستطيل هاي كوچك در حقيقت مانند نقطه عمل مي كنند كه اگر در كنار يكديگر قرار بگيرند، شكلي را تشكيل مي دهند.

پس در اين قسمت بايد آرايه اي ايجاد كنيم و نقطه هايي را كه شكل از آنها تشكيل مي شود را در آ ن آرايه قرار دهـيم.

بـه عبـارت ديگر در اين قسمت بايد آرايه اي ايجاد كنيم و اشيايي را كه از كلاس دايره و يا مستطيل ايجاد مي شوند را در آن قرار دهيم .

شكلي كه در اين قسمت بايد به اين آرايه اضافه شود چه يك دايره باشد (از كلاس GraphicsCircle نمونه سازي شده باشد ) و  چــه يــك مــستطيل، از كــلاس پايــه GraphicsItem مــشتق شــده اســت.

پــس مــي توانــد در آرايــه اي از نــوع GraphicsItem قرار بگيرد .

بنابراين ابتدا يك شيئ از كلاس GraphicsItem ايجاد مي كنيم تا زماني كه نقطه را ايجاد كرديم، بتوانيم آن را در اين شيئ قرار داده و سپس به آرايه اضافه كنيم.

نكته: ممكن است در اينجا اين سوال به وجود آيد كه كلاس GraphicsItem از نوع Abstract است و نمي تـوان شيئ را از آن ايجاد كرد، پس چگونه در اين قسمت اين كار را انجام داده ايم؟

دقت كنيد تا زماني كه يك شيئ نمونـه سـازي نـشده باشد (با استفاده از دستور new) شيئ ايجاد نشده است .

به عبارت ديگر يك شيئ زماني ايجاد مي شود كه نمونـه سـازي شـود .

در اينجا نيز ما فقط متغيري را ايجاد كرده ايم كه بتوانيم شيئ اي از نوع GraphicsItem و يا يكي از كلاسهاي مـشتق شده از آن را در اين متغيير ذخيره كنيم.

اما به علت اينكه نمي توانيم شيئ ا ز كـلاس GraphicsItem را نمونـه سـازي كنيم، پس در اين متغيير فقط مي توانيم اشيايي را نگهداري كنيم كه از كلاس هاي مشتق شده از GraphicsItem( ماننـد GraphicsCircle ) نمونه سازي شده باشند.

در حقيقت هدف ما نيز در اينجا اين است كه متغيـري داشـته باشـيم كـه بتوانـد اشـيايي كـه از كلاسـهاي مـشتق شـده از كـلاس GraphicsItem ايجــاد مــي شــوند را در آن ذخيــره كنــيم.

بنــابراين آن متغييــر را بايــد از نــوع كــلاس پايــه يعنــي GraphicsItem تعريف كنيم.

حال بايد تشخيص دهيم كه كاربر مي خواهد براي رسم نقطه بر روي يك شكل، از يك دايره ي كوچك استفاده كنـد و يـا از يـك مستطيل كوچك و يا …، اين مورد نيز بستگي به ابزاري دارد كه كاربر در برنامه براي رسم انتخاب مي كند .

اين ابزار مي تواند يكي از ثابت هاي ي موجود در شمارنده ي GraphicTools باشد،  كه البته فعلاً فقط شامل يك عـضو يعنـي CirclePen است.

اگر ابزار انتخاب شده از نوع CirclePen باشند به اين معني است كه كاربر مي خواهد نقطه هاي ايجاد كننـده ي شـكل بـه صورت يك دايره باشند.

بنابراين براي تشكيل اين نقطه ها بايد از كلاس GraphicsCircle استفاده كنيم.

پس در ايـن قسمت شيئ اي از نوع GraphicsCircle ايجاد مي كنيم.

سپس بايد با استفاده از متد SetPoint در اين شيئ، اطلاعات لازم در مورد محل قرار گيري اين نقطـه و نيـز انـدازه ي آن را مشخص كنيم.

محل قرار گيري اين نقطه كه بايد در محل كنوني ماوس باشد، پس دو پارامتر اول را برابر با محل كنوني ماوس كـه در شـيئ e وجـود دارد قـرار مـي دهـيم.

ضـخامت نقطـه نيـز بايـد بـا اسـتفاده از يكـي از ثابـت هـاي موجـود در شـمارنده ي GraphicSizes تعيين شود اما نوع آن بايد عدد صحيح باشد، پس مقدار انتخابي از اين شمارنده را بـه يـك عـدد صـحيح تبديل كرده و به عنوان پارامتر سوم به متد SetPoint مي فرستيم.

پارامتر چهارم رنگ نقطه را مشخص مي كند، پـس مقـدار فيلد GraphicColor را به عنوان پارامتر چهارم به اين متد مي فرستيم .

پارامتر آخر نيز مشخص مي كند كه آيا بايد شـكل به صورت توپر رسم شود يا نه. در اين جا تعيين مي كنيم كه شكل به صورت توپر رسم شود.

بعد از تنظيم قسمت هاي مختلف نقطه اي كه بايد در فرم قرار گيرد، نقطه را در شيئ اي از نوع GraphicsItem قرار مـي دهيم تا بعدا بتوانيم آن را به ليست نقطه هاي تشكيل دهنده ي فرم اضافه كنيم.

ادامه ی این قسمت را در قسمت صد و نود و هفتم ببینید.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ