SlideShare a Scribd company logo
Intro to Event-driven Programming
and Forms with Delphi
L02 – Controls P1

Mohammad Shaker
mohammadshakergtr.wordpress.com
Intro to Event-driven Programming and Forms with Delphi
@ZGTRShaker
2010, 2011, 2012
Delphi L02 Controls P1
What’s for today?
•
•
•
•
•
•
•
•

Label
Edit
ComboBox
CheckBox
GroupBox
RadioButton
RadioGroup
ListBox
Tips
General ‘Info’s & Tips
• Don’t forget the CTRL+Space auto-completion
– CTRL+Space: code in-sightauto-completion.

• You can’t write in Arabic in a component’s “NAME”.
• Delphi is a not a “Case Sensitive ” language.
• dpr *: when saving, the project you have will be saved as a
‘dpr’ termination.

*dpr: Delphi Project
Runtime
• Form the upper bar > Run > Run.
• Form the button in the upper bar.
• Or F9
Sth to Remember
• Differentiate between Visible & Enabled in Component’s
properties.
• Differentiate between Name & Caption in Component’s
properties.
• F9: RUN.
• F9+CTRL: Compile.
Changing your “.exe” icon
• “.ico” files extension
• Project > Options > Application > Load Icon
• It appears in the upper left corner of the application form
Chase the button
Exercise Do it & enjoy catching it :D
Label
Example
• Design this
Label
• Is an Info
• It can be used as an output as a “String”
• “caption” manipulating.

Label1.caption:= ‘Hello World’;

String & only String
Edit
Example
• Design this
Pre-Made String Functions
• StrAlloc
– Allocates a character buffer of a given size on the heap.

• StrBufSize
– Returns the size of a character buffer allocated using StrAlloc or
StrNew.

• StrCat
– Concatenates two strings.

• StrComp
– Compares two strings.

• StrCopy
– Copies a string.
Pre-Made String Functions
• StrDispose
– Disposes a character buffer allocated using StrAlloc or StrNew.

• StrECopy
– Copies a string and returns a pointer to the end of the string.

• StrEnd
– Returns a pointer to the end of a string.

• StrFmt
– Formats one or more values into a string.

• StrIComp
– Compares two strings without case sensitivity.

• StrLCat
– Concatenates two strings with a given maximum length of the resulting
string.
Pre-Made String Functions
• StrLComp
– Compares two strings for a given maximum length.

• StrLCopy
– Copies a string up to a given maximum length.

• StrLen
– Returns the length of a string.

• StrLFmt
– Formats one or more values into a string with a given maximum length.

• StrLIComp
– Compares two strings for a given maximum length without case sensitivity.

• StrLower
– Converts a string to lowercase.

• StrMove
– Moves a block of characters from one string to another.
Pre-Made String Functions
• StrNew
– Allocates a string on the heap.

• StrPCopy
– Copies a Pascal string to a null-terminated string.

• StrPLCopy
– Copies a Pascal string to a null-terminated string with a given maximum length.

• StrPos
– Returns a pointer to the first occurrence of a given substring within a string.

• StrRScan
– Returns a pointer to the last occurrence of a given character within a string.

• StrScan
– Returns a pointer to the first occurrence of a given character within a string.

• StrUpper
– Converts a string to uppercase.
Pre-Made String Functions
• What we need the most:
– String to integer
– Integer to string

: StrToInt()
: IntToStr()
Edit Prop.
•
•
•
•
•

No “Caption” Prop., “Text”.
PassWord
Visible, Enabled
Hint, ShowHint
Top, Left
Edit
• Text:“String” inner valued.
• Can be used as an input & output.
Var temp:integer;
Edit1.Text:= temp;
temp:= Edit1.Text;

// output
// input

• Have a supposition value (text Prop.).
– Can be changed.

• ReadOnly Prop.
Edit
• Can be used to contain other variables types.
• Input:
Var temp:integer;
temp:= StrToInt(Edit1.Text);

• Output:
Var temp:String;
Edit1.Text:= IntToStr(temp); //no need for -IntToStr-
CheckBox
a “boolean”
CheckBox Properties
•
•
•
•
•

