» آموزش اولیه برنامه نویسی در دلفی

مهرگان
 
 
 

آموزش اولیه برنامه نویسی در دلفی

3 مرداد 1391

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

وقتی که نرم افزار دلفی را اجرا می کنید، یک محیط جامع توسعه یافته را مشاهده می کنید که به آن IDE می گویند. IDE دلفی، هر گونه ابزار برای طراحی و گسترش و تست و اشکال زدایی برنامه های کاربردی را در اختیار شما قرار می دهد. محیط کار دلفی شامل بخشهایی می شود که در ادامه به تشریح آن می پردازیم.

الف) ابزارها:

نویسندگان زبان دلفی، ابزار کاربردی آن را در چندین نوار ابزار دسته بندی کرده اند که شکل کلی آن در زیر نمایش داده شده است. در ادامه شما را با ابزارهای معروف و پر کاربرد دلفی آشنا خواهیم کرد:

نوار ابزار standard:

main menu :

براي طراحي منوي اصلي پنجره خود از آن استفاده مي كنيم.

popup menu :

اگر بخواهید هنگام کلیک راست کردن بر روی یک شیء در زمان اجرا، منوی مورد نظرتان ظاهر شود، باید از این ابزار استفاده کنید. براي بكار گيري آن ، بايد در پنجره ي object inspector مربوط به شيئ مورد نظرتان، مشخصه ي popup menu (که با رنگ قرمز از سایر مشخصه ها متمایز شده) را به popup menu ای که ساخته اید ربط دهيد تا در برنامه ي اجرايي، با كليك راست بر روي شيء مذكور، منويی که طراحي کرده اید را مشاهده کنید.

Label :

براي برچسب گزاري مورد استفاده قرار مي گيرد.

Edit :

اين زير منو براي گرفتن متني از كاربر( به عنوان كد مشخصه يا رمز عبور يا... ) مورد استفاده قرار ميگيرد.

Memo:

با انتخاب این گزینه وکلیک روی فرم، دلفی صفحه ای برای وارد کردن متن در اختیار شما قرار میدهد. این صفحه همانند نوت پد فقط یک فونت ویک سایز می پذیرد. اگر برنامه نویس نیازمند صفحه ای مانند wordpad باشد، می تواند از Rich Edit استفاده نماید.

Button :

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

Check Box:

احتمالا هنگام نصب ویندوزتان بطور مکرر این زیر منو را ملاقات کرده اید. از این زیر منو معمولا برای نشان دادن روند نصب یک نرم افزار یا پیشرفت یک کار بصورت گزارش کار انجام می شود.

RadioButton:

اين گزينه همانند ساير برنامه هاي ويژوال و همينطور ويندوز، در دلفي نيز براي انتخاب انحصاري استفاده مي شود. يعني اگر سه RadioButton داشته باشيم، فقط مي توانيم يكي از آنها را انتخاب كنيم. و انتخاب هر كدام ، باعث لغو انتخاب سايرين مي شود.

List Box:

با این زیر منو میتوانید لیستی از ایندکس ها را در یک box مشاهده نموده و بااستفاده از خصوصیت selected اعمال خاصی را روی ایندکس انتخابی خود اعمال کنید. به عنوان مثال می توانید لیستی از برنامه های در حال اجرا را در آن مشاهده کنید.

:Combo box

اين يك باكس كركره اي است كه با كليك كردن روي آيكن پايين رونده ي آن، ليستي از عبارات كوتاه در زير آن به نمايش در مي آيد. و انتخاب هر كدام از آنها توسط كاربر، منجل به اجراي زير برنامه اي خاص ميشود. براي استفاده از اين زير منو، آنرا در فرم قرار داده و سپس enter را مي فشاريم تا پنجره ي عمومی object inspector ظاهر شود. آنگاه در اين پنجره گزينه ي items را انتخاب مي كنيم. با باز شدن پنجره ي string list editor عبارات مورد نظر را در line هاي مجزا نوشته و در برنامه نويسي از شماره هر line براي دسترسي به آن خط استفاده مي كنيم.

Radio group و Group box:

برای منظم کردن و دسته بندیButton Radioها و Check Boxها مورد استفاده قرار می گیرند. اگر چه می توانیم بدون استفاده از این دو مولفه نیز Radio Button ها و Check Box ها را به درستی بکار بگیرید، اما استفاده از این زیرمنوها کارها را زیباتر و مرتب تر نشان می دهد.

همچنین در مواقعی که به n انتخاب از mلیست نیاز باشد، استفاده از Radio Group برای دسته بندی Radio Button ها الزامی می شود.

Panel :

براي پخش فيلم در برنامه، مي توانيم از آن استفاده كنيم.

همچنین برای دسته بندی اشیائ ویژوال نیز بکار گرفته می شود.

ActionList:

این ابزار، یک لیست آماده از فرامین متداول برنامه نویسی را بصورت دسته بندی شده در خود جای داده است. تا برنامه نویس در صورت نیاز از آنها استفاده کند. و برای برنامه نویس نیز امکان ایجاد فرامینی که همانند فرامین از پیش تعریف شده عمل کنند را ایجاد کرده است. برای استفاده از این ابزار، پس از قرار دادن آن روی فرم، روی آن دوبار کلیک کنید تا پنجره ای مانند شکل مقابل ظاهر شود. با انتخاب NewAction می توانید یک فرمان جدید ایجاد کنید. یا اینکه از فرامین از پیش تعریف شده ی دلفی استفاده

نمایید که در قسمت New Standard Action… قرار دارند. همانطور که در شکل بالا مشاهده می کنید، فرامین برحسب نوع عملیات دسته بندی شده اند. احتمالا با کاربرد فرامین Edit آشنا هستید. فرامینی که با نام Format دسته بندی شده اند، به ویرایش متن در شیء ویژوالی RichEdit(که در نوار ابزار Win32 قرار دارد) مربوط است. و حاوی رویه های Bold, Italic, Underline, Strikeout,… می باشد. اما شاید پرکاربردترین دسته از فرامین اکشن لیست، DataSet باشد. که برای مدیریت بانک اطلاعاتی مورد استفاده قرار می گیرد. و حاوی دستوراتی برای دسترسی به رکورد قبلی یا بعدی، حذف یا اضافه کردن رکورد، پرش به ابتدا یا انتهای جدول بانک اطلاعاتی، و ویرایش رکورد و مانند آنها می باشد. برای استفاده از هرکدام از این فرامین، پس از انتخاب آنها از قسمت New Standard Action، باید نام آن را به گزینه ی Action از پنجره ی Object Inspectore یک شیء کنترلی ویژوال مانند Button نسبت دهید.



نوار ابزار additional :

Bitbtn:

ويژگي هاي آن همانند Button است با اين تفاوت كه در bitbtn ميتوان عكس قرار داد. براي اين كار بايد در پنجره ي object inspector، در قسمت properties، گزينه ي Glyph را انتخاب كرده و عكس مورد نظر را load كنيم.

SpeedButton :

تقريبا مشابه bitbtn است، با این تفاوت که برخلاف bitbtn، خاصيت flat شدن نيز دارد. یعنی اگر Flat:=true باشد، فقط وقتی SpeedButton قابل مشاهده است که اشاره گر روی آن قرار بگیرد. و علاوه بر آن دارای خاصیت Down است.این خاصیت زمانی بکار می آید که اولا بیشتر از یک SpeedButton روی فرم قرار داشته باشد. و ثانیا حداقل، مقدار GroupIndex دو تا از آنها باهم برابر و بزرگتر از صفر باشد. اشیائی که GroupIndex آنها با هم برابر است، یک گروه را تشکیل می دهند. در واقع، GroupIndex ییانگر شماره ی گروه است. در این صورت، اگر روی یک SpeedButton عضو این گروه کلیک کنید، آن SpeedButton به شکل فرورفته در می آید و به اصطلاح Down می شود و سایر SpeedButton های عضو این گروه، Up می شوند. یعنی انتخاب نشده اند.

MaskEdit :

همانند edit و از ابزار وارد كردن متن است وافزون بر ويژگي هاي Edit ، داراي ويژگي جديد Input Mask Editor نيز ميباشد كه باعث سازگاري بيشتر متن ورودي با نيازهاي ما مي شود. و در واقع همانند يك فيلتر كننده عمل مي كند.

و GridString و DrowGrid :

كاربرد بسياري در استفاده ازdata base ها دارند. و برای نمایش جدولی زير منو هاي پر كاربردي مي باشند.

Image :

براي load كردن و نمایش عكس مورد استفاده قرار ميگيرد. و بجز عکسهای با پسوند Gifوpng، تقریبا همه ی پسوندهای متداول را می پذیرد. البته برای افزایش دامنه ی پوشش image می توانید کامپوننت های مورد نظرتان را دانلود کرده و به دلفی اضافه کنید.(دلفی 2009 فایلهای با این دو پسوند را نیز پشتیبانی می کند.)

Shape :

از ابزار ويژوال در دلفي است و براي ایجاد اشيائي به اشكال مختلف در اختيار برنامه نويس قرار داده شده است.

CheckListBox :

اگر در برنامه اي كه مي نويسيد لازم است كه از تعداد زيادي Check Box استفاده كنيد، در اين صورت استفاده از اين گزينه توصيه مي شود. چرا كه به زيبايي و نظم برنامه ي شما مي افزايد. در اینجا يك chek list box با check box هاي متشكل از اعداد نشان داده شده است؛

LabeledEdit :

همانطور كه مشاهده مي شود، يك label و يك edit به هم چسبيده مي باشد.در مواردي كه استفاده از اين دو در كنار هم الزامي است، ميتوانيم از LabeledEdit استفاده كنيم.

ColorBox :

براي تغيير رنگ (مثلا تغيير رنگ زمينه ي فرم)، در صورت لزوم مي توان از اين زير منو استفاده كرد.



نوار ابزار Win32 :

PageControl :

اين گزينه به شما امكان ايجاد چند صفحه ي مجزا از همديگر را ميدهد. با كليك راست كردن بر روي اين صفحه ، و انتخاب گزينه New Page ، ميتوانيد صفحه ي جديدي ايجاد كرده و اشياء دلخواه خود را در آن دسته بندي و مرتب كنيد.

