Intro to Event-driven Programming
and Forms with Delphi
L02 – Controls P1

Mohammad Shaker
mohammadshakergtr.wordpress.com...
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 ca...
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 & Captio...
Changing your “.exe” icon
• “.ico” files extension
• Project > Options > Application > Load Icon
• It appears in the upper...
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’;
...
Edit
Example
• Design this
Pre-Made String Functions
• StrAlloc
– Allocates a character buffer of a given size on the heap.

• StrBufSize
– Returns t...
Pre-Made String Functions
• StrDispose
– Disposes a character buffer allocated using StrAlloc or StrNew.

• StrECopy
– Cop...
Pre-Made String Functions
• StrLComp
– Compares two strings for a given maximum length.

• StrLCopy
– Copies a string up t...
Pre-Made String Functions
• StrNew
– Allocates a string on the heap.

• StrPCopy
– Copies a Pascal string to a null-termin...
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.T...
Edit
• Can be used to contain other variables types.
• Input:
Var temp:integer;
temp:= StrToInt(Edit1.Text);

• Output:
Va...
CheckBox
a “boolean”
CheckBox Properties
•
•
•
•
•

Caption
“true OR false”
Can be used as a “boolean” input
“Checked” Prop.
Can be referenced ...
Crack the code
If (CheckBox1.Checked=true) then
Begin
// code
End
Else
if (CheckBox2.checked=true) then
Begin
// code
End
...
x:=5;
If (CheckBox1.Checked=true) then
CheckBox1: Not Checked
Begin
CheckBox2: Checked
x:=10;
End
Else
if ((CheckBox1.Chec...
x:=5;
CheckBox1: Checked
If (CheckBox1.Checked=true) then
CheckBox2: Not Checked
Begin
x:=10;
End
if ((CheckBox1.Checked=f...
x:=5;
If (CheckBox1.Checked=true) then
CheckBox1: Not Checked
Begin
CheckBox2: Checked
x:=10;
End
Else
if ((CheckBox1.Chec...
Crack the code
x:=5;
If (CheckBox1.Checked=true) then
Begin
x:=10;
End;
Else
if (CheckBox2.Checked=true) then
Begin
x:=11;...
Var Bool1,Bool2: boolean;
Begin
Bool1: = CheckBox1.Checked; Bool2:-=false;
If (Bool1=true) then
Begin
// your code
End
Els...
Var Bool1,Bool2: boolean; x:integer;
Begin
CheckBox1: Not Checked
x:=5;
Bool1: = CheckBox1.Checked; Bool2:-=false;
If (Boo...
ListBox
ListBox
ListBox Prop.
• Properties:
– Sorted:
• If “true”, sorted in ascending order, default false

– Items:
• Items.add > (Strin...
ListBox example
procedure TForm2.Button1Click(Sender: TObject);
var x:integer; s:string;
begin
//Items
ListBox1.Items.Add(...
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 f...
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:s...
ComboBox – Code example
• Now, what is the output on “Memo1” (Just Think it as if it’s a
Multi-Lines “Edit”) that can show...
RadioButton
RadioButton
• What it looks like?
• It’s like when we choose the ages, languages,
– example
– It’s represent “constant val...
Components

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

RadioButton

We can select all 3
(one or mo...
RadioButton - Example
•

Remember that only one option can be chosen at a time

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 r...
RadioGroup Prop.
No “Checked” Prop., It’s “ItemIndex”
Live example.
RadioGroup Prop.
procedure TForm1.NextClick(Sender: TObject);
begin
ShowMessage(RadioGroup1.Items.Strings[RadioGroup1.Item...
GroupBox
GroupBox
• What it looks like?
• Its main function is to arrange all the related “control”s in
the “form”.
• The most know...
Adding component to GroupBox
• Tool Pallete > Choose what you want to add
– Place it in the “GroupBox”

• Now you can deal...
See you!
Delphi L02 Controls P1
Upcoming SlideShare
Loading in …5
×

Delphi L02 Controls P1

391 views
228 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
391
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Delphi L02 Controls P1

  1. 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
  2. 2. What’s for today? • • • • • • • • Label Edit ComboBox CheckBox GroupBox RadioButton RadioGroup ListBox
  3. 3. Tips
  4. 4. 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
  5. 5. Runtime • Form the upper bar > Run > Run. • Form the button in the upper bar. • Or F9
  6. 6. Sth to Remember • Differentiate between Visible & Enabled in Component’s properties. • Differentiate between Name & Caption in Component’s properties. • F9: RUN. • F9+CTRL: Compile.
  7. 7. Changing your “.exe” icon • “.ico” files extension • Project > Options > Application > Load Icon • It appears in the upper left corner of the application form
  8. 8. Chase the button Exercise Do it & enjoy catching it :D
  9. 9. Label
  10. 10. Example • Design this
  11. 11. Label • Is an Info • It can be used as an output as a “String” • “caption” manipulating. Label1.caption:= ‘Hello World’; String & only String
  12. 12. Edit
  13. 13. Example • Design this
  14. 14. 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.
  15. 15. 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.
  16. 16. 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.
  17. 17. 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.
  18. 18. Pre-Made String Functions • What we need the most: – String to integer – Integer to string : StrToInt() : IntToStr()
  19. 19. Edit Prop. • • • • • No “Caption” Prop., “Text”. PassWord Visible, Enabled Hint, ShowHint Top, Left
  20. 20. 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.
  21. 21. 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-
  22. 22. CheckBox a “boolean”
  23. 23. CheckBox Properties • • • • • Caption “true OR false” Can be used as a “boolean” input “Checked” Prop. Can be referenced to other “boolean” variable.
  24. 24. Crack the code If (CheckBox1.Checked=true) then Begin // code End Else if (CheckBox2.checked=true) then Begin // code End else Begin // code End
  25. 25. 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;
  26. 26. 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;
  27. 27. 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;
  28. 28. 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
  29. 29. 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;
  30. 30. 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
  31. 31. ListBox
  32. 32. ListBox
  33. 33. 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
  34. 34. 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;
  35. 35. ComboBox
  36. 36. ComboBox • Look like “ListBox”, but it’s a one “Choice at a time” one. – No “MultiSelect” Prop.
  37. 37. 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
  38. 38. ComboBox Event • Most important: Onchange • Code: let’s “just” change the option “3” times.
  39. 39. ComboBox – Code example procedure TForm2.ComboBox1Change(Sender: TObject); begin memo1.lines.add('krkrkrkr'); end;
  40. 40. //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;
  41. 41. 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.
  42. 42. RadioButton
  43. 43. 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.
  44. 44. Components Radio Button
  45. 45. 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
  46. 46. 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
  47. 47. Many ways to “CRACK” the restriction • GroupBox • RadioGroup • Panel
  48. 48. RadioGroup simplifies the task of grouping radio buttons
  49. 49. 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.
  50. 50. RadioGroup Prop. No “Checked” Prop., It’s “ItemIndex” Live example.
  51. 51. RadioGroup Prop. procedure TForm1.NextClick(Sender: TObject); begin ShowMessage(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex] + ' with Index ' + IntToStr(RadioGroup1.ItemIndex)); end;
  52. 52. GroupBox
  53. 53. 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.
  54. 54. 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
  55. 55. See you!

×