ùòåø 9

ùòåø 8

ùòåø 7

ùòåø 6

ùòåø 5

ùòåø 4

ùòåø 3

ùòåø 2

ùòåø 1

 
 

òåìí äãìôé

ùéòåø 10: îîéø éçéãåú òí çåööéí

 

áùéòåø æä ðáðä âøñà éåúø ëììéú ùì îîéø äéçéãåú.

áîäìê äùéòåø, úúää ôä åùí îãåò áçøðå áôúøåï îñåéí. äñéáä äéà ùàðçðå ëáø îëéðéí àú ùéòåø 11, áå ðùúòùò òí äîîù÷ äåéæåàìé ùì äúëðéú.

 


 

äùéòåø äàçøåï äæä îëéì äøáä àéîåðé äúðñåú, èéôéí åèøé÷éí. òöúé: òì úãìâ òì äúøâéìéí äììå. äí éùúìîå áùìá îàåçø éåúø ëàùø úèôì áôøåé÷èéí îñåáëéí éåúø, ëàùø úöèøê ìäúøëæ áîä ìòùåú åìà áàéê ì áùéòåø æä àðé øåöä âí ìúú ìê àú ääøâùä ùì ùéîåù çåæø áçì÷éí îôøåé÷è éùï. úçùåá áðúçéí âãåìéí, îéçæåø ùì áìå÷éí áåðéí, åäàì ùì ãìôé éâîåì ìê áîéðéîåí ãéáåâ.

   

[ìøàù äòîåã]


 

ôøåé÷è çãù äîáåññ òì ôøåé÷è éùï

 îëéååï ùäâøñà äçãùä ùì úëðéúðå úäéä îáåññú òì äâøñà ä÷åãîú, äîùê ëãìäìï:

 

1.      öåø ñôøéä çãùä \Delphi_tutorial\UniCo4. äòú÷ àú ä÷áöéí äáàéí î- \Delphi_tutorial\UniCoEn3 ìñôøéä äçãùä: unicmain.dfm, unicmain.pas å unicoen3.dpr

 

2.      ôúç àú äôøåé÷è á Delphi’s IDE.

 

3.      ùîåø àú äôøåé÷è áùí àçø: áçø áúôøéè File  åàç"ë Save Project As åùîåø àåúå áùí unico4.dpr áñôøéä \Delphi_tutorial\UniCo4.

 

4.      áîðäì ä÷áöéí ùìê (ñééø äçìåðåú àå ëì ãáø àçø ùàúä îùúîù áå), îç÷ àú \Delphi_tutorial\UniCo4\unicoen3.dpr.

áéîéí äøàùåðéí ùì òáåãúé òí ãìôé, ëì îä ùòùéúé äéä ìôúåç ôøåé÷è éùï á Delpi’s IDE åàæ ìùåîøå úçú ùí çãùàáì æä îàåã îñåëï, ëôé ùâéìéúé áãøê ä÷ùä. öøéê ìùîåø àçã àçã, àú ëì ÷áöé ä- unit ë÷áöéí çãùéí áñôøéä çãùä (ãîééï îöá òí 20 òã 40 ÷áöéí). ìáñåó, àúä çééá ìùîåø àú ÷åáõ äôøåé÷è áàåúä ñôøéä çãùä. ùëçú ÷åáõ àçã, áéöòú ùâéàä ááçéøú äñôøéåú, åàúä îòøáá ùðé ôøåé÷èéí!

àáì ìîä ìà ìäùúîù áñééø äçìåðåú áëãé ìäòúé÷ àú ëì ä÷áöéí ìñôøéä äçãùä, åàæ ôùåè ìùðåú àú äùí  unicoen3.dpr ì- unico4.dpr? áâìì ùá÷åáõ ôøåé÷è, éùðï äôðéåú ìùîåú ÷áöéí åâí ì÷áöéí áãéñ÷!

àðé îòãéó àú àøáòú äöòãéí äôùåèéí äáàéí:

(1)               äòú÷ àú ÷áöé ä- DFM äéùðéí, ÷áöé ä- PAS å÷áöé ä- DPR ìñôøéä äçãùä;

(2)               ìçéöú òëáø ëôåìä òì ä- DPR ìäúçéì àú ãìôé;

(3)               îéã ùîåø àú ÷åáõ ä-DPR úçú ùí çãù;

(4)               îç÷ àú ÷åáõ ä- DPR äéùï, áëãé ìäéîðò îáìáåì áäîùê.

 

[ìøàù äòîåã] 


ñè àçã ùì øëéáéí

 

