ùòåø 10

ùòåø 9

ùòåø 8

ùòåø 7

ùòåø 5

ùòåø 4

ùòåø 3

ùòåø 2

ùòåø 1

 
 

òåìí äãìôé

ùéòåø 6: ÷áìú äçìèåú

 

 áëãé ì÷áì äçìèåú, úëðéú öøéëä ì÷áåò äàí úðàé äåà àîú àå ù÷ø. ÷áéòä æå îúáöòú áîùôè úðàé (conditional statement), áå æøéîú äúëðéú îúôöìú ìùðééí àå éåúø òðôéí.

áùéòåø æä ðãáø òì îùôè IF.


îùôè äúðàé:... IF...THEN...ELSE (àí…àæ…àçøú…)

îäé ääçìèä äøàùåðä ùðì÷çä òì éãé äúëðéú.  

  •  àí ëôúåø äøãéå äøàùåï ðáçø,

àæ äñëåí îëéì àú äòøêEuro  (àó äîøä àéðä ãøåùä áð÷åãä æå).

  •  àí ëôúåø äøãéå äùðé ðáçø,

 àæ öøéê ìäîéø àú äñëåí îôøð÷ áìâé (Belgian Franc) ì- Euro.

  •  àí ëôúåø äøãéå äùìéùé ðáçø,

àæ  öøéê ìäîéø àú äñëåí îâéìãï äåìðãé ì- Euro.

äçìèä ëæå îúáöòú òì éãé îùôè ä- if.

(äåøàä) then an_instruction (úðàé) if a_condition.

äîéìäthen  (àæ) éëåìä ùéáåà àçøéä áìå÷ ùì äåøàåú, áéï äîéìéí äùîåøåú begin  å- end. àáì æä ìà ðçåõ áúëðéúðå äôùåèä.

àí ðé÷ç áçùáåï ùëôúåø äøãéå äøàùåï (radiobutton) äåà ëôúåø îñ' 0, ðåëì ìäçìéó àú äùåøä

         Euro : = Amount;

áîáðä äáà:  


if CurrRadioG.ItemIndex = 0 then 
  Euro := Amount;
if CurrRadioG.ItemIndex = 1 then
  Euro := Amount / 40.3399;
if CurrRadioG.ItemIndex = 2 then
  Euro := Amount / 2.20371;

îå÷ãí éåúø àîøúé ùáîùôè úðàé (conditional statement), æøéîú äúëðéú îúôöìú ì "òðôéí" ùåðéí. àáì àéôä äòðôéí äììå? åáëï, áöåøä äôùåèä ùì îùôè ä-if, ä"òðó" äùðé àéðå ðøàä á÷åã. àáì äåà áàîú ùí, ôùåè äñúëì òì æàú áãøê äáàä: ìîøåú ùëúáðå

if condition then do_something

îä ùáàîú äúëååðå æä:

if condition then do_something else do_nothing

ùéîåù á- if…then…else… éùôø àú ä÷åã ùìðå åéâøåí ìå ìäéåú îäéø éåúø (ëîåáï, ùäùéôåø áîäéøåú ìà éëåì ìäéîãã áãåâîà ôùåèä æàú, àáì îäéøåú úäôåê äøáä éåúø çùåáä áàôìé÷öéåú âãåìåú éåúø). ëìåîø, ä÷åã ùìðå öøéê ìäøàåú áòøê ëê:  


if CurrRadioG.ItemIndex = 0 then 
  Euro := Amount
else
  calculate_value_in_euro;

 ùéí ìá ùàéï ð÷åãä ôñé÷ àçøé àó äåøàä ùìôðé ä- else. äîäãø (compiler) éúééçñ àì ëì ä- if…then…else… ëäåøàä àçú âãåìä.

ëîï ëï calculate_value_in_euro àéðä îôåöìú ìùðé çì÷éí. ãøåù òåã if…then…else…, ù"é÷åðï" áøàùåï.


if CurrRadioG.ItemIndex = 0 then
  Euro := Amount
else
  if CurrRadioG.ItemIndex = 1 then
    Euro := Amount / 40.3399
  else
    Euro := Amount / 2.20371;

  ääçìèä äùðéä ùðì÷çä òì éãé äúëðéú, áàä àçøé ùäçéùåá îáåöò åäúåöàåú îåöâåú:

                      ·           àí ëôúåø äøãéå äøàùåï ðáçø,

àæEuroLabel  öøéëä ìäòìí åùúé äúååéåú äàçøåú öøéëåú ìäøàåú.

                      ·           àí ëôúåø äøãéå äùðé ðáçø,

àæBEFLabel  öøéëä ìäòìí åùúé äúååéåú äàçøåú öøéëåú ìäøàåú.

                      ·           àí ëôúåø äøãéå äùìéùé ðáçø,

àæNLGLabel  öøéëä ìäòìí åùúé äúååéåú äàçøåú öøéëåú ìäøàåú.

éëåìðå ìáöò æàú ò"é îáðä if…then…else…. àáì ä÷åã "åùúé äúååéåú äàçøåú öøéëåú ìäøàåú" äåà áàîú ðåøà, ëé äåà çåæø 3 ôòîéí. ôúøåï øàùåï: âøåí ìëì äúååéåú ìäøàåú åäñúø àçú îäï ãøê if…then…else….