Caption
“true OR false”
Can be used as a “boolean” input
“Checked” Prop.
Can be referenced to other “boolean” variable.
Crack the code
If (CheckBox1.Checked=true) then
Begin
// code
End
Else
if (CheckBox2.checked=true) then
Begin
// code
End
else
Begin
// code
End
x:=5;
If (CheckBox1.Checked=true) then
CheckBox1: Not Checked
Begin
CheckBox2: Checked
x:=10;
End
Else
if ((CheckBox1.Checked=false) and (CheckBox2.checked=false))
then
Begin
x:=11;
End;
x:=5;
If (CheckBox1.Checked=true) then
CheckBox1: Checked
Begin
CheckBox2: Checked
x:=10;
End
Else
if ((CheckBox1.Checked=true) and (CheckBox2.checked=true))
then
Begin
x:=11;
End;
x:=5;
CheckBox1: Checked
If (CheckBox1.Checked=true) then
CheckBox2: Not Checked
Begin
x:=10;
End
if ((CheckBox1.Checked=false) Or (CheckBox2.checked=false)) then
Begin
x:=11;
End;

x:=5;
CheckBox1: Not Checked
If (CheckBox1.Checked=false) then
CheckBox2: Checked
Begin
x:=10;
End
Else
if ((CheckBox1.Checked=true) Or (CheckBox2.checked=true)) then
Begin
x:=11;
End;
x:=5;
If (CheckBox1.Checked=true) then
CheckBox1: Not Checked
Begin
CheckBox2: Checked
x:=10;
End
Else
if ((CheckBox1.Checked=false) or (CheckBox2.checked=false))
then
Begin
x:=11;
End;

x:=5;
If (CheckBox1.Checked=true) then
Begin
x:=10;
End
Else
if

CheckBox1: Not Checked
CheckBox2: Not Checked

((CheckBox1.Checked=true)or(CheckBox2.checked=not(CheckBox1.Checked)))
then
Begin
x:=11;
End;
Crack the code
x:=5;
If (CheckBox1.Checked=true) then
Begin
x:=10;
End;
Else
if (CheckBox2.Checked=true) then
Begin
x:=11;
End;

CheckBox1: Not Checked
CheckBox2: Not Checked
Var Bool1,Bool2: boolean;
Begin
Bool1: = CheckBox1.Checked; Bool2:-=false;
If (Bool1=true) then
Begin
// your code
End
Else
if (Bool2=not(true)) then
Begin
//your code
End
else
Begin
//your code
End
End;
Var Bool1,Bool2: boolean; x:integer;
Begin
CheckBox1: Not Checked
x:=5;
Bool1: = CheckBox1.Checked; Bool2:-=false;
If (Bool1=true) then
Begin
x:=3;
End
Else
if (Bool2=not(true)) then
Begin
x:=x+1;
End
End;