àðçðå øåöéí ìâøåí ìúëðéúðå ìäéåú îúàéîä ìäøçáä ìéåúø îùðé ñåâé äîøåú. æä îàåã ìà îòùé ìñô÷ Radiogroup àçú ôìåñ Edit Box àçú ôìåñ Button àçã åîñôø labels òáåø ëì ñåâ äîøä. ëéååï ùøàùéú, úöèøê ìäåñéó àú ëì äøëéáéí äììå ìëì ñåâ çãù ùì äîøä ùúåñéó. åùðéú, ôùåè ìà éäéä îñôé÷ î÷åí òì èåôñ àçã (ìîøåú ùðåëì ìôúåø æàú òì éãé éöéøú îîù÷ îùåëìì òí éåúø èôñéí, àå ñè ùì çåööéí áèåôñ ùìðåàáì çùåá øâò òì äîåøëáåú ùîòåøáú áëê) 

àæ, áåà ðùúîù áàåúí øëéáéí åéæåàìéí ìëì ñåâé ääîøä. åáëì ôòí ùðòáåø ìñåâ äîøä àçø, ðèòï àú ä÷áåòéí äáñéñééí äîúàéîéí ìå: ô÷èåøé ääëôìä ìùéîåù ôðéîé, åùîåú äéçéãåú (mm, cm, m,) ùàðå ùîéí á- Radiogroup. äîùîòåú äéà ùàðå æ÷å÷éí ìîñôø øëéáéí ìáçéøú ñåâ ääîøä. äáä ðùúîù á- menu item áúåø äúçìä;  ìàçø îëï, ðåñéó øëéá TabControl. äáä ðúëðú! 

1.      ôúç àú ä- Menu Designer  òì éãé ìçéöä ëôåìä òì äøëéá Mainmenu1.

 

2.      äåñó øëéá úôøéè òìéåï ðåñó òì éãé ìçéöä áîøåáò ùìéã "File". 

 

÷áò àú äëåúøú ì &Convertion. ÷áò àú äùí ìmenuConvertion. 

3.      äåñó ùðé øëéáé submenu. ÷áò àú äëåúøåú ì- &Length å- &Volume. ÷áò àú äùîåú ì- ConvLength å- ConvVolume.

 

