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

نام تاپیک: مقاله : بررسی متدها، توابع و خصوصیتهای TStrings

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    مقاله : بررسی متدها، توابع و خصوصیتهای TStrings

    به نام خدا ...

    در این مقاله قصد داریم درباره کلاس TStrings بحث کنیم ...

    مواردی که در این مثاله بررسی می شوند عبارتند از متدها و خصوصیات این کلاس ...

    البته به علت زیادی متدها و خصوصیات ، به صورت موردی و کاربردی آنها را بررسی میکنیم ...

    TStrings چیست ؟
    TStrings کلاسی است برای نگهداری مجموعه ای از رشته ها همراه با Index و شماره مخصوص هر رشته که امکان ویرایش و دسترسی آسان آنها را فراهم میکند ،‌ علاوه بر این میتوان در یک TStrings ، یک Object وابسته به یک رشته را نیز ثبت کرد و از آن استفاده نمود ...

    ثبت اطلاعات در یک TStrings :
    برای ثبت اطلاعات در یک کلاس TStrings ابتدا باید آن را Create کرده و سپس از متدهایی مثل Add‌ ، AddObject و ... استفاده نماییم ...

    Create کردن یک TStrings :
    با استفاده از متد Create میتوانیم یک TStrings ایجاد نماییم :
    var
    Strings : TStrings;
    begin
    Strings := TStrings.Create;
    end;


    اگر نیاز داریم که تنها یک رشته را در یک TStrings ثبت نماییم ، میتوانیم از دستور Add استفاده نماییم :
    var
    Strings : TStrings;
    S : String;
    begin
    S := 'String';
    Strings := TStrings.Create;
    Strings.Add(S);
    end;

    دستور Add در کد بالا مقدار متغیر S را در Strings که یک مقدار TStrings است ثبت می نماید ...

    گاهی اوقات نیاز داریم که تعدادی Object ( مثل TabSheet های یک PageControl ) را در یک TStrings ثبت نماییم ، بدین منظور باید از دستور AddObject استفاده نماییم :
    البته توجه کنید که یک متغیر از نوع TStrings نمی تواند یک Object را در خود نگاه دارد ( در زمان اجرا خطای AbStract نمایش داده خواهد شد )
    باید Object در آیتمهای یک شی دیگر که از نوع TStrings است قرار گیرد ، برای مثال می توانید در آیتم های یک ListBox و یا یک ComboBox آبجکت مورد نظر را Add کنید ...
    برای مثال :
    ListBox1.Items.AddObject('MyTabSheet', PageControl1.Pages[0]);

    پس از ثبت این Object میتوانید برای مثال به صورت زیر از آن استفاده نمایید :
    PageControl1.ActivePage := TTabSheet(ListBox1.Items.Objects[1]);

    کد بالا صفحه فعال PageControl را برابر با TabSheet موجود در لیست ( که در کد مشخص شده ) قرار می دهد ...

    دستور دیگری که برای ثبت اطلاعات در TStrings استفاده می شود ، دستور AddStrings است که یک مقدار TStrings را به لیست رشته ها اضافه خواهد کرد ...

    مثال :
    var
    Strings : TStringList;
    S : String;
    begin
    S := 'String';
    Strings := TStringList.Create;
    Strings.Add(S);
    ListBox1.Items.AddStrings(Strings);
    end;


    کد بالا ، رشته های موجود در Strings ( که همان S است ) را در ListBox1 قرار خواهد داد ...

    دستور دیگری که برای اضافه کردن اطلاعات به یک TStrings به کار میرود ، دستور Append است ، این دستور یک مقدار String را به آخر لیست رشته ها در TStrings قرار می دهد ...

    مثال :
    var
    S : TStrings;
    begin
    S := TStrings.Create;
    S.Append('Hello');
    end;


    راه دیگر برای اضافه کردن یک رشته به TStrings استفاده از متد Insert است ...
    این متد 2 پارامتر دارد ، 1. Index که شماره Index رشته ای که اضافه می شود را تعیین میکند و 2. S که مقدار رشته ای که باید اضافه شود را دربر می گیرد ..

    مثال :
    var
    S : TStrings;
    begin
    S := TStrings.Create;
    S.Insert(0, 'Hello');
    end;


    کد بالا رشته Hello را به عنوان اولین مقدار در لیست قرار می دهد ( به عنوان آیتمی که Index صفر دارد )

    کلاس TStrings همچنین توابع دیگری به نام های LoadFromFile و LoadFromStream دارد که امکان وارد کردن رشته ها از یک فایل متنی و از Stream را میدهد ...
    این دستورات یک پارامتر دارند که نام فایل و نام Stream را دربر می گیرد ...

    مثال:

    var
    S : TStrings;
    begin
    S := TStrings.Create;
    S.LoadFromFile(FileName);
    S.LoadFromStream(Stream);
    end;


    حذف اطلاعات :

    برای حذف اطلاعات از یک TStrings چندین راه وجود دارد که بررسی میکنیم

    استفاده از متد Delete :
    این متد یک رشته ( آیتم ) را از لیست حذف می نماید ، این متد یک پامتر دارد که باید Index مربوط به آیتمی که قصد حذف کردن آن را دارید را در آن وارد نمایید :

    var
    S : TStrings;
    begin
    S := TStrings.Create;
    S.Delete(0);
    end;


    استفاده از متد Clear :
    این متد کل رشته ها ( آیتمهای ) موجود در TStrings را حذف خواهد کرد ...

    var
    S : TStrings;
    begin
    S := TStrings.Create;
    S.Clear;
    end;


    -----------------------------------

    سایر متدها و توابع پرکاربرد :

    متد Exchange :
    این متد مقدار ( یا جایگاه ) دو آیتم را با هم عوض میکند ، این متد 2 پارامتر دارد با نامهای Index1 و Index2 ، بعد از اجرای این متد جای Index1 با Index2 عوض خواهد شد ...
    برای مثال فرض کنیم در یک TStrings‌، یک آیتم با Index صفر داریم و یک آیتم دیگر با Index یک که مقدار رشته اولی برای با " Hello " و دومی برابر با " Bye " است ، پس اجرای این متد با Index های صفر و یک ، مقدار Index برای رشته " Hello " برابر با 1 و مقدار Index برای رشته " Bye " صفر خواهد بود :
    S.Exchange(0, 1);


    تابع Equals :
    این تابع مقادیر TStrings فعلی را با مقادیر یک TStrings دیگر که به عنوان پارامتر دریافت می کند مقایسه میکند و در صورت همسان بودن ، مقدار True و در غیر این صورت مقدار False را برمی گرداند :

    S.Equals(Strings : TStrings);


    متد Move :
    این متد یک رشته را از یک Index به یک Index دیگر منتقل میکند ، به عنوان مثال فرض کنیم که یک TStrings با 4 رشته ( آیتم ) داریم ، اگر بخواهیم مثلا آیتم سوم را از جای خود به آیتم اول ببریم باید به صورت زیر از متد Move استفاده نماییم :

    var
    S : TStrings;
    begin
    S := TStrings.Create;
    S.Move(2, 0);
    end;


    توابع IndexOf و IndexOfObject :

    به وسیله این توابع می توانید Index یک رشته و یا یک Object را بدست آورید ،‌ این توابع هر کدام یک پارامتر دارند ، تابع IndexOf پارامتری از نوع String دارد که رشته را گرفته و Index آن را به عنوان خروجی برگشت میدهد و تابع IndexOfObject هم پارامتری از نوع TObject دارد که Object مورد نظر را به عنوان ورودی دریافت کرده و شماره Index آن را به عنوان خروجی برگشت میدهد ...

     S.IndexOf('Hello');
    S.IndexOfObject(PageControl1.Pages[0]);


    خاصیت Strings :
    با استفاده از این خاصیت می توانید یک رشته از TStrings را با دادن Index آن استخراج کنید :
    MyStr := S.Strings[0];


    خاصیت Capacity :
    این خاصیت از نوع Integer بوده و به وسیله آن میتوانید محدودیت تعداد رشته ( آیتم ) هایی که می توان در TStrings مورد نظر ثبت کرد را مشخص نمایید ...
    مثلا اگر این خصوصیت بر روی 6 تنظیم شده باشد ، TStrings مورد نظر تنها 6 آیتم دریافت خواهد کرد ...

    خاصیت Count :
    این خاصیت از نوع Integer بوده و تعداد آیتمهای موجود در TStrings را به ما می دهد ...

    ------------------

    این مقاله هم به پایان رسید ، این نکته رو هم ذکر کنم که این مقاله کامل کامل نبود یعنی در این مقاله کل توابع و متد ها و خصوصیتهای کلاس TStrings بررسی نشد ، کلاس TStrings چندین خاصیت و تابع داره که کاربردهای خاص دارند و به صورت معمول استفاده نمی شن ، از این جمله میشه به خصوصیت CommaText اشاره کرد ، با استفاده از این Property می توان رشته های درون TStrings را به صورت ( SDF ) یا System Data Format داشت

    همچنین در این مقاله از توضیح برخی توابع مانند InsertObject که عملکردی شبیه تابع Insert دارند اجتناب شد ... ( توضیح تمام متدها و توابع و خصوصیتهای کلاس TStrings از حوصله این مقاله و کلا یک مقاله خارج است )

    می توانید برای کسب اطلاعات بیشتر و کامل از Help دلفی کمک بگیرید ...

    امیدوارم مفید بوده باشه ...

    موفق و پیروز باشید ...
    آخرین ویرایش به وسیله Mahmood_M : دوشنبه 17 بهمن 1390 در 14:29 عصر

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

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