àê , ðéúï ìáöò æàú áãøê äøáä éåúø ôùåèä, áìé ìäùúîù áàó "if"! áëãé ìâøåí ìøëéá ìäøàåú àå ìà ìäøàåú, öøéê ìä÷öåú òøê ìåâé (áåìàðé) ìîàôééï ä- "visible" ùìå, TRUE  àå FALSE (àîú àå ù÷ø) . àå áéèåé ùúåöàúå ááéèåé ìåâé. äáè á"çúéëú" äôñàãå ÷åã äáàä:

 


EuroLabel.Visible := button_0_is_not_selected;
BEFLabel.Visible  := button_1_is_not_selected;
NLGLabel.Visible  := button_2_is_not_selected;

 


[ìøàù äòîåã]

äáä ð÷åãã!

  1.      ëúåá îçãù àú ùâøú CurrConvert ëôé ùúåôéò áäîùê (ëáø äåñôúé ÷öú äòøåú, úìåé áê àí úøöä éåúø àå ôçåú äòøåú):

 


{ Convert value in InputEdit to Euro, depending
  on the radiobutton selected in CurrRadioG.
  Next, convert from Euro to other currencies. }
procedure TForm1.CurrConvert;
var
  Amount, Euro, BEF, NLG: real;
  S1, S2, S3: string;
begin
  // Convert text of EDIT to numerical value
  Amount := StrToFloat(InputEdit.Text);
  // Calculate value in Euro
  if CurrRadioG.ItemIndex = 0 then
    Euro := Amount
  else
    if CurrRadioG.ItemIndex = 1 then
      Euro := Amount / 40.3399
    else
      Euro := Amount / 2.20371;
  // Convert to other currencies
  BEF := Euro * 40.3399;
  NLG := Euro * 2.20371;
  { Convert the floating point values to strings.
    '0.00' is the "Format String", meaning:
    'result must have 2 digits after dec. separator' }
  S1 := FormatFloat('0.00', Euro);
  S2 := FormatFloat('0.00', BEF);
  S3 := FormatFloat('0.00', NLG);
  { Put strings in the CAPTIONs of the LABELs,
    followed by the name of the currency. Add
    spaces in order to have equal lengths.    }
  EuroLabel.Caption := S1 + ' Euro   ';
  BEFLabel.Caption  := S2 + ' BEF/LUF';
  NLGLabel.Caption  := S3 + ' NLG    ';
  { Do not show the label which corresponds
    with the starting currency              }
  EuroLabel.Visible := (CurrRadioG.ItemIndex <> 0);
  BEFLabel.Visible  := (CurrRadioG.ItemIndex <> 1);
  NLGLabel.Visible  := (CurrRadioG.ItemIndex <> 2);
end;

 

ëòú æä ðòùä áøåø ìîä äöòúé àú äâåôï Courier New  òáåø äúååéåú (labels): ìëì äúååéí éù àú àåúå äøåçá áâåôï îäñåâ äæä, âí àåúí øååçéí. ëàùø àðçðå îééùøéí àú äúååéåú ìéîéï, ëì äòøëéí îúééùøéí áöåøä éôä òì äèåôñ (form).

÷îôì àú úëðéúê åáãå÷ àåúä áàåôï îòîé÷.

2.      áåà ðåñéó òåã îáöò îàåøò áå ääîøä äøàùåðéú (äàåèåîèéú) îúáöòú. äøâò äàéãéàìé ìòùåú æàú äåà ëàùø Form1  "ðåöø". ëîå ëì øëéá àçø âí èôñéí (forms) äí àåáéé÷èéí ùðåöøéí áàåôï àåèåîèé ëàùø äúëðéú îúçéìä.

áçø áèåôñ (form), àå ãøê ä- listbox ùì ä- Object Inspector, àå òì éãé ìçéöä áð÷åãä øé÷ä á- Form1. á- Object Inspector ìçéöä ëôåìä (òì äòëáø) áùãä ìéã OnCreat. á- code-editor äùìí àú îáöò äîàåøò:

 


procedure TForm1.FormCreate(Sender: TObject);
begin
  CurrConvert;
end;

 

÷ì, ìà? äîùê åáãå÷ äàí æä òåáã.  

3.      ìáñåó, ðåñéó îâò àçøåï ìâøñà äæå ùì EuroCC. âí ìçéöä òì ëôúåø ä- ENTER öøéëä ìäøàåú òì äîøä. ìôçåú ëàùø äñîï á- Edit- Component. áùôú çìåðåú : ëàùø äôå÷åñ äåà òì Edit.

áçø InputEdit. á- Object Inspector, ìçéöä ëôåìä (òì äòëáø) áùãä ìéã OnKeyPress. äùìí àú îáöò äîàåøò (event handler):

 


procedure TForm1.InputEditKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then CurrConvert;
end;

 

ãìôé îâéùä ìðå àú äîùúðäKey  á- header ùì äùâøä. îùúðä æä îëéì àú ä"úå" ùîúàéí ì- key  ùðìçõ. ãìôé ëúáä: var Key: úå (char) ùîùîòåúå ù- Key  äåà îùúðä îñåâ "char".

äàåôøèåø # îùîù ìäîøä ùì îñôø ìúå (character) äîúàéí ìå. ëìåîø, 13# îùîòåúå: äúå ùä÷åã ùìå äåà 13. äúå ùçìåðåú î÷áì ëàùø ìåçöéí ENTER.

áñãø, áãå÷ æàú!

 

ìäúøàåú áùéòåø 7!

 

[ìøàù äòîåã]

         

Copyright (C) 2000 Guido Festraets

Webmaster of the DelphiLand site: http://www.festra.com 

îáðä äùéòåø:  
:îùôè äúðàé IF...THEN...ELSE  
!äáä ð÷åãã