ImageList:

لیستی از آیکون ها و عکسهای با پسوند BMP را دریافت میکند تا در مواردی که به آنها نیاز شد، مورد استفاده قرار گیرد.(مثلا در treeview یا listview ).

RichEdit :

براي وارد كردن عبارتهاي متني طولاني مورد استفاده قرار مي گيرد. ضمن اينكه شما مي توانيد در richedit با فونتها و سايزهاي مختلف بنويسيد.

TrackBar:

در هر عملیاتی که نیازمند نوعی درجه بندی یا شدت عمل باشد میتوانیم از این ابزار استفاده کنیم. مثلا برای اینکه میزان بزرگنمایی یک عکس را از کاربر دریافت نیم، یا شدت محو شدن دو عکس در یکدیگر.

ProgressBar:

از ابزار کنترل فرآند دلفی است که برای نمایش میزان پیشرفت یک فرآیند مورد استفاده قرار می گیرد.(مانند نصب یک نرم افزار).

UpDown:

یکی دیگر از ابزارهای کنترلی، برای افزایش یا کاهش یک مقذار عددی. البته این ابزار فقط برای انجام این عملیات می باشد و برای نمایش آن باید از یک Button یا Edit استفاده کنید. به این ترتیب که Button یا Edit را به ویژگی Associate این ابزار که به رنگ قرمز مشخص شده ، نسبت دهید. آنگاه با کلیک کردن روی دکمه های Up یا Down کم یا زیاد شدن مقدار آن را روی Button یا Edit به ترتیب به عنوان Caption یا Text مشاهده می کنید.

HotKey:

نوع کلید ترکیبی ورودی را تشخیص می دهد. این ابزار به صورت پیش فرض کلیدهای ترکیبی Alt، Ctrl،CapsLock را می شناد. برای افزودن سایر کلیدهای ترکیبی می توانید از ویژگی Modifiers در پنجره ی عمومی Object Inspector مربوط به این ابزار استفاده کنید.

Animate:

این ابزار در پنجره ی Object Inspector مربوطه اش دارای خصوصیتی به نام CommonAvi است، که مقدار پیشفرض آن aviNone می باشد. و برای نمایش عملیات روی فایلها مورد استفاده قرار می گیرد(مانند کپی، حذف، خالی کردن سطل آشغال و...). برای این کار، باید خصوصیت مربوط به عملیات مورد نظر را به ویژگی CommonAvi نسبت دهید و سپس ویژگی Active و Timers مربوط به آن را به مقدار True تغییر دهید. و یا کد زیر را در یک تابع قرار داده و در زمان اجرا آن را فراخوانی کنید:

Animate1.Active:=true;

Animate1.Timers:=true;

و MonthCalender و DateTimePicker:

دو شیء کنترلی ویژوال هستند که برای نمایش تقویم سال و ساعت کامپیوتر مورد استفاده قرار می گیرند. شیء کنترلی DateTimePicker قادر به نمایش جدولی تقویم سال و نمایش ساعت می باشد. و MonthCalendar قابلیت نمایش تقویمی با نوشته های فارسی را دارا است. ضمن اینکه روز آغازین هفته را نیز می توانید خودتان انتخاب کنید.



و TreeView و ListView:

TreeViewبرای نمایش درختی یک لیست مرتب مورد استفاده قرار می گیرد. برای آشنایی بیشتر، بهتر است بدانید که خروجی این شیء کنترلی مشابه رجیستری ویندوز است. و خروجی ListView نیز همان طور که ازنامش مشخص است، یک لیست مرتب می باشد. که می تواند آیکون یا عکس بپذیرد. و برای انجام عملیاتی روی آنها، کاربر می تواند انتخاب یگانه یا چند گانه داشته باشد.

XPManifest :

با قرار دادن این ابزار در فرم خود، بعضی از اشیای ویژوال روی فرم، متناسب با سیستم عامل ویندوز XP بازنمایی می شوند. البته می توانید بجای این کار، عبارت XPman را در قسمت Uses تایپ کنید. و برای برگشت به حالت عادی، کافی است که این عبارت را از قسمت Uses پاک نمایید.



نوار ابزار System:



Timer:

این ابزار یکی از اشیاع غیر ویژوال دلفی و در واقع یکی از پر کاربرد ترین آنها است. تایمر، با توجه به نامش، می تواند برای دریافت ساعت مورد استفاده قرار بگیرد. ولی کاربرد اصلی آن برای اجرای دستوراتی است که باید در زمانی خاص و یا بصورت متوالی و پس از یک بازه ی زمانی مشخص اجرا شود(مثلا هر ماه و در ساعت 12:00 و یا هر ثانیه یک بار).



PaintBox:

اگر بخواهیم فقط قسمتی از فرم را مورد طراحی قرار دهیم، از PaintBox استفاده می کنیم. برای طراحی در سطح PaintBox می توانیم از دستور Canvas استفاده کنیم. نحوه ی بکارگیری آن در پروسیجر زیر نشان داده شده است:



procedure drow_ellipse(x1,x2,y1,y2: integer);

const

colors: array[1..7] of integer

= (clblue, clred, clblack, clmaroon, clgreen, clyellow, clwhite);

var

; i,j: integer

begin

; Randomize

;(form1.PaintBox1.Canvas.Brush.Color:=RandomFrom(colors

;(form1.PaintBox1.Canvas.Ellipse(x1,x2,y1,y2

End ;





MediaPlayer:

کار این ابزار بسیار روشن است. پخش صدا و در صورت امکان، همراه با تصویر. در فصل های آتی به شما نشان می دهیم که چگونه با استفاده از این ابزار، یک مدیا پلیر نسبتا کامل بسازید.



نوار ابزار Dialog:



و OpenDialog و SaveDialog:

ابزار OpenDialog برای دیالوگ کردن یک فایل و ابزار SaveDialog نیز برای ذخیره آن مورد استفاده قرار میگیرد. برای فراخوانی این ابزار باید از رویداد Execute استفاده کنید. خاصیت فیلتر این ابزارها به شما این اجازه را می دهد که باز کردن و ذخیره کردن فایلها را به فایل با پسوندهای دلخواه خود محدود کنید.



و OpenPictureDialog و SavePictureDialog:

این دو ابزار در واقع حالت فیلتر شده ی دو ابزار قبلی هستند که سازندگان دلفی به دلیل کاربرد فراوان این دو ابزار برای باز کردن و ذخیره کردن عکس ها، آن دو را بعنوان ابزاری جدید به این قسمت اضافه کرده اند.



و ColorDialog و FontDialog:

با فراخوانی دیالوگ رنگ، پنجره ای با 48 جعبه رنگ ظاهر می شود که می توانید یکی از آنها را انتخاب کنید و یا با انتخاب دکمه ی Define Costum Color رنگ مورد نظر را تعریف نمایید. شئ ویژوال ColorDialog مشخصه ای به نام Costum color دارد که شانزده عبارت رشته ای در شانزده خط بعنوان رنگهای درخواستی برنامه ساز دریافت می کند.

ColorA=7EF775

ColorB=7EF775

ColorC=7EF775

…و… و

ColorO=7EF775

ColorP=7EF775



همانطور که قبلا هم گفته شد، برای فراخوانی دیالوگها از فرمان Execute استفاده می شود. شئ ویژوال FontDialog دارای خصوصیاتی از قبیل color,font style,underline,font size,… می باشد که با فراخوانی این ابزار می توانید آنها را مشاهده کنید.

gauge: برای نمایش میزان پیشرفت یک فرآیند بصورت تصویری ، همراه با نمایش درصد انجام فرآیند.

ColorGrid:

SpinButton:

SpinEdit:



ب) پنجره های محیط کار:



گزينه هاي عمومي در پنجره ي object inspector :



Align: اين گزينه در label ، مكان آن را در form مشخص و ثابت مي كند.

Alignment :

· taCenter : نوشته داخل label را در مركز آن قرار مي دهد.

· taLeftJustify : نوشته را از سمت چپ تنظيم مي كند.

· taRightJustify : نوشته را از سمت راست تنظيم مي كند.

Autosize : اگر true باشد، برنامه بطور خودكار با توجه به اندازه ي نوشته، طول label را مشخص مي كند.

Caption : برنامه نويس مي تواند متن دلخواه خود را در اين قسمت بنويسد. البته اين متن ربطي به نام label ندارد.نام label در قسمت name نوشته مي شود.

Color: همانطور كه مشخص است،در اين گزينه مي توان رنگ دلخواه خود را به برچسب اختصاص داد. البته براي تغيير رنگ نوشته بايد گزينه ي color در Font را تغيير داده و به رنگ دلخواه خود در آوريم.

مثلا گزينه ي clBtnFace، label را همرنگ formدر مي آورد(البته اگر form ما، رنگ پيشفرض خود را خفظ كرده باشد).

Cursor : شكل اشاره گر mouse را تغيير مي دهد. مثلا اگر بخواهيم وقتي كه اشاره گر روي يك label قرار مي گيرد رنگ آن تغيير كرده و شكل آن بصورت دست درآيد، در قسمت event از پنجره ي object inspector، در رویداد OnMouseEnter دستورات زير را مي نويسيم؛

Label1.font.color:=clblue;

Label1.cursor:= crHandPoint;

ودر رویدادOnMouseLeave نیز دستورات زير را وارد می کنیم تا پس از بیرون رفتن ماوس از روی شئ، رنگ و اشاره گر به حالت اولیه برگردد.

Label1.font.color:=clblack;

Label1.cursor:= crDefault;



Height و Width : طول وعرض label را مشخص مي كند.

Top و Left : فاصله ي شيئ را به ترتيب از بالا و سمت چپ فرم مشخص مي كند.

به کمک دستور setbounds(x,y,w,h); می توانید این چهار مولفه را یکجا تغییر دهید.

Tag : به معناي كليد است و به منظور انجام كارهايي خاص، از آن استفاده مي شود.

Visible : مشخص كننده ي امكان يا عدم امكان مشاهده ي شیئ مي باشد. این خصوصیت مربوط به اشیائ ویژوال است.



پنجره ي عمومي Object treeview :



این پنجره بصورت درختی موجودیت های پروژه و برخی از صفات خاصه ی آنها را نمایش می دهد. با استفده از این پنجره می توانید ارتباط بین مولفه های مختلف را مشاهده کنید یا آنهارا تغییر دهید.



ج) ویرایش گر کد(code editor):

IDE در پنجره ی ویرایشگر کد، محیطی متنی را برای نوشتن کد برنامه در اختیار برنامه نویس قرار می دهد. برای راحتی کاربر در ایجاد و ویرایش کد برنامه، ویرایشگر کد امکاناتی را فراهم می آورد که در ادامه به بیان بعضی از آنها می پردازیم.

1- جستجوی مستقیم در متن: برای این کار، کلیدهای Ctrl+Eرا بفشارید و کلمه یا عبارت مورد نظرتان را تایپ کنید تا نتیجه ی جستجو را مشاهده کنید. برای رفتن به کلمهی بعدی یافت شده کلید F3 را فشار دهید.

2- مشاهده بخش تعریف یک شیئ یا تابع: برای آگاهی از مکان و نحوه ی تعریف یک شیئ یا تابع میتوانید کلید Ctrl را نگهداشته و روی دکمه ی مورد نظر کلیک کنید. به عنوان مثال، دلفی تابع strtoint() را برای تبدیل عبارت رشته ای به عدد در اختیار کاربر قرار داده است. نام تابع را در قسمت کد برنامه تایپ کنید و با نگهداشتن کلید Ctrl روی آن کلیک کنید تا نحوهی تعریف این تابع را مشاهده نمایید.

3- ایجاد جلورفتگی در کد: برای افزایش خوانایی کد برنامه، معمولا برنامه نویسان هر خط از یک بلوک کد را بسمت راست شیفت می دهند. این مطلب را در قطعه کد زیر مشاهده می کنید. برای اینکار می تونید از کلید Ctrl +Shift+I برای جلو بردن و Ctrl+Shift+U برای عقب برگرداندن متن انتخاب شده استفاده کنید.

Begin

; Randomize

;( Form1.PaintBox1.Canvas.Brush.Color:=RandomFrom(colors

;( Form1.PaintBox1.Canvas.Ellipse(x1,x2,y1,y2

End ;

4- تغییر حالت کاراکترها: با زدن کلیدهای Ctrl+O+U پس از انتخاب قسمتی از متن کد، تمام حروف کوچک آن قسمت از متن به حروف بزرگ تبدیل می شود و تمام حروف بزرگ آن نیز به حروف کوچک تبدیل می شود. از کلیدهای Ctrl+K+F وCtrl+K+E نیز می توانید به ترتیب برای کوچک کردن و بزرگ کردن حروف متن انتخاب شده استفاده کنید.پ

5- انتخاب متن بصورت مربعی: برای انتخاب مربعی بخشی از متن، کافی است کلید Alt را گرفته و با نگه داشتن کلیک چپ، متن مورد نظر را انتخاب کنید. در مورد کاربرد این ویژگی، بهتر است بدانید که طراحان دلفی سعی کرده اند با قرار دادن ابزارهای متنوع در محیط کار دلفی کار را برای کاربران تا حد امکان ساده تر کنند.

6- نشانه گذاری: به کمک نشانه گذاری می توانید بین خطوط مختلف محیط کد نویسی پرش کنید. برای نشانه گذاری باید کلیدهای Ctrl+Shift را نگهداشته و یکی از کلیدهای 0 تا 9 را فشار دهید. و برای پرش به نشانه ها (مثلا برچسب 0) باید کلید Ctrl و عدد مربوط به برچسب را فشار دهید.

7- رفتن از قسمت تعریف توابع و روالها به قسمت کد آنها: برای پرش از قسمت تعریف توابع و روالها به بخش کد آنها و برعکس، می توانید از کلیدهای Ctrl+Shift+Up/Down استفاده کنید. این کار در طول کد نویسی بارها مورد استفاده قرار می گیرد.

8- ظاهر کردن پنجره های Code insightو Code Parameter: گاهی اوقات نوشتن مکرر نام توابع و رویه ها و یا مشخصه ها برنامه نویس را خسته می کند. مخصوصا اگر نام آن نیز طولانی باشد. پنجره ی Code insight با فشاردادن کلید های Ctrl+spacebar ظاهر می شود و لیست تمام توابع، مشخصه ها و رویه هایی که با حروف تایپ شده شروع می شوند را نمایش می دهد. پنجره Code Parameter نیز که توضیحات مربوط به ورودی رویه ها و توابع را نشان می دهد، با فشار دادن کلید های Ctrl+shift+spacebar در داخل پرانتز جلوی تابع یا رویه به نمایش در می آید. برای درک بهتر، اگر عبارت strtoint() را در محیط متنی نوشته و در داخل پرانتز آن کلیک کنید، در پنجره توضیحات ظاهر شده، عبارت const s: string ظاهر می شود که مشخص می کند ورودی این تابع باید از نوع رشته ای باشد.

در پایین پنجره ی محیط متنی(code editor window)، کادری برای نمایش خطاها قرار گرفته است که در تصحیح خطا و اشکال زدایی برنامه مورد استفاده قرار می گیرد.

یکی دیگر از امکانات مفید و موثری که IDE در اختیار کاربران دلفی قرار می دهد، امکان ذخیره ی چیدمان میز کار است. برنامه نویسان دلفی می توانند محیط کار خود را بصورت دلخواه و متناسب با نيازهاي شخصي خود تغییر داده سپس آن را با نامی مناسب به عنوان میز کار(desktop) ذخیره کنند. ممكن است به هنگام كار با فرم‌ها، به نوعي آرايش و چيدمان و به هنگام نوشتن اجزاي ساخت يا برنامه‌هاي سطح پايين، با استفاده از ويراستار، به نوعي كاملا متفاوت نياز داشته باشيد. آرايش مجدد محیط کار براي هريك از اين نيازها عمل خسته‌كننده‌اي است. به همين دليل دلفي به شما امكان مي‌دهد تا آرايش و چيدمان معيني از پنجره‌هاي مختلف IDE را با نام خاصي ذخيره كنيد تا در زمان مورد نياز بتوانيد بسرعت به آن چيدمان دست يابيد. همچنين مي‌توانيد يكي از اين گروه‌بندي‌ها را به عنوان تنظيمات پيش‌فرض اشكال‌زدايي تعيين كنيد تا در آغاز كار با ابزار اشكال‌زدايي، از آن استفاده شوند.

آشنایی با نوع داده های زبان دلفی:

زبانهای برنامه سازی مختلف برای پردازش داده های کاربران و کار با فایلها، انواع داده خاصی تعریف می کنند. این داده ها دارای مشخصه هایی از قبیل محدوده قابل قبول، طول برحسب بایت، نوع و بالاخره یک نام برای شناسایی هستند.در ادامه انواع مختلف داده ها را تعریف می کنیم:



1- نوع صحیح: نوع صحیح معادل همان بازه اعداد صحیح در ریاضیات است. با این تفاوت که بازه اعداد صحیح در ریاضیات نامحدود است ولی نوع صحیح محدوده ای مشخص دارد. در جدول زیر، هر یک از انواع صحیح با محدوده اش نمایش داده شده است.

البته مشخصات کامل انواع داده ها را می توانید با نوشتن نام نوع داده(مثلا Real types) در Help دلفی و در قسمت index ، براحتی مشاهده نمایید. بنابراین در ادامه، ما نوع داده ها را فقط نام می بریم و توصیف کامل مشخصات آنها را به Help دلفی واگذار می کنیم.



2- نوع حقیقی: شامل گستره وسیعی از اعداد اعشاری می شود و به انواع real, comp, double, extended, single تقسیم بندی می شود. در بین این نوع داده ها، نوع real که پرکاربردترین آنها نیز می باشد و بازه ی تعریف آن بین 39- ^10*2.9 تا 38 ^10*1.7 است و قسمت اعشاری آن تا شش رقم دقت دارد، در حالت طبیعی برای کامپایلر شناخته شده است. اما در صورتی که بخواهید از سایر نوع داده های Real types استفاده کنید، باید قبل از بکارگیری آنها، راهنمای کامپایلر {$N+} را در ابتدای برنامه قرار دهید تا کامپایلر بتواند این نوع داده ها را شناسایی کند.



3- نوع بولی: انواع داده بولی به چهار نوع از پیش تعریف شده ی Boolean, ByteBool, WordBool, LongBool تقسیم می شود. که رایج ترین آنها نوع Boolean است. بقیه برای افزایش سازگاری با سایر زبانهای برنامه سازی و سیستم های عامل می باشد.

با توجه به جدول زیر(جدول رابطه ها ی مربوط به Boolean types)، برای نوع Boolean، مقدار true معادل عدد 1و مقدار false معادل عدد 0 می باشد. بنابراین 1- (true) معادل false است. و1+ (false) نیز معادل true می باشد.

برای سایر انواع بولی، مقدار false معادل عدد 0 است و هر عدد غیر صفر نیز بیانگر مقدار true می باشد. و در نتیجه اگر یک واحد به false اضافه و یا از آن کم شود، مقدار آن true می گردد.



4- نوع کاراکتری: انواع اساسی داده های کاراکتری Ansichar و Widechar می باشند. البته دلفی نوع char را به آنها اضافه کرده که Ansichar مشابه آن است. نوع Ansichar یک بایتی است. در نوع Widechar برای نمایش هر کاراکتر، از دو یا چند بایت استفاده می شود. در پیاده سازی های رایج، این نوع 16 بیتی است(WordSize) که با استاندارد ANSI برای کاراکتر های یک بایتی مطابقت دارد. در واقع استاندارد 16 بیتی که Widechar دلفی از آن پشتیبانی می کند، زیر مجموعه ای از استاندارد 32 بیتی UCS لینوکس می باشد.

سیستم عامل های ویندوز و لینوکس، هر دو نوع کاراکتری را تحت عنوان Unicode پشتیبانی می کنند. مجموعه های کاراکتری چند بایتی و مخصوصا مجموعه های کاراکتری دو بایتی (Double- Byte Character Set یا DBCS)، معمولا برای زبانهای آسیایی مورد استفاده قرار می گیرند.



5- نوع رشته ای: رشته ها دنباله ای از کاراکترها هستند که برای ذخیره سازی نام، آدرس، متن و مانند اینها بکار می روند. انواع داده های رشته ای عبارتند از: ShortString(255 کاراکتر)، AnsiString و WideString(4 بایت تا 2 گیگا بایت).

نوع رشته ای AnsiString که گاهی اوقات LongString نیز نامیده می شود، نوعی رایج برای اغلب اهداف در دلفی است. نحوه تعریف متغییر از نوع رشته ای به صورت زیر است:

Var s1 : string;

اگر در ابتدای برنامه از راهنمای کامپایلر {$H+} استفاده کنیم، کامپایلر String را به عنوان AnsiString فرض می کند. و اگر از {$H-} استفاده کنیم، String از دید کامپایلر به عنوان ShortString محسوب می شود. نوع WideString که درواقع دنباله ای از کاراکترهای widechar می باشد، معمولا در برنامه های چند زبانه یا در سرور های چند کاربره مورد استفاده قرار قرار می گیرند. اگر از راهنمای کامپایلر استفاده نکنید، پیشفرض دلفی هفت {$H+} است.

در توضیح بیشتر در مورد رشته ها، این را هم اضافه می کنیم که رشته ها در واقع آرایه ای از کازاکترها هستند و می توان از آنها بصورت زیر استفاده نمود:

Var ch:char;

… …

Ch:= s1[3];

دستور بالا سومین کاراکتر از رشته ی S را در ch قرار می دهد.



6- آرایه ها: آرایه ها به دو صورت قابل تعریف اند: اول اینکه تعداد عناصر ارایه ثابت و غیر قابل تغییر باشد.(تعریف استاتیک). و حالت دوم اینکه بتوانیم در طول برنامه، اندازه ی آرایه رابرابر با نیازمان تغییر دهیم. در این صورت از تعریف پویا(دینامیک) استفاده می کنیم.

الف) تعریف آرایه بصورت استاتیک: تعریف آرایه های با اندازه ثابت به سبک زیر است:

Array[indextype1..indextypeN] of base type

به عنوان مثال:

Var A1: Array[1..100] of char;

در خط بالا، آرایه ای به نام A1 به طول 100 از نوع کاراکتر تعریف شده که اندیس آن از 1 شروع شده و به 100 خاتمه می یابد.

آرایه های استاتیک چند بعدی را می توان بصورت آرایه ای از آرایه ها تعریف کرد.به عنوان مثال، آرایه دو بعدی بصورت زیر تعریف می شود:

A1: Array[1..10] of Array[1..20]of real;

که معادل تعریف زیر است:

A1: Array[1..10,1..20] of real;

و بیانگر یک ارایه دو بعدی 10در20 از اعداد حقیقی می باشد. هر یک از عناصر این آرایه را می توان بصورت زیر مورد استفاده قرار داد:

i:= A1[2,8]; یا i:= A1[2][8];



ب) تعریف آرایه بصورت پویا(دینامیک): آرایه های پویا هنگام تعریف، اندازه یا طول ثابتی ندارند و اندازه آنها در طول برنامه و بوسیله ی پروسیجر SetLength بصورت زیر مشخص می شود:

Var dArray : array of char;

… …

SetLength(dArray,20);

این دستور، اندازه ی 20 را به آرایه ی پویای dArray نسبت می دهد. در این حالت، اندیس آرایه از 0 شروع می شود و به 19 خاتمه می یابد.

برای تعریف آرایه های پویای چند بعدی، به صورت زیر عمل می کنیم:

Var dArray : array of array of char;

Setlength(dArray, 4,10);

لازم به ذکر است که وقتی که آرایه ها را بصورت پویا تعریف می کنید، دستیابی حد بالا و پایین آرایه بسیار پر کاربرد می شود. برای این منظور می توانید از توابع High(Arrayname) و Low(Arrayname)استفاده کنید. همچنین برای آزاد کردن حافظه ی تحت اختیار آرایه های پویا بصورتزیر عمل می کنیم:

Arrayname:nil;

برای تعیین حد بالا و پایین و همچنین تغییر اندازه آرایه پویا به ترتیب از توابع زیر استفاده می شود: VarArrayHighBoundو VarArrayLowBoundو VarArrayRedim



7- نوع Variant: این نوع ویژگی جالبی است که در دلفی وجود دارد و میتواند یک عدد صحیح و یا عبارت رشته ای و یا مقدار عددی ممیز شناور را ذخیره کند. نوع variant یک داده 16 بیتی است که علاوه بر مقدار، نوع اطلاعات را نیزنگهداری می کند. قطعه کد زیر نحوه ی بکارگیری نوع Variant را نشان می دهد.

Var v1,v2,v3,v4,v5: variant;

Begin

V1:= '12';

V2:= '100';

V3:= 10000;

V4:= v2+v1;

V5:=v4 - v3;

End;

در توضیح قطعه کد بالا باید گفت: خود دلفی، چگونگی انجام عمل بر روی عملوندهای variant را مشخص می کند. مثلا برای محاسبه ی v4، رشته های v1,v2 را به هم الحاق می کند. بنابراین v4 برابر است با '10012'. و چون محتوای v3 یک مقدار صحیح است، بنابراین برای محاسبه ی v4 - v3، v4 را نیز عدد صحیح در نظر می گیرد. در نتیجه v5=12 می شود.

آرایه ها را نیز می توان بصورت variant تعریف نمود:

Var v: variant;

Begin

تعریف آرایه یک بعدی از اعداد صحیح// V:= varArrayCreate([1,4],varinteger);

تعریف آرایه دو بعدی// V:= varArrayCreate([1,4 , 2,3],varinteger);

v[1]:='666';

v[2]:=2;

v[3]:=27;

End;

در قطعه کد بالا دستور v[1]:='666'; رشته ی '666' را به عدد صحیح 666 تبدیل کرده و به خانه ی اول آرایه v اختصاص می دهد.

علاوه بر موارد بالا، همچنین می توان آرایه ای از کاراکترها، رشته ها، و... را نیز به Variant نسبت داد. برای درک بهتر این مطلب، عبارت varType را در قسمت index از help دلفی جستجو کنید.



8- نوع Currency: برای نمایش مقادیر ارزی مانند موجودی حساب یا قیمت کالاو ... مناسب است. این نوع داده بصورت ممیز شناور با دقت 4 رقم اعشار و در 64 بیت از حافظه ذخیره می شود. بنابراین با انواع داده هایی که در بانکهای اطلاعاتی(مثلا SQL Server) برای ذخیره ی داده های ارزی بکارمی روند، کاملا سازگاری دارد. و همچنین برای ذخیره ی اعداد بسیار بزرگ نیز مناسب است.



9- مجموعه ها: نوع مجموعه در دلفی (set) مشابه تعریف ریاضی مجموعه ها می باشد که دامنه ی تعریف آن می تواند هر یک از نوع داده های ذکر شده باشد. هر مجموعه می تواند از صفر عضو(تهی) تا 256 عضو داشته باشد.

مجموعه ها بصورت زیر تعریف می شوند:

Type

Myset1= (a1, a2, x2, n8, lf, n12, n);

Myset2= set of Byte ;

Myset3= set of Char ;

Myset4= (red, green, mycolor);

Myset5 =set of 16..270;

... ... ...

Var

k, i : integer;

s1: myset1; s2: myset2;

s3: myset3; s4: myset4;

s5: myset5;

... ... ...

s1:= [a1,a2];

s2:=[1, 3, 5, 7, 9];

s3:=['A'..'Z', 'a'..'z', chr(i+65)];

s4:=[];

s5:=[1..(k mode 23)+1];

توجه داشته باشید که تعریف یک مجموعه بصورت Myset= set of integer اشتباه است. زیرا مجموعه ها حداکثر می توانند 256 عضو داشته باشند. در حالی که بازه ی تعریف اعداد صحیح بسیار بزرگتر از این تعداد است. البته این حداکثر تعداد، با نوع داده های Byte و Char کاملا مطابق است.

در جدول زیر عملگرهایی که روی مجموعه ها تعریف شده اند و توضیح عملکرد آن ها نشان داده شده است:

نوع داده های ترتیبی: نوع داده ترتیبی معین کننده مجموعه ی مرتبی از مقادیری است که در واقع هر مقدار(بجز عنصر ابتدا و انتهای بازه) دارای یک عنصر منحصر به فرد ماقبل و یک عنصر منحصر به فرد ما بعد است. انواع داده های ترتیبی عبارتند از: داده های نوع صحیح، کاراکتری، بولین، و زیربازه ها و مجموعه ها.

داده های نوع ترتیبی همانطور که از نام آن مشخص است، مجموعه های منظمی هستند. و می توان nامین عضو از مجموعه را مشخص کرد. مثلا در مجموعه زیر سومین عضو مجموعه، n8 می باشد. و عنصر ماقبل آن x2 و عنصر بعد آن lf است.

Type

Myset = (a1, a2, x2, n8, lf, n12, n);

دلفی توابع زیر را برای کار با داده های نوع ترتیبی فراهم کرده است.

موفق باشید

---

<
20 شهریور 1391 21:28

سپیده دم 2000

  • گروه کاربری: میهمان
  • تاریخ عوضیت: --
  • وضعيت:
 
گذاشتن کاما بین اعداد در دستورات دلفی

<
13 مهر 1392 10:11

mina

  • گروه کاربری: میهمان
  • تاریخ عوضیت: --
  • وضعيت:
 
سلام من منو های دلفی رو طراحی کردم به زبان فارسی اما submenuآن راست چین نمیشه به صورت انگیلسی لطفا راهنماییم کنید با تشکر

 
برای مشاهده بهتر سایت از مرورگر فایرفاکس ، اُپرا و یا گوگل کروم استفاده نمایید