Var Bool1,Bool2: boolean; x:integer;
Begin
x:=5;
Bool1: = CheckBox1.Checked; Bool2:-=true;
If (Bool1=Bool2) then
Begin
x:=3;
End
if (Bool2=not(not(Bool1)) then
Begin
x:=x+1;
End
End;

CheckBox1: Checked
ListBox
ListBox
ListBox Prop.
• Properties:
– Sorted:
• If “true”, sorted in ascending order, default false

– Items:
• Items.add > (String)
• Items.string > [index] > (String)

– ItemIndex:
• ItemIndex > Return selected index [] > (Integer)
• No “ItemIndex” change at Design time

– Columns:
• Multiple “column”s in ListBox if greater than Zero “0”.

– MultiSelect:
• Enables “multiselect” to be “selected” if “true”, default “false”.

– “Auto” ScrollBar
ListBox example
procedure TForm2.Button1Click(Sender: TObject);
var x:integer; s:string;
begin
//Items
ListBox1.Items.Add('hehe');
//String
s:=ListBox1.Items.Strings[0];
Label1.caption:=s;

//ItemIndex
x:=ListBox1.ItemIndex;
Label2.caption:=inttostr(x);
end;
ComboBox
ComboBox
• Look like “ListBox”, but it’s a one “Choice at a time” one.
– No “MultiSelect” Prop.
ComboBox Prop.
• Properties:
– Text
• Text > (string) like a “caption” for “ComboBox”

– Items
• The available “option”s for user.
• Items.add > (String)
• Items.string > [index] > (String)

// func. Runtime
// func. Runtime

– ItemIndex
• ItemIndex > Return selected index [] > (Integer)
• “ItemIndex” changable at Design time , in contrary to “ListBox”

– Sorted:
• If “true”, sorted in ascending order, default false
ComboBox Event
• Most important: Onchange
• Code: let’s “just” change the option “3” times.
ComboBox – Code example
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
memo1.lines.add('krkrkrkr');
end;
//Now let us add this new block of code on Button1Click
procedure TForm2.Button1Click(Sender: TObject);
var x:integer; s:string;
begin
if ComboBox1.ItemIndex=0 then
memo1.Lines.Add('You chose English')
else
begin
if ComboBox1.ItemIndex=1 then
memo1.Lines.Add('You chose Arabic')
else
begin
if ComboBox1.ItemIndex=2 then
memo1.Lines.Add('You chose German')
else
if ComboBox1.ItemIndex=3 then
memo1.Lines.Add('You chose French');
end;
end;
end;
ComboBox – Code example
• Now, what is the output on “Memo1” (Just Think it as if it’s a
Multi-Lines “Edit”) that can show just 5 lines, without a
scrollbar, when we choose 3 options (Arabic, German, French)
in row, and clicking the button after each choice?
• Think Think Think.
RadioButton
RadioButton
• What it looks like?
• It’s like when we choose the ages, languages,
– example
– It’s represent “constant values” for one “variables”

• So it’s like CheckBox that we learned but with a key
difference.
Components

Radio Button
RadioButton - Differences
• Let’s have 3 CheckBox & 3 Radio buttons.
CheckBox

RadioButton

We can select all 3
(one or more)

We can’t select all 3
(just one of them)

Not connected with each other

Connected with each other
RadioButton - Example
•

Remember that only one option can be chosen at a time

Block of code
Block of code
Block of code
Block of code
Many ways to “CRACK” the restriction
• GroupBox
• RadioGroup
• Panel
RadioGroup
simplifies the task of grouping radio buttons
RadioGroup Prop.
• Item:
– Numbers of option in the “RadioGroup” depends on “item” Prop.
– each string in “item” makes a radio button appears in the group box
with string as its “caption”.

• ItemIndex:
– determines which “RadioButton” is currently selected.
• It’s which we’ll deal with in code in “Runtime”.

• Column:
– Display the radio buttons in a single column or in multiple columns.
RadioGroup Prop.
No “Checked” Prop., It’s “ItemIndex”
Live example.
RadioGroup Prop.
procedure TForm1.NextClick(Sender: TObject);
begin
ShowMessage(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]
+ ' with Index '
+ IntToStr(RadioGroup1.ItemIndex));
end;
GroupBox
GroupBox
• What it looks like?
• Its main function is to arrange all the related “control”s in
the “form”.
• The most known related “control” is “RadioGroup” as we have
seen.
• “Caption” Prop. Labels the GroupBox
• Remember “cut & paste” method.
Adding component to GroupBox
• Tool Pallete > Choose what you want to add
– Place it in the “GroupBox”

• Now you can deal with your GroupBox as a complete block
that contains related “control”s
See you!

More Related Content

PPTX
Programming in Python
PPTX
Functions, List and String methods
PPTX
Python 101: Python for Absolute Beginners (PyTexas 2014)
PDF
An introduction to Python for absolute beginners
PPTX
Basic Python Programming: Part 01 and Part 02
PPTX
Introduction to Python programming
PPT
Python
PPTX
Code Like Pythonista
Programming in Python
Functions, List and String methods
Python 101: Python for Absolute Beginners (PyTexas 2014)
An introduction to Python for absolute beginners
Basic Python Programming: Part 01 and Part 02
Introduction to Python programming
Python
Code Like Pythonista

What's hot (20)

PPTX
Python Workshop - Learn Python the Hard Way
PPT
Intro to Functions Python
PPTX
Python for Beginners(v1)
PPT
Programming in Computational Biology
PPTX
Introduction to Kotlin for Android developers
PPTX
PDF
Strings in python
PPT
PPTX
2016 bioinformatics i_python_part_1_wim_vancriekinge
PDF
Python - An Introduction
PDF
Learn 90% of Python in 90 Minutes
PPTX
Introduction to the basics of Python programming (part 3)
PPT
4 b file-io-if-then-else
PPTX
Python 101++: Let's Get Down to Business!
PDF
4. python functions
PDF
Python Workshop
PPT
python.ppt
ODP
An Intro to Python in 30 minutes
PDF
Memory Management In Python The Basics
PDF
Introduction to advanced python
Python Workshop - Learn Python the Hard Way
Intro to Functions Python
Python for Beginners(v1)
Programming in Computational Biology
Introduction to Kotlin for Android developers
Strings in python
2016 bioinformatics i_python_part_1_wim_vancriekinge
Python - An Introduction
Learn 90% of Python in 90 Minutes
Introduction to the basics of Python programming (part 3)
4 b file-io-if-then-else
Python 101++: Let's Get Down to Business!
4. python functions
Python Workshop
python.ppt
An Intro to Python in 30 minutes
Memory Management In Python The Basics
Introduction to advanced python