4.      öåø îèôì îàåøòåú (event handler) ì- ConLength. ãìôé ðåúðú àú ìå äùí: ConvLengthClick. èéô: áòåøê, ä÷ìã äòøåú áéï ä- begin  ì- end, ëê ùãìôé ìà úîç÷ ìê àú îèôì äîàåøòåú äøé÷ ëàùø ú÷ôì (îñôé÷ ùú÷ìéã //).

 

5.      äåñó àú àåúå îèôì îàåøòåú ìøëéá äúôøéè ConvVolume (øàä ùòåø 9 òí àúä æ÷å÷ ìòæøä). ìàçø îëï, ñâåø àú ä- Menu Designer.

 

6.      ìôðé ùúáöò àú äöòãéí äáàéí, ëãàé ùúùîåø àú òáåãúê áàîöòåú File åàç"ë Save All, ø÷ ìî÷øä ùîùäå éùúáù J

 

7.      àðçðå ìà öøéëéí éåúø àú äøëéáéí òáåø äîøú äðôç, àæ áåà ðîç÷ àåúí. âøåø àú îìáï äáçéøä îñáéá ìøëéáéí, äúçì îòè îùîàì ì- EdVolume åâøåø ìëéååï äúçúéú åéîéðä. ëòú, ôùåè ìçõ òì î÷ù ä- DEL. òì úùðä àú âåãìå ùì äèåôñ, ëéååï ùáòåã øâò, àðå äåìëéí ìäæã÷÷ ìî÷åí äøé÷ áöã éîéï.

 

8.      äåñó TabControl áöã äéîðé ùì äèåôñ. úåëì ìîöåà æàú áãó ä- Win32 ùì ôìèú äøëéáéí.  

[ìøàù äòîåã]


 

9.      ùðä àú âåãìå ùì TabControl1, ëê ùéäéä îñôé÷ î÷åí ìëì äøëéáéí àùø ìùîàìå.

 

10. âøåø àú îìáï äáçéøä îñáéá ìøëéáéí áöãå äùîàìé ùì äèåôñ, äúçì îòè îùîàì ì- Edlength åâøåø ìëéååï äúçúéú åîéîéï ì- RGDecimals. á- Edit menu ùì ãìôé, áçø Cut (àå ä÷ìã àú ùéìåá äî÷ùéí Ctrl-X).äëì ðòìí

 

11. áçø á- TabControl1 òì éãé ìçéöú òëáø òìéå. á- Edit menu ùì ãìôé, áçø  á- Paste  (àå ä÷ìã àú ùéìåá äî÷ùéí Ctrl-V). àéæå ä÷ìä, æä òáã! (àí æä ìà, áú÷ååä ùîøú àú ëì ä÷áöéí ëôé ùàîøúé ìê). áæîï  ùëì äøëéáéí òãééï îñåîðéí, âøåø àåúí îòè ìîèä (áòøê ôòîééí âåáää ùì ä- Edit box).

 

12. ÷áò àú îàôééï ä- TabControl1 ì- Align to alClient.ëòú ä- TabControl îîìà àú ëì àæåø ä- client  áèåôñ.

 

13. á- Object Inspector, ìçõ òì äëôúåø ìéã Tabs. á- String list editor, ä÷ìã àú ùúé äùåøåú äáàåú:

&Length

&Volume

ùìåùä "tabs" çãùéí ðåñôå ì- TabControl1. ùéí ìá: àìå àéðí ùìåùä ãôéí, ä- TabControl ø÷ éåöø àú äàùìéä ùì ùìåùä ãôéí! ìîòùä, éùðå ø÷ ãó àçã, òí TabControl ìîòìä àùø îëéì ùìåùä TABS (çåööéí) (áëãé ì÷áì òåã ãôéí, îùúîùéí á PageControl). 

14. ùðä àú âåãì äèåôñ. îîãé ä- TabControl éùúðå áäúàí, ëéååï ùäåà client-aligned. æä îä ùöøéê ìäéåú ìê òã ëä: 

 

15. ùéí ìá ùäëåúøú ùì RGLength ÷åøàú ëòú "RGLength" (îëéååï ùäéà äéúä øé÷ä ìôðé äâæéøä åääòú÷ä ùáéöòðå). á- Object Inspector, îç÷ àú äëåúøú ùì ä- radiogroup.  

[ìøàù äòîåã]


îùðéí àú ùîåú äøëéáéí 

äáä ðúàéí ëîä îùîåú äøëéáéí ìîöá äçãù. 

èéô: ìôðé ùðúçéì áôø÷ äæä, áçø á- Lock Control îúôøéè ä- Edit: ëê ìà úñúëï áäææä ùì äøëéáéí àùø ì÷ç ìê äøáä îàîõ ìî÷îí. ìàçø îëï, ùîåø àú ëì ä÷áöéí. 

ëòú, äîùê ëãìäìï: 

1.      ùðä àú ùí ÷åôñú äòøéëä (Edit box) ì- EdAmount.

 

2.       ùðä àú ùí äëôúåø (button) ì- BtnConvert.

 

3.      ùðä àú ùîä ùì ä- radiogroup  äøàùåðä ì- RGUnitNames.

 

4.      äúáåðï áòåøê ä÷åã (Code Editor): ãìôé ùéðúä àú ùîåú îèôìé äîàåøòåú! àáì äéà ìà ùéðúä àú ùîåú äøëéáéí ùä÷ìãú, åâí ìà îç÷ä ÷åã äéëï ùöééðú àú äøëéáéí àùø ðîç÷å. æä öøéê ìäéòùåú áàåôï éãðé.

 

àîõ àú ÷åã äî÷åø

 ëîåáï, ùöøéê ìäúàéí àú ÷åã äî÷åø. àøàä ìê èøé÷. áåà ðéúï ìãìôé ìäâéã ìðå îä öøéê ìäùúðåú àå ìäéîç÷. 

1.      áúôøéè Project, áçø á- Compile. ãìôé îåãéòä ìê ùéù ùâéàåú (errors). ø÷ ìçõ OK.

 

2.      áçìåï ä- Editor, äùåøä òí äùâéàä äøàùåðä îåãâùú, åáçìåï ä÷èï îúçú éù øùéîä ùì ùâéàåú.

 

3.      úé÷åï ä- error äøàùåï äåà ÷ì: äçìó àú ëì äîåôòéí ùì RGLength á- RGUnitNames, äçìôä âìåáìéú. äçìó âí àú BtnLenConvert  á- BtnConvert.

 

4.      RGVolume ìà ÷ééí éåúø:

 

·        îç÷ àú äùåøä äùðéä îùâøú FormCreate.

·         áùâøú UnitsConvert, ùðä àú äùåøä: 

case RGVolume.ItemIndex of

ì:

case RGUnitNames.ItemIndex of

·        áôåð÷öéä MakeString, äçìó àú îáðä ä- case:

 

case ConvType of

0: UnitName :=RGUnitNames.Items[LineNr];

1: UnitName :=RGVolume.Items[LineNr];

 

áùåøä äáàä:

UnitName :=RGUnitNames.Items[LineNr];

·        áùâøä SetLabelInvisible, äçìó àú RGVolumeNames á- ;RGUnitNames

 

5.      äáä ð÷îôì ôòí ðåñôú. ëòú äùâéàä äøàùåðä ùäãáâø ðú÷ì áä äéà ù- EdLength ìà ÷ééí.áöò äçìôä âìåáìéú: ùðä EdLength ì- EdAmount. åáæîï ùàðçðå ëáø ëàï, äçìó âìåáìéú àú EdVolume á- EdAmount. èéô: áãìôé 4, àúä éëåì ìôúåç áîäéøåú àú çìåï äãéàìåâ Replace  òì éãé ä÷ìãú Ctrl-R.

 

6.      á÷åîôéìöéä äáàä, ð÷áì úìåðåú òì äúååéåú (labels) ùðòìîå. èåá, áåà ð÷ìéã àú äùîåú äðëåðéí áùâøä ConvertShow.  àðé éåãò, æä ÷öú èéôùé ìäöéâ àú ä- (cubic centimeters) áúååéú LblMM, åèøé÷ æä òåáã ø÷ áâìì ùéù ìðå 8 éçéãåú áùðé ñåâé ääîøä àáì ñîåê òìé: àðå ðôúåø áòéä ÷èðä æå áùéòåø äáà. áéðúééí, LblCC  éäôåê ì- LblMM, LblLitter éäôåê  ì- LblCM åëï äìàä

 

7.      áùâøä SetLabelInvisible, ôùåè îç÷ àú ëì äùåøåú ùîëéìåú àçã îäîòøëéí äéùðéí ùì úååéåú äðôç (volume labels).

 

8.      åá÷åîôéìöéä äáàä, ìà ð÷áì ùåí ùâéàä.

åáëï, æä ì÷ç ìé éåúø æîï ìäñáéø àú ëì äúäìéê åìäòúé÷ àú äîñëéí, îàùø ìáðåú àú äôøåé÷è. ä÷ùá ìòöúé: çæåø òì úøâéìéí ëîå æä, òã ùúåëì ìáöòí áòéðééí ÷ùåøåú.  

[ìøàù äòîåã]


÷áéòú ñåâ ääîøä  

ëéååï ùàðçðå éëåìéí ì÷áåò àú ñåâ ääîøä ìôé äçåöõ (tab) ùðáçø á- TabControl, àðçðå éëåìéí ìîçå÷ àú äîùúðä ConvType îä÷øéàä ìùâøä åëï îëåúøú äùâøä. áâåó äùâøä, ôùåè ðçìéó ConvType á- TabControl1.TabIndex

ìôéëê ùâøú ä- FormCreate ðäôëä ì:   

procedure TFormMain.FormCreate(Sender: TObject);
begin
  RGUnitNames.ItemIndex := 2;  // meter
  UnitsConvert;   // first "automatic" conversion
end;

 äâåó ùì BtnConvertClick éøã ìùåøä àçú:  

procedure TFormMain.BtnConvertClick(Sender: TObject);
begin
  UnitsConvert;
end;

áéöòðå àú ëì äùéðåééí òáåøê. ñâåø àú äôøåé÷è äðåëçé, áöò unzip ì- unicoen4.zip ìúåê ñôøéä \Delphi_tutorial\UniCoEn4 åôúç àú äôøåé÷è áãìôé. 

úåê ëãé äñúëìåú òì ä÷åã, úáçéï áëê ùäåà ðòùä äøáä éåúø ôùåè. ëîå-ëï ùéðéúé àú ùîåú äúååéåú ì- Lbl1, Lbl2, Lbl8, åùéðéúé àú ùí äîùúðä LineNr ì- LabelNr

ãøê àâá, âí àú ä÷åã ùì EdAmountKeyPress ôéùèúé; ðñä ìäáéï îãåò äåà éëåì ìäéåú ÷öø ëì ëê

 ãáø àçã àçøåï: ëàùø òåáøéí ìñåâ äîøä àçø, äúëðéú öøéëä ìèòåï ñè çãù ùì ùîåú éçéãåú ì- RGUnitNames. æä ðòùä áùâøä ConvLengthClick:

·        TabControl1 î÷áì àú äòøê "tab1" àå "tab2".

·        ä- Checkmark ùì øëéá äúôøéè äðëåï ð÷áò (ConvLength àå ConvVolume).

·         àçã àçøé äùðé, øëéáéí çãùéí ðåñôéí ì- RGUnitNames.

·         RGUnitNames ð÷áò ìëôúåø äøãéå äùìéùé.

·        ääîøä îúáöòú.

 

ëàùø áåçøéí çåöõ (tab) àçø îä- TabControl1, ñåâ ääîøä öøéê ìäùúðåú âí ëï. ÷ìé ÷ìåú:  ôùåè ú÷öä àú äòøê  ConvLengthClick ìîàåøò OnChange ùì TabControl (ùéí ìá ìëê ùì TabControl àéï îàåøò OnClick). åñééîðå!

 

         

Copyright (C) 2000 Guido Festraets

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

îáðä äùéòåø:  
ôøåé÷è çãù äîáåññ òì  éùï  
ñè àçã ùì øëéáéí  
îùðéí àú ùîåú äøëéáéí  
àîõ àú ÷åã äî÷åø  
÷áéòú ñåâ ääîøä