نمایش نتایج 1 تا 12 از 12

نام تاپیک: بخشی از ویژگیهای جدید Borland Developer Studio 2006

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #2
    بخش دوم


    • Code Folding and Region
    با استفاده از علامت – و + در کنار هر تعریف، متد یا تمام بخشها مانند بخش Implementation یک یونیت که وجود دارد
    میتوانید آن را ببندید یا باز کنید(این علامات به صورت خودکار در کنار هر بخشی ایجاد میشود).

    Ctrl+Shift+K+O : غیرفعال/فعال کردن Code Folding
    Ctrl+Shift+k+E : بستن کد
    Ctrl+Shift+K+U : باز کردن کد
    Ctrl+Shift+K+A باز کردن همه کد

    ویژگی که به محیط Code Editor اضافه شده، تعریف شخصی چنین بخشی ست ، به این معنی که شما میتوانید با
    استفاده از یک رهنمود کامپایلر (compiler directives) این بخش را ایجاد کنید و آن را نامگذاری کنید.

    {$REGION 'your region name'}
    ......
    .....
    ....
    ...
    {$ENDREGION}



    {$REGION 'extra code}
    procedure TestMessage;
    begin
    ShowMessage('Test');
    end;
    {$ENDREGION}






    • Refactoring

    تکنیکی ست برای دوباره ساختن و اصلاح کد جاری تا رفتار کد جاری به همان صورت باقی بماند.

    سه نوع Refactoring در دلفی تعریف شده ست :
    یکی استفاده از ترکیب کلیدهای Ctrl+Shift+V، برای تعریف متغیر محلی و دیگری برای تعریف فیلد
    (یا همان متغیر در ساختار کلاس جاری ست) که با ترکیب کلیدهای Ctrl+Shift+D ست. خوب، این مراحل را که خودم هم
    میتوانستم با رفتن به بخش تعریف کلاس یا Begin متد انجام بدهم !!؟؟ بله، Refactoring امکان مفید دیگری که در کنار
    کدنویسی سریعتر به شما میدهد اینست که نیازی نیست وقفه ای را ایجاد کنید و سرتاسر سورس را برای تعریف
    یک متغیر طی کنید، نیازی نیست که به Begin متد بروید و کلمه var را اگر وجود نداشته باشد تایپ کنید و بعد هم متغیر
    مورد نظر را تعریف کنید یا به کلاس یک متد بروید تا در آنجا فیلدی را تعریف کنید.

    نمونه :
    خط زیر را در Code Editor بنویسید و از قبل مطمئن باشید که متغیری به نام i وجود ندارد :

    For I := 0 to


    به موقعیت i برگردید و تعریف متغیر (Declare Variable) را فعال کنید (با Ctrl+Shift+V یا از منوی اصلی و گزینه Refactor
    یا با استفاده از context menu که همان کلیک راست در Code Editor و گزینه Refactoring). فرمی باز میشود که اگر
    در جلوی متغیر := و مقدار را قرار نداده باشید ، نوع پیشنهادی خود را نمایش میدهد. اگر در این فرم دقت کنید، میبنید که
    میتوانید یک آرایه نیز تعریف کنید، همچنین میتوانید یک مقدار اولیه (initial value) نیز برای متغیر در نظر بگیرید که در این
    صورت دلفی یک خط جدید بعد از Begin متد ایجاد میکند و مقدار را به متغیر تخصیص میدهد.
    تعریف فیلد (Declare Field)نیز شباهت خیلی زیادی به تعریف متغیر دارد.



    Extract Resource String

    دومین Refactoring یی که در دلفی وجود دارد راه ساده ایست برای انتقال یک متغیر رشته ای به بخش resource string.
    بخش resource string در قسمت code segment برنامه کامپایل نمیشود ولی مانند یک resource به فایل اجرایی لینک میشود.
    به این شکل میتوان بخشی از حافظه را که همیشه درگیر متغیرهای رشته ای هست را آزاد کرد.

    نکته :
    تعریف resource string مانند تعریف Const است :

    resourcestring
    rsTest = 'this is my resource string'


    استفاده از resource string ها واقعا خسته کننده ست؛ باید از رشته مورد نظر کپی بگیرید ، از محل فعلی به قبل از
    بلاک جاری(حداقل) حرکت کنید ، resource string را تعریف کنید ، رشته مورد نظر را قرار دهید ، به موقعیت قبلی برگردید
    و از نام resource string یی که در بالا تعریف کرده اید استفاده کنید. ولی حالا فقط با یک دستور همه این کارها انجام میشود، Ctrl+Shift+L .


    فرض کنید متدی مانند متد زیر دارید :


    procedure TForm1.Button1Click(Sender: Tobject);
    var
    strTest: string;
    begin
    strTest := 'Hello';
    end;


    کرسر متن را داخل رشته Hello ببرید (لازم نیست که متغیر را انتخاب کنید یا این خط را انتخاب کنید) سپس کلیدهای Ctrl+Shift+L
    را فشار دهید. فرمی نمایش داده میشود که در آن نام پیشنهادی resource string وجود دارد که میتوانید آن را تغییر دهید و تائید کنید،
    تمام مراحلی که در بالا ذکر کردم انجام میشود. (نام resource string برگرفته از رشته مورد نظر به اضافه کلمه Str ست).
    پس Extract Resource String با استفاده از :
    Ctrl+Shift+L
    یا از منوی اصلی گزینه Refactor و بعد هم گزینه Extract Resource String
    یا کلیک راست در Code Editor ، گزینه Refactoring و بعد هم Extract Resource String


    نکته :
    سه نوع Refactoring یی که توضیح دادم Declare Variable) و Declare Field و Extract Resource String) در دلفی وجود دارد
    و جزء لیست رسمی Refactoring نیست ، ولی به هر حال پیاده سازی را ساده تر میکند.



    Rename Refactoring

    یکی از مهمترین انواع Refactoring است که جزء لیست رسمی Refactoring نیز هست. Rename بسیار قدرتمند است و میتواند
    روی خیلی از موارد مانند متغیرها، procedure ها، type ها(شامل کلاسها)، فیلدها، functionها کار کند.

    فعال کردن Rename Factoring :
    ترکیب کلیدهای Ctrl+Shift+E
    یا از منوی اصلی گزینه Refactor و بعد گزینه Rename
    یا کلیک راست در Code Editor و گزینه Refactoring و بعد هم گزینه Rename

    کافی ست کرسر متن را روی چیزی که میخواهید تغییر نام دهید بگذارید(لازم نیست که آن را انتخاب کنید) ، Rename را فعال کنید.
    اطلاعاتی از قبیل نام کلاس یا یونیت و نام فعلی و نام جدید نمایش داده می شود که میتوانید نام جدید را وارد کنید.
    اگر گزینه View reference before refactoring انتخاب شده باشد، قبل از تغییر نام ، لیستی از تغییرات در یک پنجره جدید
    نمایش داده می شود ، پس از مرور میتوانید عملیات را ادامه دهید یا لغو کنید.
    اگر نوعی (منظور فیلد ، شئی، متغیر و ...) را تعریف کرده اید و از آن در چندین یونیت مختلف استفاده کرده اید و حالا
    قصد تغییر نام آن را دارید ، Rename تمام یونیتها را برای این تغییر مرور میکند.

    حقیقتا" زیبایی Rename Refactoring اینست که نه فقط در تعریف و اعلان یک کلاس یا متد موثر هست، بلکه روی همه
    ارجاعات به متد یا کلاس نیز تاثیر گذار هست.

    یکی دیگر از تفاوتهای Search و Replace با Rename refactoring در اینست که اگر در یک کلاس پدر، متد virtual یی
    را تغییر نام دهید ، Rename در کلاسهای فرزند نام متد را تغییر خواهد داد.

    اگر که فرضا" با نام جدید شئی ، شئی دیگری وجود داشته باشد، Rename refactoring با خطا متوقف خواهد شد.

    موردی که بوسیله Rename نمیتوانید تغییر دهید، Property ست، البته نه نام Property، بلکه متدهای setter و getter آن.
    به این صورت که اگر نام یک Property را تغییر دهید، متدهای مربوط به آن که معمولا" ترکیبی ست از نام Property و پیشوندهای get و set،
    تغییر نخواهند کرد. که البته برای این مورد میتوانید به صورت جداگانه از Rename استفاده کنید.



    Extract Method Refactoring

    یکی دیگر از Refactoring های رسمی Extract Method هست. Extract Method یک قطعه کد را تبدیل به یک متد میکند
    که نام متد نشان دهنده هدف متد هست.
    ممکن است همین کار را زمانی انجام دهید که متد برای درک خیلی پیچیده شده یا نیاز شما به چنین کدی که
    در متد دیگری پیاده سازی شده باعث انجام این کار شود. فرض کنید دو متد مجزا دارید که بخشی از کد در هر دو مشترک هست، در چنین مواقعی بهترست که در صورت امکان بخش مشترک تبدیل به یک متد شود تا هر دو متد بتوانند از آن استفاده کنند.



    برای فعال کردن Extract Method Refactoring ابتدا بخشی از کد را که میخواهید تبدیل به یک متد شود انتخاب کنید
    سپس یکی از سه روش زیر را اجرا کنید :

    ترکیب کلیدهای Ctrl+Shift+M
    یا از منوی اصلی گزینه Refactor و بعد هم گزینه Extract Method
    یا کلیک راست روی Code Editor و گزینه Refactoring و بعد گزینه Extract Method

    در ابتدا Extract Method کد مورد نظر شما را تجزیه میکند و اگر قابل تبدیل نباشد به شما هشدار میدهد. اگر کد مورد نظر قابل
    تبدیل باشد آن را تبدیل به یک متد خارج از متد جاری میکند.

    نکته جالبی که در Extract Method وجود دارد اینست که اگر در قطعه کدی که انتخاب شده متغیری وجود داشته باشد ،
    به صورت خودکار آن را به عنوان پارامتر در نظر میگیرد.

    بعد از باز شدن فرم Extract Method ، اطلاعاتی از قبیل نام متد جاری ، نام متد جدید و ساختار کامل متد نمایش داده میشود
    که میتوان نامی را برای متد در نظر گرفت. فراموش نکنید که در بخش new method name فقط نام متد را بنویسید و از قرار دادن
    پرانتز و تعریف پارامتر خودداری کنید.

    نمونه :
    این کد ، کد اصلی ما هست که میخواهیم بخش داخلی حلقه for را تبدیل به یک متد کنیم:

    1)
    procedure TForm1.Button2Click(Sender: TObject);
    var
    i: Integer;
    outstr: string;
    begin
    for I := 1 to 10 do
    begin
    outstr := inttostr(i);
    ListBox1.Items.Add(outstr);
    end;
    end;


    2)
    بخش داخلی حلقه را انتخاب کنید( به غیر از begin و end)، یعنی :

    outstr := inttostr(i);
    ListBox1.Items.Add(outstr);



    3)

    یکی از روشهای فراخوانی Extract Method را انجام دهید، مثلا" Ctrl+Shift+M، بعد از باز شدن فرم، NumberToString را
    در قسمت نام متد تایپ و تائید کنید. میتوانید با مرور سورس نتیجه را ببینید.


    نکته:
    هر کدی را نمیتوان تبدیل به یک متد کرد. کد حتما" باید بدون خطا باشد و شامل with و متدهای محلی/تو در تو
    (متدی که داخل یک متد دیگر ایجاد شده) و دستور inherited نباشد.
    آخرین ویرایش به وسیله m-khorsandi : دوشنبه 08 آبان 1385 در 11:34 صبح

تاپیک های مشابه

  1. Borland Developer Studio 2006 HotFixes 2
    نوشته شده توسط Delphi Skyline در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: یک شنبه 14 خرداد 1385, 18:55 عصر
  2. مروری بر Borland Developer Studio 2006
    نوشته شده توسط Delphi Skyline در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: سه شنبه 19 اردیبهشت 1385, 13:35 عصر
  3. Borland Developer Studio 2006 منتشر شد.
    نوشته شده توسط رضا عربلو در بخش برنامه نویسی در Delphi Prism
    پاسخ: 4
    آخرین پست: یک شنبه 11 دی 1384, 21:32 عصر
  4. Borland Developer Studio 2006: Expandable Evaluation
    نوشته شده توسط vcldeveloper در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: پنج شنبه 26 آبان 1384, 07:47 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •