قسمت سیزدهم

عنصر ‏TGroupBox :
هرگاه بخواهیم مجموعه ای از کامپوننت های مربوط به هم را با عنوانی خاص در کنار هم داشته باشیم از این عنصر استفاده می کنیم .
در استفاده از این عنصر باید به این نکته توجه داشت که شیء TGroupBox‌ برای عناصری که بر روی آن قرار می گیرند به عنوان Parent عمل میکند به عبارت دیگر اشیاء قرارگرفته شده خواصی همچون رنگ ، فونت و ... را از این شیء به ارث می برند .

عنصر TRadioGroup :
از این در مواقعی که بخواهیم چند عنصر TRadioButton مربوط به یک موضوع را در کنار هم داشته باشیم استفاده می شود .
خواص ==>
Caption : این خاصیت متن عنوان بالای این عنصر را مشخص می کند .
Columns : این خاصیت مشخص می کند که عناصر TRadioButton در چند ستون نمایش داده شوند .
Items : با این خاصیت عناصر TRadioButton را بر روی عنصر ایجاد می کنیم . در موقع اجرای برنامه می توان از متد Add‌ از این خاصیت نیز استفاده نمود .
============================
حال به چندی از عناصر و کامپوننت های موجود در صفحه Additional می پردازیم :

عنصر TBitBtn :
این عنصر همانند عنصر TButton می باشد با این تفاوت که می توان در کنار کپشن دکمه یک عکس با فرمت Bitmap قرار داد .
خواص ==>
Glyph : این خاصیت عکس درون دکمه را مشخص می کند .
Kind : این خاصیت حاوی چندی استاندارد در این عنصر می باشد ، مانند حالت های Yes ، No و ... .
Layout : از این خاصیت برای تنظیم مکان نمایش عکس درون دکمه استفاده می شود .
Spacing : با استفاده از این خاصیت فاصله بین متن و عکس درون دکمه مشخص می شود .

عنصر TStringGrid‌ :
از این عنصر برای نمایش اطلاعات به صورت جدول (سطر و ستونی) استفاده می شود .
خواص ==>
ColCount : این خاصیت تعداد ستون های عنصر را مشخص می کند .
DefaultColWidth : با این خاصیت می توان مقدار پهنای ستون ها را تنظیم کرد .
DefaultRowHeigth : این خاصیت مقدار ارتفاع سطرها را مشخص می کند .
FixedCols‌ ، FixedRows ، FixedColor : این خواص به ترتیب تعداد ستون و سطر ثابت و رنگ نمایشی آنها را تنظیم می کنند .
GridLineWidth‌ : از این خاصیت برای تنظیم عرض خطوط بین سطرها و ستون ها استفاده می شود .
Options : از زیرخواص های موجود در این خاصیت برای کنترل بر روی عنصر TStringGrid استفاده می شود .
RowCount : این خاصیت نیز تعداد سطرهای عنصر را مشخص می کند .
ScrollBars : از این خاصیت برای نمایش و یا عدم نمایش نوارهای پیمایش درون این عنصر استفاده می شود .

خاصیتی که در کد برنامه می توان از آنها استفاده کرد :
Cells : این خاصیت مقدار متن موجود در سطر و ستون مورد نظر را برمی گرداند و یا متن سطر و یا ستون مورد را نظر را تنظیم کند و کاربرد آن به صورت زیر است :

متغیر رشته ای := TStringGrid نام عنصر.Cells[شماره ستون , شماره سطر] ;