Viewers also liked (18)

PDF
C# Starter L07-Objects Cloning
PDF
C# Advanced L09-HTML5+ASP
PDF
Utilizing Kinect Control for a More Immersive Interaction with 3D Environment
PDF
XNA L10–Shaders Part 1
PDF
XNA L11–Shaders Part 2
PDF
Indie Series 03: Becoming an Indie
PDF
WPF L03-3D Rendering and 3D Animation
PDF
Android L01 - Warm Up
PDF
C# Advanced L10-Workflow Foundation
PDF
WPF L01-Layouts, Controls, Styles and Templates
PDF
Interaction Design L06 - Tricks with Psychology
PDF
C# Advanced L08-Networking+WCF
PDF
Short, Matters, Love - Passioneers Event 2015
PDF
C# Starter L06-Delegates, Event Handling and Extension Methods
PDF
Car Dynamics with ABS, ESP and GPS Systems
PDF
OpenGL Starter L02
PDF
XNA L02–Basic Matrices and Transformations
PDF
Ultra Fast, Cross Genre, Procedural Content Generation in Games [Master Thesis]
C# Starter L07-Objects Cloning
C# Advanced L09-HTML5+ASP
Utilizing Kinect Control for a More Immersive Interaction with 3D Environment
XNA L10–Shaders Part 1
XNA L11–Shaders Part 2
Indie Series 03: Becoming an Indie
WPF L03-3D Rendering and 3D Animation
Android L01 - Warm Up
C# Advanced L10-Workflow Foundation
WPF L01-Layouts, Controls, Styles and Templates
Interaction Design L06 - Tricks with Psychology
C# Advanced L08-Networking+WCF
Short, Matters, Love - Passioneers Event 2015
C# Starter L06-Delegates, Event Handling and Extension Methods
Car Dynamics with ABS, ESP and GPS Systems
OpenGL Starter L02
XNA L02–Basic Matrices and Transformations
Ultra Fast, Cross Genre, Procedural Content Generation in Games [Master Thesis]

Similar to Delphi L02 Controls P1 (20)

PPT
Python first day
PPT
Python first day
PDF
Q-Step_WS_02102019_Practical_introduction_to_Python.pdf
PPTX
python_computer engineering_semester_computer_language.pptx
PDF
Acm aleppo cpc training ninth session
PPTX
IoT-Week1-Day1-Lab.pptx
PPT
Python Basics
PPT
pysdasdasdsadsadsadsadsadsadasdasdthon1.ppt
PPT
python1.ppt
PPT
Introductio_to_python_progamming_ppt.ppt
PPT
python1.ppt
PPT
python1.ppt
PPT
python1.ppt
PPT
Lenguaje Python
PPT
python1.ppt
PPT
python1.ppt
PPT
python1.ppt
PPT
coolstuff.ppt
PPT
Learn Python in Three Hours - Presentation
PDF
Introduction to Python for Bioinformatics
Python first day
Python first day
Q-Step_WS_02102019_Practical_introduction_to_Python.pdf
python_computer engineering_semester_computer_language.pptx
Acm aleppo cpc training ninth session
IoT-Week1-Day1-Lab.pptx
Python Basics
pysdasdasdsadsadsadsadsadsadasdasdthon1.ppt
python1.ppt
Introductio_to_python_progamming_ppt.ppt
python1.ppt
python1.ppt
python1.ppt
Lenguaje Python
python1.ppt
python1.ppt
python1.ppt
coolstuff.ppt
Learn Python in Three Hours - Presentation
Introduction to Python for Bioinformatics

More from Mohammad Shaker (20)

PDF
12 Rules You Should to Know as a Syrian Graduate
PDF
Unity L01 - Game Development
PDF
Android L07 - Touch, Screen and Wearables
PDF
Interaction Design L03 - Color
PDF
Interaction Design L05 - Typography
PDF
Interaction Design L04 - Materialise and Coupling
PDF
Android L05 - Storage
PDF
Android L04 - Notifications and Threading
PDF
Android L09 - Windows Phone and iOS
PDF
Interaction Design L01 - Mobile Constraints
PDF
Interaction Design L02 - Pragnanz and Grids
PDF
Android L10 - Stores and Gaming
PDF
Android L06 - Cloud / Parse
PDF
Android L08 - Google Maps and Utilities
PDF
Android L03 - Styles and Themes
PDF
Android L02 - Activities and Adapters
PDF
Indie Series 01: Intro to Games
PDF
Indie Series 04: The Making of SyncSeven
PDF
Indie Series 02: AI and Recent Advances in Games
PDF
Roboconf DSL Advanced Software Engineering
12 Rules You Should to Know as a Syrian Graduate
Unity L01 - Game Development
Android L07 - Touch, Screen and Wearables
Interaction Design L03 - Color
Interaction Design L05 - Typography
Interaction Design L04 - Materialise and Coupling
Android L05 - Storage
Android L04 - Notifications and Threading
Android L09 - Windows Phone and iOS
Interaction Design L01 - Mobile Constraints
Interaction Design L02 - Pragnanz and Grids
Android L10 - Stores and Gaming
Android L06 - Cloud / Parse
Android L08 - Google Maps and Utilities
Android L03 - Styles and Themes
Android L02 - Activities and Adapters
Indie Series 01: Intro to Games
Indie Series 04: The Making of SyncSeven
Indie Series 02: AI and Recent Advances in Games
Roboconf DSL Advanced Software Engineering

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
Spectroscopy.pptx food analysis technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Approach and Philosophy of On baking technology
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation theory and applications.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
“AI and Expert System Decision Support & Business Intelligence Systems”
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Digital-Transformation-Roadmap-for-Companies.pptx
A Presentation on Artificial Intelligence
Spectroscopy.pptx food analysis technology
Dropbox Q2 2025 Financial Results & Investor Presentation
A comparative analysis of optical character recognition models for extracting...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Electronic commerce courselecture one. Pdf
Chapter 3 Spatial Domain Image Processing.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Approach and Philosophy of On baking technology
cuic standard and advanced reporting.pdf
Encapsulation theory and applications.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Encapsulation_ Review paper, used for researhc scholars
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Delphi L02 Controls P1

  • 1. Intro to Event-driven Programming and Forms with Delphi L02 – Controls P1 Mohammad Shaker mohammadshakergtr.wordpress.com Intro to Event-driven Programming and Forms with Delphi @ZGTRShaker 2010, 2011, 2012
  • 5. General ‘Info’s & Tips • Don’t forget the CTRL+Space auto-completion – CTRL+Space: code in-sightauto-completion. • You can’t write in Arabic in a component’s “NAME”. • Delphi is a not a “Case Sensitive ” language. • dpr *: when saving, the project you have will be saved as a ‘dpr’ termination. *dpr: Delphi Project
  • 6. Runtime • Form the upper bar > Run > Run. • Form the button in the upper bar. • Or F9
  • 7. Sth to Remember • Differentiate between Visible & Enabled in Component’s properties. • Differentiate between Name & Caption in Component’s properties. • F9: RUN. • F9+CTRL: Compile.
  • 8. Changing your “.exe” icon • “.ico” files extension • Project > Options > Application > Load Icon • It appears in the upper left corner of the application form
  • 9. Chase the button Exercise Do it & enjoy catching it :D
  • 10. Label
  • 12. Label • Is an Info • It can be used as an output as a “String” • “caption” manipulating. Label1.caption:= ‘Hello World’; String & only String
  • 13. Edit
  • 15. Pre-Made String Functions • StrAlloc – Allocates a character buffer of a given size on the heap. • StrBufSize – Returns the size of a character buffer allocated using StrAlloc or StrNew. • StrCat – Concatenates two strings. • StrComp – Compares two strings. • StrCopy – Copies a string.
  • 16. Pre-Made String Functions • StrDispose – Disposes a character buffer allocated using StrAlloc or StrNew. • StrECopy – Copies a string and returns a pointer to the end of the string. • StrEnd – Returns a pointer to the end of a string. • StrFmt – Formats one or more values into a string. • StrIComp – Compares two strings without case sensitivity. • StrLCat – Concatenates two strings with a given maximum length of the resulting string.
  • 17. Pre-Made String Functions • StrLComp – Compares two strings for a given maximum length. • StrLCopy – Copies a string up to a given maximum length. • StrLen – Returns the length of a string. • StrLFmt – Formats one or more values into a string with a given maximum length. • StrLIComp – Compares two strings for a given maximum length without case sensitivity. • StrLower – Converts a string to lowercase. • StrMove – Moves a block of characters from one string to another.
  • 18. Pre-Made String Functions • StrNew – Allocates a string on the heap. • StrPCopy – Copies a Pascal string to a null-terminated string. • StrPLCopy – Copies a Pascal string to a null-terminated string with a given maximum length. • StrPos – Returns a pointer to the first occurrence of a given substring within a string. • StrRScan – Returns a pointer to the last occurrence of a given character within a string. • StrScan – Returns a pointer to the first occurrence of a given character within a string. • StrUpper – Converts a string to uppercase.
  • 19. Pre-Made String Functions • What we need the most: – String to integer – Integer to string : StrToInt() : IntToStr()
  • 20. Edit Prop. • • • • • No “Caption” Prop., “Text”. PassWord Visible, Enabled Hint, ShowHint Top, Left
  • 21. Edit • Text:“String” inner valued. • Can be used as an input & output. Var temp:integer; Edit1.Text:= temp; temp:= Edit1.Text; // output // input • Have a supposition value (text Prop.). – Can be changed. • ReadOnly Prop.
  • 22. Edit • Can be used to contain other variables types. • Input: Var temp:integer; temp:= StrToInt(Edit1.Text); • Output: Var temp:String; Edit1.Text:= IntToStr(temp); //no need for -IntToStr-
  • 24. CheckBox Properties • • • • • Caption “true OR false” Can be used as a “boolean” input “Checked” Prop. Can be referenced to other “boolean” variable.
  • 25. Crack the code If (CheckBox1.Checked=true) then Begin // code End Else if (CheckBox2.checked=true) then Begin // code End else Begin // code End
  • 26. x:=5; If (CheckBox1.Checked=true) then CheckBox1: Not Checked Begin CheckBox2: Checked x:=10; End Else if ((CheckBox1.Checked=false) and (CheckBox2.checked=false)) then Begin x:=11; End; x:=5; If (CheckBox1.Checked=true) then CheckBox1: Checked Begin CheckBox2: Checked x:=10; End Else if ((CheckBox1.Checked=true) and (CheckBox2.checked=true)) then Begin x:=11; End;
  • 27. x:=5; CheckBox1: Checked If (CheckBox1.Checked=true) then CheckBox2: Not Checked Begin x:=10; End if ((CheckBox1.Checked=false) Or (CheckBox2.checked=false)) then Begin x:=11; End; x:=5; CheckBox1: Not Checked If (CheckBox1.Checked=false) then CheckBox2: Checked Begin x:=10; End Else if ((CheckBox1.Checked=true) Or (CheckBox2.checked=true)) then Begin x:=11; End;
  • 28. x:=5; If (CheckBox1.Checked=true) then CheckBox1: Not Checked Begin CheckBox2: Checked x:=10; End Else if ((CheckBox1.Checked=false) or (CheckBox2.checked=false)) then Begin x:=11; End; x:=5; If (CheckBox1.Checked=true) then Begin x:=10; End Else if CheckBox1: Not Checked CheckBox2: Not Checked ((CheckBox1.Checked=true)or(CheckBox2.checked=not(CheckBox1.Checked))) then Begin x:=11; End;
  • 29. Crack the code x:=5; If (CheckBox1.Checked=true) then Begin x:=10; End; Else if (CheckBox2.Checked=true) then Begin x:=11; End; CheckBox1: Not Checked CheckBox2: Not Checked
  • 30. Var Bool1,Bool2: boolean; Begin Bool1: = CheckBox1.Checked; Bool2:-=false; If (Bool1=true) then Begin // your code End Else if (Bool2=not(true)) then Begin //your code End else Begin //your code End End;
  • 31. Var Bool1,Bool2: boolean; x:integer; Begin CheckBox1: Not Checked x:=5; Bool1: = CheckBox1.Checked; Bool2:-=false; If (Bool1=true) then Begin x:=3; End Else if (Bool2=not(true)) then Begin x:=x+1; End End; Var Bool1,Bool2: boolean; x:integer; Begin x:=5; Bool1: = CheckBox1.Checked; Bool2:-=true; If (Bool1=Bool2) then Begin x:=3; End if (Bool2=not(not(Bool1)) then Begin x:=x+1; End End; CheckBox1: Checked
  • 34. ListBox Prop. • Properties: – Sorted: • If “true”, sorted in ascending order, default false – Items: • Items.add > (String) • Items.string > [index] > (String) – ItemIndex: • ItemIndex > Return selected index [] > (Integer) • No “ItemIndex” change at Design time – Columns: • Multiple “column”s in ListBox if greater than Zero “0”. – MultiSelect: • Enables “multiselect” to be “selected” if “true”, default “false”. – “Auto” ScrollBar
  • 35. ListBox example procedure TForm2.Button1Click(Sender: TObject); var x:integer; s:string; begin //Items ListBox1.Items.Add('hehe'); //String s:=ListBox1.Items.Strings[0]; Label1.caption:=s; //ItemIndex x:=ListBox1.ItemIndex; Label2.caption:=inttostr(x); end;
  • 37. ComboBox • Look like “ListBox”, but it’s a one “Choice at a time” one. – No “MultiSelect” Prop.
  • 38. ComboBox Prop. • Properties: – Text • Text > (string) like a “caption” for “ComboBox” – Items • The available “option”s for user. • Items.add > (String) • Items.string > [index] > (String) // func. Runtime // func. Runtime – ItemIndex • ItemIndex > Return selected index [] > (Integer) • “ItemIndex” changable at Design time , in contrary to “ListBox” – Sorted: • If “true”, sorted in ascending order, default false
  • 39. ComboBox Event • Most important: Onchange • Code: let’s “just” change the option “3” times.
  • 40. ComboBox – Code example procedure TForm2.ComboBox1Change(Sender: TObject); begin memo1.lines.add('krkrkrkr'); end;
  • 41. //Now let us add this new block of code on Button1Click procedure TForm2.Button1Click(Sender: TObject); var x:integer; s:string; begin if ComboBox1.ItemIndex=0 then memo1.Lines.Add('You chose English') else begin if ComboBox1.ItemIndex=1 then memo1.Lines.Add('You chose Arabic') else begin if ComboBox1.ItemIndex=2 then memo1.Lines.Add('You chose German') else if ComboBox1.ItemIndex=3 then memo1.Lines.Add('You chose French'); end; end; end;
  • 42. ComboBox – Code example • Now, what is the output on “Memo1” (Just Think it as if it’s a Multi-Lines “Edit”) that can show just 5 lines, without a scrollbar, when we choose 3 options (Arabic, German, French) in row, and clicking the button after each choice? • Think Think Think.
  • 44. RadioButton • What it looks like? • It’s like when we choose the ages, languages, – example – It’s represent “constant values” for one “variables” • So it’s like CheckBox that we learned but with a key difference.
  • 46. RadioButton - Differences • Let’s have 3 CheckBox & 3 Radio buttons. CheckBox RadioButton We can select all 3 (one or more) We can’t select all 3 (just one of them) Not connected with each other Connected with each other
  • 47. RadioButton - Example • Remember that only one option can be chosen at a time Block of code Block of code Block of code Block of code
  • 48. Many ways to “CRACK” the restriction • GroupBox • RadioGroup • Panel
  • 49. RadioGroup simplifies the task of grouping radio buttons
  • 50. RadioGroup Prop. • Item: – Numbers of option in the “RadioGroup” depends on “item” Prop. – each string in “item” makes a radio button appears in the group box with string as its “caption”. • ItemIndex: – determines which “RadioButton” is currently selected. • It’s which we’ll deal with in code in “Runtime”. • Column: – Display the radio buttons in a single column or in multiple columns.
  • 51. RadioGroup Prop. No “Checked” Prop., It’s “ItemIndex” Live example.
  • 52. RadioGroup Prop. procedure TForm1.NextClick(Sender: TObject); begin ShowMessage(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex] + ' with Index ' + IntToStr(RadioGroup1.ItemIndex)); end;
  • 54. GroupBox • What it looks like? • Its main function is to arrange all the related “control”s in the “form”. • The most known related “control” is “RadioGroup” as we have seen. • “Caption” Prop. Labels the GroupBox • Remember “cut & paste” method.
  • 55. Adding component to GroupBox • Tool Pallete > Choose what you want to add – Place it in the “GroupBox” • Now you can deal with your GroupBox as a complete block that contains related “control”s