TStringGrid نام عنصر.Cells[رشته مورد نظر =: [شماره ستون , شماره سطر ;

عنصر TImage :
از این عنصر برای نمایش عکس بر روی فرم برنامه می توان استفاده کرد .
خواص ==>
AutoSize :هرگاه مقدار این خاصیت برابر True باشد ، وقتی اندازه عنصر از عکس موجود در آن کوچکتر باشد به صورت خودکار تغییر اندازه می دهد .
Center‌ : این خاصیت مشخص می کند که عکس درست در وسط عنصر نمایش داده شود .
Picture‌ : از این خاصیت برای انتخاب عکس درون این عنصر استفاده می شود .
Stretch : با تنظیم مقدار این خاصیت برابر True هرگاه اندازه عکس بزرگتر و یا کوچکتر از اندازه عنصر باشد اندازه تصویر برابر اندازه عنصر تنظیم می شود و تمام تصویر نمایش داده می شود .
TransParnet : با استفاده از این خاصیت می توان رنگ سفید اطراف تصویر را از بین برد .

برای قرار دادن عکس در کد برنامه می توان به روش زیر عمل نمود :

TImage.Picture.LoadFromFile('مسیر و نام فایل تصویر') ;

برای ذخیره کردن تصویر درون این عنصر بر روی دیسک از روش زیر استفاده کرد :

Image1.Picture.SaveToFile('مسیر و نام فایل');

عنصر TShape :
با استفاده از این عنصر می توان اشکال هندسی را بر روی فرم قرار داد .
خواص ==>
Brush : با استفاده از زیرخواص های موجود در این خاصیت می توان رنگ و نحوه نمایش درون اشکال را مشخص کرد .
Pen : برای تنظیمات مربوط به خطوط و حاشیه اطراف اشکال به کار می رود .
Shape : برای انتخاب نوع شکل هندسی به کار می رود. (stRectangle چهارگوش - stCircle برای دایره - stEllipse بیضی - stRoundRect چهارگوش با گوشه های خمیده - stRoundSquare مربع با گوشه های خمیده - stSquare مربع)

قسمت دوازدهم

عنصر TComboBox :
این عنصر همانند عنصر ListBox‌ لیستی از عناصر را در اختیار ما می گذارد با این تفاوت که در این عنصر تنها می توان یک گزینه را انتخاب نموده و با توجه به آن گزینه عمل خاصی انجام شو د.
خواص ==>
Items : با نتخاب این خاصیت می توان متن گزینه ها را وارد نمود . البته در حین اجرای برنامه نیز می توان از متد Add این خاصیت نیز استفاده نمود .
Text‌ : این خاصیت متن انتخابی و نمایش داده شده در عنصر را تنظیم می کند .

رویداد ==>
OnChange : این رویداد در موقعی که کاربر یک متن موجود در قسمت متنی عنصر تغییر کند فراخوانی می شود .
OnCloseUp : در موقعی که لیست نمایش داده شده این عنصر پنهان می شود این رویداد عمل می کند .
OnSelect : این رویداد در موقع انتخاب گزینه از لیست فراخوانی میشود .

عنصر TScrollBar :
از این عنصر برای پیمایش استفاده می شود .
خواص ==>
Kind : این خاصیت نوع نمایش نوار پیمایش را مشخص می کند که به صورت افقی (sbHorizontal) و یا به صورت عمودی (sbVertical) باشد .
LargeChange : با مقداردهی به این خاصیت که در بازه 1 تا 32767 می باشد مشخص می شود در موقعی که کاربر بر روی نوار پیمایش کلیک می کند مقدار نوار پیمایش به چه مقدار افزایش یابد .
Max و Min : مقدار نهایی و اولیه را مشخص می کنند .
PageSize‌ : این خاصیت اندازه دکمه تغییر موقعیت نوار را تنظیم می کند .
Position : موقعیت و مقدار نوار را مشخص می کند .
SmallChange : در موقعی که کاربر بر روی دکمه های رفت و برگشت نوار کلیک می کند به اندازه مقدار این خاصیت نوار پیمایش جابجا می شود .

رویداد ==>
Onchange‌ : این رویداد در موقعی که موقعیت نوار پیمایش تغییر می کند فراخوانی می شود .

** مثال :
* یک برنامه جدید ایجاد کنید و خواص فرم آن را به صورت زیر تنظیم کنید :

Form1.AutoScroll := False ;
Form1.Width := 390 ;
Form1.height := 255 ;

* دو عنصر TScrollBar را بر روی فرم قرار دهید و خواص هر یک را به صورت زیر تنظیم کنید .

ScrollBar1.Top := 208 ;
ScrollBar1.Left := 8 ;
ScrollBar1.Kind := sbHorizontal ;
ScrollBar1.PageSize := 10 ;
ScrollBar1.Min := 0 ;
ScrollBar1.Max := 100 ;
ScrollBar1.LargeChange := 10 ;
ScrollBar1.SmallChange := 10 ;

ScrollBar2.Top := 8 ;
ScrollBar2.Left := 360 ;
ScrollBar2.Kind := sbVertical ;
ScrollBar2.PageSize := 20 ;
ScrollBar2.Min := 0 ;
ScrollBar2.Max := 100 ;
ScrollBar2.LargeChange := 10 ;
ScrollBar2.SmallChange := 10 ;

* از صفحه Additional یک عنصر TImage بر روی فرم قرار دهید .
* در رویداد OnCreate فرم کدهای زیر را وارد نمائید :

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Width := 490 ;
Image1.Height := 355 ;
Image1.Left := 0 ;
Image1.Top := 0 ;
Image1.Picture.LoadFromFile('C:My DocumentsMy PicturesCliff in Clouds.bmp');
end;

* در رویداد OnChange عنصر ScrollBar1 کد زیر را وارد نمائید :

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Image1.Left := -(ScrollBar1.Position)
end;

*در رویداد OnChange عنصر ScrollBar2 کد زیر را وارد نمائید :

procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
Image1.Top := -(ScrollBar2.Position)
end;

== حال برنامه را اجرا کنید و موقعی نوار پیمایش را تغییر دهید خواهی دید که پیمایش بر روی عکس انجام می شود .

قسمت یازدهم

عنصر TRadioButton :
- در موقعی که بخواهیم با توجه به انتخاب کاربر عملی و یا عملیاتی انجام شود از مجموعه ای از این عنصر استفاده می کنیم که در این صورت کاربر مجاز به انتخاب یکی از این مجموعه می باشد . مورد استفاده از این عنصر همراه با استفاده از دستور شرطی if می باشد - مهمترین خاصیت آن Checked‌ می باشد که مشخص کننده انتخاب عنصر می باشد .
مثال :
سه عنصر RadioButton را بر روی فرم قرار دهید و خواص زیر را تنظیم کنید :

RadioButton1.Caption := 'Select First'
RadioButton2.Caption := 'Select Second'
RadioButton3.Caption := 'Select Third'

یک عنصر TButton را بر وری فرم قرار دهید و در رویداد OnClick آن کدهای زیر را وارد نمائید :

procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked then
ShowMessage(RadioButton1.Caption)
else if RadioButton2.Checked then
ShowMessage(RadioButton2.Caption)
else if RadioButton3.Checked then
ShowMessage(RadioButton3.Caption) ;

end;

** البته می توانید به جای استفاده از if تودرتو از if ساده نیز استفاده کنید .
------------------------
عنصر TListBox‌ :
- این عنصر محلی را ایجاد می کند که در آن می توان لیستی از اسامی فایلها یا اسامی اشخاص و دیگر موارد را در آن قرار داد . عناصر موجود در آن را می توان انتخاب کرد و کارهایی را با توجه به آنها انجام داد . توجه داشته باشید عناصر موجود در ListBox‌ از نوع رشته می باشند .
خواص ==>
Columns‌ : این خاصیت مشخص می کند که عناصر موجود در لیست در چند ستون نمایش داده شوند . مقدار پیش فرض 0 می باشد که تنها یک لیست یک ستون دارد .
MultiSelect : در صورتی که بخواهیم از لیست بیش از یک گزینه را انتخاب کنیم مقدار این خاصیت باید True تنظیم شود .
ExtendedSelect : هنگامی که مقدار این خاصی و خاصیت MultiSelect برابر tRUE باشد می توان با استفاده از کلید Shift یگ گروه مجاور را باهم انتخاب کرد و همچنین با استفاده از کلید Ctrl چند گزینه غیر مجاور هم را انتخاب کرد .
Items : با انتخاب این خاصیت پنجره ای نمایش داده می شود که می توان گزینه های موجد در لیست را که می خواهیم نمایش داده شوند را تایپ کرد . توجه داشته باشید که در این پنجره هر خط به منزله یک گزینه می باشد .
Sorted‌ : با استفاده از این خاصیت می توان مشخص کرد که آیا گزینه ها به صورت مرتب نمایش داده شوند یا خیر .
Style : این خاصیت برای تعیین نوع ListBox‌ استفاده می شود :
lbStandard : عنصر ListBox به صورت استاندارد نمایش یابد .
lbOwnerDrawVariable و lbOwnerDrawFixed : این امکان را می دهند که بتوان در گزینه ها متن و گرافیک را باهم داشت .

*** اضافه کردن گزینه در ListBox در موقع اجرا با استفاده از کد برنامه :
در این مورد از خاصیت Items‌ و استفاده از متد Add آن به صورت زیر استفاده می کنیم :

ListBox1.Items.Add(رشته مورد نظر) ;

** پاک کردن گزینه نیز با استفاده از متد Delete‌ از خاصیت Items‌ استفاده می شود :

ListBox1.Items.Delete(شماره اندیس آیتم مورد نظر) ;

== مثال -»
یک عنصر TListBox و دو گزینه TButton و یک گزینه TEdit بر روی فرم قرار دهید و خواص زیر را تنظیم کنید :

Edit1.Text := '' ;
Button1.Caption := 'Add' ;
Button2.Caption := 'Delete' ;

- در رویداد OnClick عنصر button1 کدهای زیر را وارد نمائید :
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(Edit1.Text)
end;

- در رویداد OnClick عنصر button2 کدهای زیر را وارد نمائید :

procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer ;
begin
i := StrToInt(InputBox('Delete Item' , 'Enter your index that you want to delete it :','0')) ;
ListBox1.Items.Delete(i);
end;

== توضیحات :
تابع InputBox : این تابع پنجره را نمایش می دهد که می توان در آن از کاربر اطلاعاتی را دریافت کرد که شکل کلی آن به صورت زیر می باشد :

متغیر رشته ای := InputBox(Const ACaption : String ; Const APrompt : String ; Const ADefault : String) : String ;

= این تابع سه آرگومان را از نوع رشته دریافت می کند و مقدار بازگشتی آن نیز از نوع رشته ‎ای است .
ACaption : این آرگومان متن عنوان (Title) پنجره را مشخص می کند .
APrompt : این آرگومان متن پیغام را در پنجره تنظیم می کند .
ADefault : مقدار پیش فرض مقدار قرار گیری در پنجره را مشخص می کند .

استفاده از دستور StrToInt برای این است که مقدار بازگشتی از تابع InputBox را که از نوع رشته می باشد را به نوع Integer تبدیل نماید .