You are on page 1of 200

saqarTvelos teqnikuri universiteti

g. janeliZe

daprogrameba Delphi - Si

damtkicebulia stu-s
saredaqcio-sagamomcemlo
sabWos mier

Tbilisi
2005

1
uak 681.3.06

wignSi warmodgenilia vizualuri obieqt-


orientirebuli daprogrameba Delphi-is garemoSi. igi
gaTvaliswinebulia maTTvis vinc flobs romelime
daprogramebis enis safuZvlebs.

damxmare saxelmZRvanelo gankuTvnilia informaciis


damuSavebisa da menejmentis kompiuteruli sistemebis
specialobis studentebisaTvis.

recenzentebi: prof. g. surgulaZe,


doc. m. kiknaZe

©gamomcemloba `teqnikuri universiteti~, 2005


ISBN 99940-40-76-6

2
Sesavali
Delphi es aris obieqtur-orientirebuli
programirebis mZlavri sistema, romelic mravali
amocanis amoxsnis saSualebas iZleva, kerZod:

- Seiqmnas Windows-saTvis dasrulebuli danarTi,


sxvadasxva mimarTulebiT: gamoTvliTi, logikuri,
grafikuli, multimediis;

- drois mokle intervalSi Seiqmnas nebismieri


danarTisaTvis profesionaluri donis interfeisi,
romelic akmayofilebs Windows-is yvela moTxovnas;

- Seiqmnas mZlavri sistemebi monacemTa bazebTan


muSaobisaTvis;

- Seiqmnas mravalarxiani ganawilebuli danarTi,


dafuZnebuli sxvadasxva teqnologiebze;

- Seiqmnas danarTi, romelic marTavs sxva danarTs,


kerZod Microsoft Office-s iseT programebs, rogoricaa
Word, Excel da sxva;

- Seiqmnas sxvadasxva klasis danarTi Internet -Si


muSaobisaTvis;

- mravali sxva, sacnobaro sistemis, DLL


biblioTekebis, ActiveX komponentebis CaTvliT.

3
I Tavi
Delphi, Tanamedrove stilis danarTis
Seqmnis instrumentuli saSualeba
1.1 obieqtur-orientirebuli
programireba.
obieqtur-orientirebuli programireba es sruliad
Tanamedrove midgomaa rTuli programebisa da sistemebis
SeqmnisaTvis. Windows-is nebismieri programis gaxsnisas,
Tqven xedavT fanjaras mravali RilakebiT, menius,
redaqtirebis fanjaras da a.S. yvelaferi es aris obieqti.
Tanac isini TviTon arafers ar akeTeben, elodebian
raRac xdomilebas - Rilakis an Tagvis dawkapunebas,
kursoris gadaadgilebas da a.S. roca xdeba esa Tu is
xdomileba, obieqti iRebs amis Sesaxeb Setyobinebas da
masze axdens reagirebas: awarmoebs gamoTvlebs, Seaqvs
simbolo da sxva. Windows-is aseT programebs ewodebaT
obieqtur-orientirebuli programebi.

obieqturi orientaciis princi pebze agebuli danarTi


ar aris arc operaciebis mimdevroba da arc raime myari
algoriTmi. obieqtur-orientirebuli programa es aris
obieqtebisa da urTierTqmedebis erToblioba. obieqtSi
gansazRvrulia procedurebi da funqciebi romlebic

4
uzrunvelyofen yvela operaciebs. (wakiTxvas, Caweras,
gardaqmnas). am procedurebs da funqciebs hqvia meTodebi
da maTi meSveobiT xdeba obieqtis monacemebTan
urTierToba.

monacemebisa da meTodebis erTobliobas hqvia Tviseba.


Tvisebis Secvla SeiZleba programis Sesrulebis drosac.

obieqti warmoadgens Tvisebebisa da meTodebis erTo-


bliobas. magram es ar aris obieqtis sruli gansazRvra,
radgan gaTvaliswinebulia obieqtebis erTmaneTTan damok-
idebuleba.

obieqtebis urTierTdamokidebulebis garemo aris


Setyobineba, romelic generirdeba sxvadasxva xdomilebis
Sedegad.

exla SeiZleba sabolood ganisazRvros obieqti,


rogorc Tvisebebisa da meTodebis erToblioba da agreTve
xdomileba romelzec igi reagirebs. sqemaze gamosaxulia
obieqtebis organizeba:

5
proeqtis awyoba

Tvisebebi

xdomiloba
meTodebi

xdomilebis damuSaveba

xdomileba

1.2 Delphi -s danarTis saTao programis


failis struqtura
proeqtirebis procesSi Delphi avtomaturad qmnis
saTao programis da calkeuli modulebis kods. modulSi

6
Tqven SegaqvT Tqveni kodi, sxvadasxva xxdomilebis
damuSavebis programis Sesaqmnelad, magram saTao
programas Tqven sasurvelia xeli ar axloT. mxolod
iSviaT SemTxvevaSi iqneba saWiro saTao programaSi
cvlilebebis Setana. Tundac am iSviaTi SemTxvevisaTvis
sasurvelia codna, Tu rogor gamoiyureba saTao
programa da ras aRniSnavs misi operatorebi. danarTis
ti piur saTao programas aqvs saxe:

Program Project1;

Uses

Forms,

Unit1 in ‘Unit1.pas’ {Form1};

Unit2 in ‘Unit2.pas’ {Form2};

{SR*.Res}

{aq SeiZleba ganTavsdes mudmivebis, cvladebis,


funqciebis, procedurebis aRwerebi. yvelaferi es
misawvdomi iqneba mxolod mocemuli failis sazRvrebSi}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);
7
Application.Run;

End.

programis saxelia Project1; Semdeg ganTavsebulia Uses,


sadac CamoTvlilia programaSi CatvirTuli modulebi,
pirveli modulia Forms sistemuri. Semdegia formebi:
Form1 da Form2, Unit1 da Unit2 modulebSi.

Begin - sa da end-s Soris moTvsebulia programis


“tani”. sadac pirveli obieqti akeTebs danarTis
inicializacias, Semdegi ori qmnis Form1-sa da Form2-
is obieqtebs. bolo- danarTs gauSvebs Sesrulebaze.

ganvixiloT saTao programaSi cvlilebis Setanis


magaliTi: Tu gvinda rom Cveni danarTis Form2 Seiqmnas
mxolod maSin, Tu danarTis gaSvebisas brZanebiT
striqonSi gadacemuli iqneba Y opcia, zemoT moyvanili
operatoris

Application.CreateForm(TForm2, Form2);

nacvlad unda daiweros operatori:

if (paramStr(1)=’Y’) then

Application.CreateForm(TForm2, Form2);

Tumca sasurvelia, rom saTao programa ar gadaitvirTos


damatebiTi kodiT. yvela damatebiTi kodi moaTavseT

8
calke modulSi. aseTi moduli, romelic ar aris
dakaSirebuli raime formasTan SeiZleba CairTos da-
narTSi File -->New brZanebaSi, Unit-is arCeviT.

gaiTvaliswineT, rom saTao failSi gansazRvruli


mudmivebi, cvladebi, procedurebi, funqciebi, misawvdomia
mxolod saTao programaSi da miuwvdomelia modulebSi.

1.3 modulis struqtura


ganvsazRvroT rogor gamoiyureba modulis teqsti.
qvemoT moyvanilia carieli formis modulis teqsti:

Unit Unit1;

interface

Uses

Windows, Messages, SysUtils, Classes, Graphics,


Controls, Dorms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

private

{Private declarations}

public

9
{Public declarations}

end;

var

Form1: TForm1;

implementation

{SR *.DFM}

rnd.

moduli iwyeba gasaReburi Unit sityviT, dumiliT


misi saxelia Unit1, meore modulisaTvis Unit2 da a.S.
Cven SeiZleba davarqvaT maT azris gamomxatveli saxeli.

modulis teqsti Sesdgeba ori nawilisagan: Interface


-modulis Ria interfeisi da Implementation-modulis
realizacia. yvelaferi rac moTavsdeba Interface nawilSi
(ti pebi, cvladebi, mudmivebi, funqciebi, procedurebi),
SeiZleba gamoyenebul iqnan programis sxva modulebSi
gare modulebi ver xedaven realizaciis nawilSi
ganTavsebul cvladebs, mudmivebs, funqciebs da
procedurebs.

Interface nawilSi, Uses winadadebis, Semdeg vxedavT


Cveni formis klasis gamoZaxebas. am SemTxvevaSi klasis
saxelia TForm1. klasi Seicavs or nawils: Private

10
klasis daxuruli nawili da Public - klasis Ria nawili.
rasac gamovacxadebT Public - nawilSi, misawvdomi iqneba
sxvadasxva klasebisa da modulebisaTvis. is rac
gamocxadebulia Private nawilSi, misawvdomia mxolod
mocemuli modulis farglebSi.

formis klasis gamocxadebis Semdeg xedavT striqons:

Var

Form1 : TForm1;

Form1 gamocxadda, rogorc TForm1 klasis. e.i. Cveni


forma gamocxadda rogorc TForm1 klasis obieqti.

ganvixiloT Tu rogor SeiZleba modulSi cvladebis,


funqciebis Setana da rogor ganxorcieldeba maTze
mimarTva. qvemoT moyvanilia modulis kodis teqsti,
romelSic formaze ganTavsebulia ori komponenti:
Button1 Rilaki (TButton ti pis) da Label1 Wde(TLabel
ti pis). garda amisa modulSi Setanilia xdomilobis
damuSavebis programa, romelic amuSavdeba momxmareblis
mier Rilakze dawkapunebiT. modulis sxvadasxva adgilas
Setanilia cvladebi da funqciebi, maTTan mimarTvis
ganxorcielebis demonstrirebisaTvis:

11
Unit Unit1;

interface

Uses

Windows, Messages, SysUtils, Classes, Graphics,


Controls, Dorms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

procedure F1(Ch: char);

public

Ch1:char;

procedure F2(Ch: char);

end;

var

Form1: TForm1;

12
Ch2: char;

procedure F3(Ch: char);

implementation

uses unit2;

var Ch3: char;

procedure F4(Ch: char);

begin

Form1.Label1.Caption := Form1.Label1.Caption+

Ch+Form1.Ch1;

end;

procedure TForm1.F1(Ch: char);

begin

Label1.Caption := Label1.Caption + Ch + Ch1;

end;

procedure TForm1.F2(Ch:char);

begin

Label1.Caption := Label1.Caption + Ch + Ch1;

end;

procedure F3(Ch: char);


13
begin

Form1.Label1.Caption := Form1.Label1.

Caption+Ch+Form1.Ch1;

end;

procedure TForm1.Button1Click(Sender: TObject);

var Ch4:char;

procedure F5(Ch:char);

begin

Label.Caption := Label1.Caption+Ch+Ch1;

end;

begin

Ch1:=’-’;

Ch2 := ‘A’;

Ch3 := ‘B’;

Ch4 := ‘C’;

Label1.Caption :=’’;

F1(Ch1);

F2(Ch2);

F3(Ch3);
14
F4(Ch4);

F5(‘D’);

Label1.Font.Color := clRed;

end;

end.

klasis aRweraSi Cans striqonebi:

LLabel1 : TLabel;

Button1 : TButton;

Procedure Button1Click(Sender: TObject);

pirveli ori daiwera avtomaturad, formaze Wdisa


da Rilakis ganTavsebisas. mesames Delphi daamatebs maSin,
roca Rilakze dawkapunebisas dammuSavebeli daiwyebs
OnClick xdomilobis damuSavebis programis daweras. am
dros Delphi ara marto Seitans klasis aRweraSi
proceduris arweras, aramed Implementation nawilSi
Casvams Sesabamisi proceduris saTaurs:

Procedure TForm1.Button1Click(Sender: TObject);


romlis Semdegac dammuSavebels SeuZlia Tavisi kodis
Setana.

Label1 komponents aqvs Caption (warwera) Tviseba.

15
TiToeuli procedura F1-F5 iRebs am warweris
mniSvnelobas, miamatebs mas Ch parametris saxiT
gadmocemul simbolos, Semdeg miamatebs Ch1 cvladSi
Senaxul simbolos da Wdes daubrunebs warweras,
aRniSnuli damatebebiT.

Rilakze dawkapunebis damuSavebis programa -


TForm1.Button1.Click, Ch1-Ch4 simbolur cvladebs
aZlevs mniSvnelobas: “A”, “B”, da “C”, Semdeg Label1
-is Caption Tvisebas asufTavebs, masSi carieli striqonis
SetaniT, Semdeg ki morigeobiT mimarTavs F1-F5
procedurebs, gadascems maT sxvadasxva simboloebs
parametrebis saxiT. dasasruls, Wdis warwera wiTeli
feriT SeiRebeba, risTvisac gamoiyeneba Label1 obieqtis
Font Tviseba. es Tviseba TviT obieqtia, romelsac aqvs
Color (feri) Tviseba. am Tvisebis mniSvneloba cvlis

TForm1.Button1.Click proceduris bolo operators.

1.4 interfeisis vizualuri da


aravizualuri komponentebi
Delphi-is garemo gvTavazobs formas, romelzec
unda ganTavsdes yvela komponenti. Cveulebriv, es aris
fanjara, misTvis damaxasiaTebeli TvisebebiT.

16
komponentebis formaze ganTavsebisas Delphi avtomaturad
amzadebs programis kods, romelic aRwers mocemul
komponents.

komponenti SeiZleba iyos vizualuri, (romelic Cans


danarTis muSaobisas) da aravizualuri (romelic
asrulebs ama Tu im funqcias da ar Cans danarTis
muSaobisas).

1.5. obieqtis TvisebebTan da meTodebTan


mimarTva
ganvixiloT, Tu rogor xdeba programaSi obieqtis
TvisebebTan da meTodebTan mimarTva. obieqtis Tvisebaze
mimarTva xorcieldeba Semdegi formatiT:

<obieqtis saxeli> . <Tvisebis saxeli>

magaliTad Label1 Wdis Caption Tvisebis organizebisaTvis


SeiZleba Caiweros: Label1.Caption

magaliTad Label1 Wdes aqvs Font Tviseba, sadac SeiZleba


gakeTdes Sriftis ferebis arCevani, rac Semdegnairad
daiwereba:

Label1.Font.Color

Tu saWiroa Label1 Wdis gaqroba danarTidan, unda

17
daiweros Semdegi operatori:

Label1.Free

II Tavi
Delphi - is komponentebis mimoxilva
2.1. teqsturi informaciis Setanisa da
asaxvis komponentebi
Delphi-is vizualuri komponentebis biblioTekaSi
aris mravali komponenti, romlebic teqsturi
informaciis Setanisa da redaqtirebis saSualebas iZleva.

Label (Wde)-gverdi Standard-asaxavs teqsts (romelic


momxmareblis mier ar Seicvleba). SeiZleba Seicvalos
Wdis teqsti da feri. Wdis ZiriTadi Tvisebaa Caption.

StaticText (Wde CarCoTi)- gverdi Additional- Wdis


msgavsia, mxolod misgan gansxvavebiT CarCos stilis
SerCevis saSualebas iZleva. ZiriTadi Tvisebaa Caption.

Panel- gverdi Standard-warmoadgens komponentebis


konteiners, gamoiyeneba agreTve msxvili gaformebis
teqstis asaxvisaTvis. ZiriTadi Tvisebaa Caption.

Edit (redaqtirebis fanjara)- gverdi Standard-


gamoiyeneba erTstriqoniani teqstebis asaxvis, Setanisa

18
da redaqtirebisaTvis. ZiriTadi Tvisebaa Text.

MaskEdit (redaqtirebis SeniRbvis fanjara, mibmuli


WdesTan)- gverdi Additional. es C da Label komponentebis
kombinaciaa, ZiriTadi Tvisebebia Text da Caption.

Memo (mravalstriqoniani redaqtirebis fanjara) -


gamoiyeneba mravalstriqoniani teqstebis asaxvis, Setanisa
da redaqtirebisaTvis. es komponenti SeiZleba gaiSalos
mTel ekranze, ZiriTadi Tvisebaa Lines.

RichEdit (mravalstriqoniani redaqtirebis fanjara,


RTF formatSi)-gverdi Win 32, komponenti warmoadgens
redaqtirebis fanjaras teqsturi redaqtoris msgavsad,
igi Sriftis arCevis, teqstis Zebnisa da sxva mraval
saSualebas iZleva. ZiriTadi Tvisebaa Lines.

ListBox (CamonaTvalis fanjara) -gverdi Standard,


warmoadgens iseTive siis fanjaras, rogoric gvxvdeba
Windows-Si. igi siidan arCevis saSualebas iZleva.
ZiriTadi Tvisebaa Items.

CheckListBox (redaqtirebadi sia)- gverdi Additional,


warmoadgens Semdegi saxis striqonebis siebis
redaqtirebis fanjaras: `saxeli = mniSvneloba~ ZiriTadi
Tvisebebia: Keys - saxelebi, Values - mniSvnelobebi.

ComboBox (redaqtirebadi sia)- gverdi Standard,

19
aerTianebs ListBox da Edit Tvisebebs.

momxmarebels SeuZlia an Seitanos teqsti an airCios


igi siidan. ZiriTadi Tvisebaa Items.

ComboBox Ex (teqstebisa da gamosaxulebebis sia)-


gverdi Win 32, warmoadgens CamoSlad sias, romelic
teqstebisa da gamosaxulebebis asaxvis saSualebas iZleva.
ZiriTadi Tvisebaa Items.

StringGrid (striqonebis cxrili)- gverdi Additional,


asaxavs teqstur informacia cxrilis saxiT. Sesdgeba
striqonebisa da svetebisagan. es komponenti cxrilis
svetebze da striqonebze gadaadgilebis saSualebas
iZleva. ZiriTadi Tvisebaa Cells.

2.2. teqstis asaxva Label, StaticText da


Panel komponentebze.
formaze sxvadasxva saxis warwerebis gamosaxvisaTvis
ZiriTadad gamoiyeneba Semdegi komponentebi: Label,
StaticText da Panel.

teqsti, romelic aisaxeba CamoTvlil komponentebSi


ganisazRvreba maTi Caption Tvisebis mniSvnelobiT. misi
SerCeva SeiZleba proeqtirebis procesSi an SeiZleba
Seicvalos programulad, danarTis Sesrulebis procesSi.

20
magaliTad:

Label1.Caption := `axali teqsti~;

Tu saWiroa ricxviTi informaciis gamosaxva, SeiZleba


visargebloT FloatToStr (namdvili tipisaTvis) da IntToStr
(mTeli ti pisaTvis) funqciebiT.

fragmentebiani teqstis formirebisaTvis SeiZleba


`+~ operaciis gamoyeneba, romelic aerTianebs striqonebs.
magaliTad Tu programaSi mocemulia mTeli cvladi I,
romelic gamoxatavs jgufSi studentTa raodenobas,
Label1 WdeSi am informaciis gamotana xdeba Semdegi
operatoriT:

Label1. Caption := ‘studentTa raodenobaa: ‘ + IntToStr(I);

yvela komponentze fonis feri ganisazRvreba Color


TvisebiT, xolo warweris feri ganisazRvreba - Font
Tvisebis, Color qveTvisebiT.

StaticText da Panel komponentebs, garda ganxilulisa,


aqvT BorderStyle Tviseba, romelic gansazRvravs teqstis
CarCos stils. Tu arCeuli iqneba sbsNone stili,
StaticText garegnobiT ar gansxvavdeba Label Wdisagan.
Tu CarCos gamoiyenebT, ufro moxerxebulia sbsNone
stili.

Panel komponents, BorderStyle Tvisebis garda aqvs


21
BevelInner, BevelOuter, BevelWidth, BorderWidth Tvisebebi,
romlebic gvTavazoben warweris gaformebis mdidar
SesaZleblobebs. rogorc Cans gamosatani teqstis
gasaformeblad maqsimalur SesaZleblobas iZleva Panel,
minimalurs ki - Label.

danarTis fanjris gadidebisas, rom ar dairRvas


teqstis siswore, formis OnResite xdomilobaSi unda
Caisvas operatori, romelic gadaxatavs komponentebs
Repaint meTodiT:

StaticText1.Repaint;

Label da StaticText Wdeebis zomebi ganisazRvreba


AutoSize TvisebiT. Tu es Tviseba aris True mdgomareobaSi,
maSin komponentebis vertikaluri da horizontaluri
zomebi ganisazRvreba warweris zomebiT. Tu AutoSize =
False, maSin komponentis SigniT teqstis gasworeba
ganisazRvreba Alignment TvisebiT. (marcxniv, SuaSi da
marjvniv). es Tviseba aqvs Panel komponentsac.

Label Wdes aqvs WordWrap Tviseba, romelic


uzrunvelyofs teqstis axal xazze gadatanas. am Tvisebis
asamoqmedeblad WordWrap unda iyos true mdgomareobaSi,
xolo AutoSize Tviseba false mdgomareobaSi, xolo
komponentis simaRle SevarCioT iseTi, rom masSi

22
moTavsdes sasurveli teqsti.

StaticText WdeSi grZeli teqstis gadatana xdeba


avtomaturad, im SemTxvevisaTvis Tu AutoSize aris False
mdgomareobaSi, da komponentis zoma sakmarisia ramodenime
striqonis gansaTavseblad.

Panel -Si striqonis ganTavseba ramodenime striqonad


SeuZlebelia.

ganvixiloT Label da StaticText komponentebis erTi


saintereso Tviseba - FocusControl, Tu Wdis Caption
TvisebaSi erT-erTi simbolos win moaTavsebT `&~-s, is
simbolo, romlis winac moaTavseT `&~ iqneba gaxazuli.
(TviT `&~ ar gamoCndeba). amis Semdeg mimarTeT
FocusControl Tvisebas da gamosul siaSi airCieT
elementi, romelsac unda gadaeces mimarTva, Tu
momxmarebeli daaWers swraf Rilakebs: Alt + gaxazuli
elementi. swrafma Rilakebma rom imoqmedos Wdeze,
aucilebelia rom Wdis ShowAccelChar Tviseba iyos true
mdgomareobaSi.

23
2.3 Edit, LabelEdit da MaskEdit
redaqtirebis fanjrebi.
redaqtirebis fanjrebis garegnuli saxe ganisazRvreba
BorderStyle TvisebiT.

aRniSnul fanjrebSi Sesatan da gamosatan teqsts


Seicavs Text Tviseba. teqstis gasworeba sazRvrebis
mimarT SeuZlebelia. striqonebis gadatana ar xdeba.
teqstSi gadaadgileba SeiZleba kursoris daxmarebiT.
redaqtirebis fanjrebSi gamoiyeneba `cxeli~ Rilakebi:
ctrl-c fragmentis kopireba; ctrl-x fragmentis amoWra; ctrl-
v fragmentis Casma, ctrl-z bolo brZanebis gauqmeba.
AutoSelect Tviseba gansazRvravs, redaqtirebis fanjaraze
mimarTvis gadacemisas mTlianad moiniSnos Tu ara teqsti.
teqstis mTliani moniSvnisaTvis es Tviseba unda iyos
true mdgomareobaSi. Tviseba SelLength gansazRvravs
moniSnuli fragmentis sigrZes, SelStrart gvaZlevs im
pozicis, saidanac iwyeba moniSvna, SelText gviCvenebs
moniSnul teqsts.

MaxLength Tviseba gansazRvravs Sesatani teqstis


maqsimalur sigrZes, Tu MaxLength=0 teqstis sigrZe
ar aris gansazRvruli, winaaRmdeg SemTxvevaSi, igi
uCvenebs simboloebis maqsimalur sigrZes, romelic
SeiZleba Seitanos momxmarebelma.

24
Modified Tviseba misawvdomia mxolod Sesrulebis
dros, uCvenebs moxda Tu ara teqstis redaqtireba. Tu
am Tvisebis gamoyeneba aris saWiro Modified Tviseba
unda iyos false mdgomareobaSi.

PasswordChar Tviseba redaqtirebis fanjaras


gardaqmnis parolis Setanis fanjrad. usityvod, misi
mniSvneloba udris #0 -nulovan simbolos, Tu am
SemTxvevaSi redaqtirebis fanjaras Cveulebrivi
mniSvneloba aqvs, Tu PasswordChar TvisebaSi naCvenebia
sxva simbolo (magaliTad `*”), maSin teqstis Setanisas
fanjaraSi gamoCndeba swored es simbolo da ara is,
rasac Seitans momxmarebeli, rac uzrunvelyofs
Setanili parolis gasaidumloebas, LabelEdit komponentis
LabelPosition Tviseba uCvenebs fanjris romel mxares
ganTavsdeba Wde: IpAbove- zemoT, IpBelow- qvemoT, IpLeft-
marcxniv, IpRight- marjvniv, rogorc Cans, LabelEdit
komponenti Zalian moxerxebulia da umetes danarTebSi
SeiZleba Secvalos Edit fanjara, radganac iSviaTad aris
saWiro Edit fanjara, Wdis gareSe.

MaskEdit k o m p o n e n t i Edit da LabelEdit


komponentebisagan gansxvavdeba imiT, rom masSi SeiZleba
`niRabis~ striqonis Setana EditMask TvisebaSi. `niRabi~
Sedgeba sami nawilisagan, maT Soris iwereba wertil-

25
mZime (;). `niRabis~ Setana SeiZleba marTalia, uSualod
EditMask TvisebaSi, magram ufro moxerxebulia specia-
luri redaqtoriT, romelic gamoiZaxeba obieqtebis
inspeqtorSi EditMask Tvisebis striqonSi mravalwer-
tiliani RilakiT.

2.4 mravalstriqoniani redaqtirebis


fanjara
Memo da RichEdit komponentebi
Memo da RichEdit komponentebi warmoadgenen
mravalstriqoniani teqstis redaqtirebis fanjrebs.

Memo komponentSi formati (Srifti, misi


atributebi, gasworebebi) mTeli teqstisaTvis erTnairia
da ganisazRvreba Font TvisebiT. Memo-s failis
Senaxvisas damaxsovrebuli iqneba teqsti da ara formati,
teqsti gamoZaxebisas gamova iseT formatSi, rogoric
aris arCeuli mocemul momentSi da ara iseTSi, rogorc
daimaxsovreT.

RichEdit komponenti gacilebiT moxerxebulia.


teqstis fragmentis atributis Sesacvlelad. airCieT
SelAttributes Tviseba. es Tvisebaa TTextAttributes ti pisaa,
romelsac Tavis mxriv aqvs qveTviseba: Color(feri),

26
Name(Sriftis saxeli), Size(zoma), Style(stili) da sxva.
ganaTavseT formaze RichEdit komponenti, Sriftis arCevis
dialogi FontDialog da Rilaki Button, romelic
momxmarebels teqstis atributis Secvlis saSualebas
miscems. Sesabamis Rilakze SeitaneT teqsti:

If FontDialog1.Execute then

With RichEdit1.SelAttributes

do begin

Color := FontDialog1.Font.Color;

Name := FontDialog1.Font.Name;

Size := FontDialog1.Font.Size;

Style := FontDialog1.Font.Style;

end;

RichEdit1.SetFocus;

vinaidan SelAttributes da Font obieqtebi ti pis mixedviT


Tavsebadebi arian, es teqsti SeiZleba Semokldes,
sadac erTi obieqtis yvela Tviseba eniWeba meores:

If FontDialog1.Execute then

RichEdit1.SelAttributes.Assign

(FontDialog1.Font);

27
RichEdit1.SetFocus;

gauSviT danarTi da dainaxavT, rom Tqven SecvliT


teqstis atributebs teqstis sxvadasxva monakveTze.

komponents aqvs DefAttributes Tviseba, romelic


TParaAttributes ti pisaa, am ti ps aqvs rigi Tvisebebisa:

Alignment-gansazRvravs teqstis gasworebas -


taLeftJustify(marcxniv), taCenter(centrze), taRightJustify
(marjvniv).

FirstIndent-abzacis Sewevis maCvenebelia;

Numbering-gansazRvravs CamonaTvalis ti pis niSnebis


dasmas: nsNone - niSnebi ar daismeba; nsBullet-niSnebi
daismeba;

LeftIndent-gansazRvravs teqstis marcxena sazRvars;

RightIndent-uCvenebs teqstis marjvena sazRvars;

TabCount - gansazRvravs tabulaciis pozicias;

Tab - uCvenebs tabulaciis poziciis mniSvnelobas


piqselebSi.

abzacis gasworeba xorcieldeba Semdegi operatorebiT:

RichEdit1.Paragraph.Alignment := taLeftJustify;

RichEdit1.Paragraph.Alignment := taCenter;

28
RichEdit1.Paragraph.Alignment := taRightJustify;

Semdegi operatorebi gamoiyeneba CamonaTvalis ti pis


niSnebis dasmisaTvis:

RichEdit1.Paragraph.Numbering := nsBullet;

xolo CamonaTvalis gauqmeba xdeba Semdegi


operatoriT:

RichEdit1.Paragraph.Numbering := nsNone;

am ori operatoris gaerTianebiT miiReba iseTi


mdgomareoba, rom aRniSnul Rilakze dawkapunebisas
CamonaTvali daismeba, xolo kvlav dawkapunebisas
CamonaTvali gauqmdeba:

if (ABullet.Checked) then

RichEdit1.Paragraph.Numbering := nsNone

else RichEdit1.Paragraph.Numbering := nsBullet;

ABullet.Checked := not ABullet.Checked;

TabCount da Tab Tvisebebs azri aqvs maSin, roca


komponentis WantTabs Tvisebas aqvs True mniSvneloba.
es Tviseba momxmarebels teqstSi tabulaciis simbolos
Setanis saSualebas aZlevs. Tu WantTabs = false tabulaciis
simbolos Setana teqstSi ar moxdeba.

z e m o T g a n x i l u l i a Memo-s d a RichEdit-i s
29
ganmasxvavebeli Tvisebebi. exla ganvixiloT maTi saerTo
Tvisebebi.

Alignment da WordWrap Tvisebebi gansazRvraven teqstis


gasworebas da grZeli striqonis gadatanas. ReadOnly
Tvisebis true mdgomareoba iZleva teqstis mxolod
wakiTxvis saSualebas. MaxLength Tviseba gansazRvravs
Sesatani teqstis maqsimalur sigrZes. Tu MaxLength =
0 maSin teqstis sigrZe ar aris SezRuduli. WantReturns
da WantTab teqstSi striqonis gadatanis da tabulaciis
simboloebis Setanis saSualebas iZleva.

ScrollBars Tviseba fanjaraSi gamoitans gadaxvevis zols.


usityvod, ScrollBars = ssNone, rac mis ar arsebobas niSnavs.
am dros teqstSi gadaadgileba xdeba mxolod kursoriT.
ScrollBars SeiZleba hqondes ssHorizontal, ssVertical an ssBoth
mniSvneloba, rac niSnavs fanjaraSi horizontaluri,
vertikaluri an orive gadaxvevis zolis gamoCenas.

Memo da RichEdit komponentebis ZiriTadi Tvisebaa


Lines, romelic Seicavs fanjris teqsts da aqvs TStrings
Tviseba. redaqtirebis fanjris gamotana xdeba Lines
Tvisebis gverdiT mravalwertiliani Rilakze dawka-
punebiT. teqstis redaqtireba an Setana SeiZleba
uSualod aRniSnul fanjaraSi an CodeEditor Rilakze
dawkapunebiT gamosul kodis redaqtoris fanjaraSi.

30
am SemTxvevaSi teqstTan muSaobis damTavrebisas,
konteqstur meniuSi airCieT ClosePage brZaneba da
upasuxeT SekiTxvas, teqstis Senaxvis Sesaxeb.

Count Tviseba uCvenebs teqstSi striqonebis


raodenobas.

fanjaraSi teqstis gasufTavebisaTvis gamoiyeneba Clear


procedura.

teqstis boloSi axali striqonis dasamateblad


gamoiyeneba Lines Tvisebis Add da Append meTodebi.
teqstis failidan CasatvirTad gamoiyeneba LoadFromFile
meTodi, xolo teqstis Senaxva ki xdeba SaveToFile
meTodiT.

ganvixiloT magaliTi, danarTze ganaTavseT Edit1


redaqtirebis fanjara, sadac momxmarebeli Seitans
TanamSromlis gvars. dasviT Rilaki, romelzec
dawkapunebisas Memo1 fanjaraSi gamoCndeba am
TanamSromlis daxasiaTebis Sabloni, romlis Semdegac
momxmarebeli Seavsebs daxasiaTebis teqsts.

Rilakze ori dawkapunebisas gamosul damuSavebis


fanjaraSi SeitaneT teqsti:

Memo1.Clear;

Memo1.Lines.Add(‘daxasiaTeba’);
31
Memo1.Lines.Add(‘TanamSromeli ’+ Edit1.Text);

Memo1.SetFocus;

Memo1-Si failidan teqstis CatvirTva SeiZleba


Semdegi brZanebiT:

Memo1.Lines.LoadFromFile(‘Text.Txt’);

teqsti failSi Seinaxeba Semdegi brZanebiT:

Memo1.Lines.SaveToFile(‘Text.Txt’);

Memo da RichEdit komponentebis SelStart Tviseba


uCvenebs kursoris pozicias teqstSi an moniSnuli
teqstis dasawyiss. CaretPos Tvisebis X veli uCvenebs
im simbolos indeqss, romlis winac mdebareobs kursori,
xolo Y veli ki uCvenebs striqonis indeqss, sadac
mdebareobs kursori. vinaidan indeqsis sawyisi
mniSvnelobaa 0, Memo1.CaretPos.Y+1 da Memo1.
CaretPos.X+1 gansazRvravs striqonisa da masSi
simbolos nomers, romlis winac mdebareobs kursori.

32
2.5 siebidan arCevis komponentebi
ListBox, CheckListBox, ValueListEditor,
ComboBox, ComboBoxEx.
suraTze mocemulia ListBox, CheckListBox, da
ValueListEditor komponentebi.

ListBox da CheckListBox komponentebi asaxaven


striqonebis sias, saidanac arCevis saSualebas iZlevian.
maTi ZiriTadi Tvisebaa Items, romelic TStrings ti pisaa.
misi Sevseba SeiZleba obieqtebis inspeqtorze Items
Tvisebis gverdiT mravalwertilian Rilakze daWerisas.
aq SeiZleba TStrings klasis Tvisebebisa da meTodebis

33
gamoyeneba, rogoricaa Clear, Add da sxva.

ListBox komponentSi aris MultiSelect Tviseba, romelic


momxmarebels mravlobiTi amorCevis saSualebas aZlevs.
Tu MultiSelect = False ( mniSvneloba usityvod), maSin
momxmarebebels SeuZlia siidan mxolod erTi obieqtis
amorCeva. am SemTxvevaSi amorCeuli striqonis indeqsis
gansazRvra SeiZleba ItemIndex Tvisebidan, romelic
mxolod sSesrulebis dros aris misawvdomi, Tu arc
erTi striqoni ar aris arCeuli, maSin ItemIndex=-1.

Columns Tviseba gansazRvravs svetebis raodenobas,


romelzec unda aisaxos sia, Tu igi mTlianad ar Tavsdeba
ListBox fanjaraSi.

Sorted Tviseba awesrigebs sias anbanis mixedviT. Tu


Sorted = true axali striqonebi siaSi daemateba anbanis
mixedviT da ara boloSi.

AutoComplete Tviseba, Tu true mdgomareobaSia,


momxmarebels swrafad povnis saSualeba eZleva pirveli
simbolos Sesabamis Rilakze daWeriT.

Style Tviseba, Tu IbStandard mdgomareobaSia, Seesabameba


striqonebia sias. Style Tvisebis sxva mniSvnelobebi siaSi
ara marto teqstis, aramed gamosaxulebis asaxvis
saSualebas iZleva.

34
IbOwnerDrawFixed da IbOwnerDrawVariable gamoiyeneba
siaSi gamosaxulebis Sesatanad. am dros IbOwnerDraw-
Fixed niSnavs, rom siaSi yvela elementis simaRle
erTnairia. IbOwnerDrawVariable niSnavs, rom siaSi
elementebis simaRle sxvadasxvaa. IbVirtual da IbVirtual-
OwnerDraw mniSvnelobebi Seesabamebian virtualur siebs,
teqstebisa da gamosaxulebebis striqonebis Sesabamisad.

ganvixiloT magaliTi:

danarTze moaTavseT ToolBar obieqti da Tu gsurT


Rilakebis Sesabamisi `ikonebis~ karnaxis siaSi moTavseba
moiqeciT Semdegnairad:

pirvel rigSi SeaTanxmeT `ikonebis~ simaRle siaSi


da SeitaneT siaSi imdeni striqoni (SeiZleba carielic),
ramdeni Rilakicaa instrumentebis striqonze. es
SeiZleba gakeTdes formisaTvis OnCreate xdomilobiT:

Procedure TForm1.FormCreate := Toolbar1.Images.Height;

var i : integer;

begin

ListBox1.ItemHeight := ToolBar1.Images.Height;

For i := 0 to ToolBar1.ButtonCount-1 do

ListBox1.Items.Add(‘’);

35
end;

pirveli operatori striqonis simaRles SeaTanxmebs


`ikonebis~ simaRles. xolo For cikls Seaqvs siaSi
imdeni carieli striqoni, ramdeni Rilakic aris
instrumentebis panelze (ToolBar1.ButtonCount ). am
striqonebis Setana aucilebelia, radgan SemdgomSi
maTTvis warmoiSvas On DrawItem xdomiloba.

ListBox1-1 is OndrawItem xdomilebis dammuSavebels


aqvs saxe;
procedure TForm1.ListBox1DrawItem(Control:
TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
ToolBar1.Images.Draw(ListBox1.Canvas, Rect.Left + 5,
Rect.Top, ToolBar1.Buttons[Index].ImageIndex, true);
ListBox1.Canvas.TextOut(Rect.Left + 30, Rect.Top,

GetLongHint(ToolBar1.Buttons[Index].Hint));
end;

pirveli operatori, ImageList, komponentis `ikons~


xatavs, Draw meTodiT. am meTodSi kanvis saxiT naCvenebia
ListBox1- is kanva. xatvis pozicia ganisazRvreba mocemuli
striqonis aredan 5 poziciiT marcxniv (Rect.Left + 5).

36
Index saSualebas iZleva ToolBar1.Buttons TvisebiT
daukavSirdes analogiuri indeqsis mqone Rilaks.
ImageList - Si asaxuli `ikonis~ indeqsi ganisazRvreba
ImageIndex Rilakis TvisebiT.

meore operators kanvaze TextOut meTodiT gamoaqvs


karnaxi, Hint.

OnData xdomiloba sruldeba maSin, rodesac unda


aisaxos siis momdevno striqoni. am xdomilobis
proceduris saTauria:

Procedure TForm1.ListBox1.Data(Control: TWinControl;


Index: Integer; var Data: String);

Control parametri siaa, romelSic xdeba arCeva. Index


striqonis indeqsia, romelic unda aisaxos. Data
parametrSi unda iqnas naCvenebi gamosatani sia, magaliTad
operatori:

Data := ‘striqoni ‘ + IntToStr(Index + 1);

striqonSi Seitans teqsts: `striqoni.....~, sadac


mravali wertilis nacvlad iqneba striqonis nomeri.

Tu virtualuri siis striqonebs unda daukavSirdnen


obieqtebi, SeiZleba gamoviyenoT OnDataObject xdomilobis
procedura, romlis saTauria:

37
Procedure TForm1.ListBox1DataObject(Control: TWin Con-
trol; Index: Integer; var DataObject: TObject);

Index parametri uCvenebs striqonis nemers, xolo


DataObject parametrSi unda SevitanoT striqonebTan
dakavSirebuli obieqti.

ListBox komponentis msgavsia CheckListBox komponenti.


es aris sia indikatorebiT. igi gamoiyureba rogorc
ListBox, mxolod TiToeuli striqonis gaswvriv aris
indikatori, romelzec SeiZleba gadarTva. mravlobiTi
amorCevis Tviseba am komponents ar gaaCnia, radgan masSi
es funqcia xorcieldeba indikatorebis dayenebiT.

Header Tviseba SeiZleba Seivsos programulad,


magaliTad:

CheckListBox1.Header[1] := true;

CheckListBox1.Header[9] := true;

operatorebi saTauris saxiT iZlevian meore da meaTe


striqonebs. Tu saWiroa saTauris fonis feris SerCeva,
gamoiyeneba HeaderColor Tviseba.

ganvixiloT ValueListEditor komponenti. es siis


redaqtirebis fanjara Semdegi saxisaa `saxeli =
mniSvneloba~. fanjaras aqvs ori sveti: `Key~ saxele-
bisaTvis, xolo `Value~ - mniSvnelobebisaTvis. saTauri

38
SeiZleba Seicvalos TitleCaptions TvisebiT.

Strings Tviseba, romelic TStrings tipisaa, Seicavs yvela


striqonis sias. TStrings klasis meTodi siis
mani pulirebis (striqonis damatebis, waSlis) saSualebas
iZleva.

Keys Tviseba warmoadgens saxelebis indeqsirebul


sias. indeqsi 1-dan iwyeba. Values Tviseba Key saxelis
mqone striqonidan wakiTxvis an mimarTvis saSualebas
iZleva. Tu mimarTvisas Key saxeli ar aris siaSi,
Caemateba striqoni naCvenebi saxeliT da mniSvnelobiT,
xolo Tu wakiTxvisas Key saxeli siaSi ar aris, Sedegad
miiReba carieli striqoni.

sistemasTan da mniSvnelobasTan mimarTvas iZleva


Tvisebebi: Strings.Names da Strings.Values.

striqonis elementebTan mimarTvis simravleebs iZleva


agreTve Cells[ACol,ARov: Integer] Tviseba. am TvisebaSi
ACol = 0 Seesabameba sistemis svets, xolo ACol = 1
mniSvnelobebis svets. ARow = 0 Seesabameba saTauris
striqons, xolo ARow > 0 siis striqonebs.

RowCount Tviseba mxolod wakiTxvisaTvis, uCvenebs


striqonebis raodenobas saTauris striqonis CaTvliT.

ItemsProps Tviseba siis elementis marTvis saSualebas

39
iZleva. elementi mocemulia saxeliT an striqonis
indeqsiT. (0 dan dawyebuli).

ItemsProps masivi Seicavs TItemsProps klasis obieqtebs,


romelic aRwers mimarTvas Sesabamis elementTan.

operatori:

ValueListEditor1.ItemProps[‘telefoni’].

EditMask := ‘!000-00-00;0;’; iZleva Svidcifra


telefonis nomris `niRabs~.

EditStyle = esPickList CamoSladi meniudan arCevis


saSualebas iZleva. Tu am dros ReadOnly = True, momxma-
rebels sxvagvarad mniSvnelobis Secvla ar SeuZlia.

With ValueListEditor1.ItemProps[‘ganyofileba’] do begin

EditStyle := esPickList;

PickList.Add(‘kadrebi’);

PickList.Add(‘buRalteria’);

PickList.Add(‘kancelaria’);

ReadOnly := true; end;

KeyAdd - siaSi daumatebs axal striqons.

KeyDelete waSlis striqons.

EditStyle = esEllipsis stili uzrunvelyofs redaqti-rebis

40
mravalwertiliani Rilakis dayenebas. masze daWerisas
amoqmeddeba OnEditButtonClick xdomiloba.

DisplayOptions Tviseba warmoadgens simravles, rome-


lic Seicavs elementebs: doColumnTitles -saTauris
striqoni dafiqsirebulia; doKeyColFixed - saxelebis
svetis sigane Seucvlelia, doAutoColResize-komponentis
siganis Secvlisas svetis sigane avtomaturad icvleba.

ganvixiloT ComboBox da ComboBoxEx komponentebi.

ComboBox komponentis gamosaxulebis stili gani-


sazRvreba Style TvisebiT, romelmac SeiZleba miiRos Semdegi
ZiriTadi Tvisebebi.

csDropDown -CamoSladi siaa erTnairi simaRlis

41
striqonebiT da redaqtirebis fanjriT. esSimple - sia
erTnairi simaRlis striqonebiT da redaqtirebis
fanjriT.

csDropDownList - CamoSladi sia erTnairi simaRlis


striqonebiT, romelic ar Seicavs redaqtirebis fanjaras.

csOwnerDrawFixed - CamoSladi sia erTnairi simaR-


lis triqonebiT, romelSic SeiZleba iasaxos
gamosaxuleba da teqsti.

csOwnerDrawVariable - CamoSladi sia sxvadasxva


simaRlis striqonebiT, romelSic SeiZleba gamosa-
xulebis da teqstis asaxva.

csOwnerDrawFixed da esOwnerDrawVariable stilis


SemTxvevaSi gamosaxuleba ixateba formaze, OnDrawItem
xdomilobaSi. csOwnerDrawVariable stilisas daxatvis
win aRiZvreba OnMeasureItem xdomiloba, sadac unda
mieTiTos elementebis simaRle.
momxmareblis an mis mier Setanili teqstis arCeva
ganisazRvreba Text Tvisebis mniSvnelobiT. ComboBox
elementebis sia ganisazRvreba ItemIndex TvisebiT.
Tu fanjaraSi moxda monacemebis redaqtireba, maSin
ItemIndex = -1, am niSniT SeiZleba ganisazRvros
redaqtireba Catarda Tu ara.

42
MaxLength Tviseba gansazRvravs redaqtirebis fanja-
raSi Setanil simboloebis maqsimalur raodenobas.
Tu ItemIndex = 0, maSin Sesatani simboloebis raodenoba
ar aris SezRuduli.
DropDownCount Tviseba uCvenebs striqonebis raode-
nobas, romelic gamoCndeba CamoSlad meniuSi, gadaxvevis
xazis gamoCenis gareSe.
ise rogorc ListBox komponentSi, Sorted Tviseba sias
moawesrigebs anbanis mixedviT. Tu Sorted = true, maSin
siaSi axali elementebi daemateba ara boloSi, aramed
anbanis mixedviT.
ComboBoxEx komponenti moxerxebulia imiT, rom igi
amartivebs siis elementebSi gamosaxulebis Setanas.
marTalia am komponents ara aqvs sortirebis saSualeba,
magram SeiZleba sakuTari gamosaxulebis Seqmna.
elementebSi asaxul gamosaxulebebs unda Seicavdes
ImageList komponenti. am komponentTan dakavSireba
SeiZleba Images TvisebiT. redaqtirebisas siis
elementebis Setana SeiZleba ItemsEx Tvisebis gverdiT
mravalwertilian Rilakze dawkapunebiT. gaixsneba
fanjara. Add New Rilaki axali elementis Setanis
saSualebas iZleva. Tu elements SeitanT da moniSnavT,
obieqtebis inspeqtoris fanjaraSi dainaxavT mis Tvisebas.
maT Soris ZiriTadia: Caption - teqsturi striqoni,
43
ImageIndex - indeqsi, romelic Seesabameba ImageList siis
piktogramebs, Indent - siis elementebis marcxena velidan
daZvraa.
Style Tviseba gansazRvravs elementis stils da tolia
csExDropDown, csExSimple an csExDropDownList.

2.6 cxrilebi - StringGrid komponenti


StringGrid komponenti warmoadgens cxrils, romelic
Seicavs striqonebs. es cxrili SeiZleba iyos wakiTxvadi
an redaqtirebadi. cxrils SeiZleba hqondes gadaxvevis
zolebi, amave dros svetebis da striqonebis saTaurebi
SeiZleba iyos fiqsirebuli da ar gadaixves.
StringGrid komponentis daniSnulebaa pirvel rigSi
teqsturi informaciis gamosaxva cxrilis saxiT. Tumca
SeiZleba grafikuli informaciis gamosaxvac.
komponentis ZiriTadi Tvisebebi:
Cells[ACol,ARow: Integer]: String - striqonia, romelsac
Seicavs ACol svetisa da ARow striqonis ujra.
Cols[Index: Integer]: TStrings - striqonebis siaa, romel-
sac Seicavs Index ideqsis sveti.
Rows[Index: Integer]: TStrings - striqonebis siaa,
romelsac Seicavs Index ideqsis striqoni.
Objects[ACol,ARow: Integer]: TObject - obieqt i
dakavSirebuli striqonTan romelsac Seicavs ACol da

44
ARow indeqsebiani ujra.
ColCount da RowCount Tvisebebi gansazRvraven
Sesabamisad svetebisa da striqonebis raodenobas.
FixedCols da FixedRows Tvisebebi gansazRvraven
dafiqsirebuli svetebisa da striqonebis raodenobas.
FixedColor gansazRvravs dafiqsirebuli ujrebis fonis
fers.
LeftCol da TopRow Tvisebebi uCvenebs gadaxvevis
momentSi pirveli svetisa da striqonis indeqss.
ScrollBars UuCvenebs gadaxvevis zolis arsebobas.
Options TvisebaSi SeiZleba avirCioT Semdegi brZanebebi:
fiqsirebuli horizontaluri da vertikaluri xazebis
arseboba (goFixedVertLine da goFixedHorzLine), fiqsire-
buli xazebis arseboba (goVertLine da goHorzLine),
striqonebisa da svetebis zomebis Secvlis saSualeba
(goColSizing, goRowSizing), striqonebisa da svetebis
gadaadgileba (goColMoving, goRowMoving) da sxva. erT-
erTi mniSvnelovani Tvisebaa goEditing - cxrilis
Semadgenlobis redaqtirebis SesaZlebloba.
Col da Row Tvisebebi uCveneben arCeuli ujris svetisa
da striqonis indeqss. SeiZleba mravali ujris
gamoyofac.
StringGrid komponentis xdomilobebidan unda aRiniSnos
OnSelectCell, romelic aRiZvreba ujrebis amorCevisas.
45
CanSelect bulis ti pis parametria, romelic gansazRv-
ravs ujrebis moniSvnis SesaZleblobas. Tu CanSelect
aqvs false mniSvneloba, maSin ujrebis amorCeva ar moxdeba.
operatori:
Label1.Caption := ‘arCeulia ujra’ + IntToStr(ARow)
+ ‘:’ + IntToStr(ACol); gadascems Label1Wdes arCeuli
ujris nomers, xolo operatori:
Label1.Caption := StringGrid1.Cells[ACol,ARow];
imave WdeSi gamoitans gamoyofili ujris teqsts.

2.7 ricxvis, TariRisa da drois asaxvis


komponentebi.
UpDown (gverdi Win32) Rilaki-mTvleli, Edit kompo-
nentebTan kombinaciiT cifruli informaciis Setanis
saSualebas iZleva. ZiriTadi Tvisebaa Position.
SpinEdit (Samples gverdi) redaqtirebis fanjara
Rilak-mTvlelTan kombinaciiT, TiTqmis igivea, rac Edit
da UpDown kombinacia. ZiriTadi Tvisebaa Value.
DateTimePicker (gverdi Win32)-TariRisa da drois
Setana. ZiriTadi Tvisebebia Date da Time.
MonthCalendar (gverdi Win32) -TariRis Setana
kalendris saSualebiT.
Calendar (Samples gverdi)-miTiTebul Tveze kalendris
asaxva.

46
DateTimePicker komponents aqvs TariRis Setanis meti
SesaZlebloba. ZiriTadi Tvisebebia-Month da Day.
F1Book (ActiveX gverdi)- ricxviTi informaciis
Setanisa da damuSavebis komponentia, Excel gverdebis
msgavsad.

2.8 UpDown da SpinEdit komponentebi.


aRniSnuli komponentebi uzrunvelyofen mTeli
ricxvebis Setanas.
UpDown komponenti, Edit redaqtirebis fanjaras
gardaqmnis komponentad, romelSic momxmarebeli airCevs
mTel ricxvs isrebiani RilakebiT. Tu ReadOnly Tvisebas
mivcemT true mniSvnelobas, momxmarebeli am velSi teqsts
veRar Seitans da SeZlebs mxolod ricxviTi arCevanis
gakeTebas. SpinEdit komponenti warmoadgens Edit-sa da
UpDown -is Serwymas.
UpDown komponentis ZiriTadi Tvisebaa Associate,
romelic isrebian Rilakebs akavSirebs Edit komponentTan.
formaze ganaTavseT Edit da UpDown , romlis Associate
Tvisebaze airCieT Edit1. UpDown komponenti ganTavsdeba
Edit-is gverdiT da Seerwymeba mas.
AllignButton Tviseba, romelmac SeiZleba miiRos
vdHorizontal da vdVertical mniSvnelobebi, gansazRvravs
Rilakebi ganTavsdeba horizontalurad Tu vertikalu-
47
rad. ArrowKeys Tviseba gansazRvravs komponenti marTvadi
iqneba Tu ara klaviaturidan isrebiani RilakebiT. Thou-
sands Tviseba gansazRvravs yoveli sami cifris Semdeg
iqneba Tu ara `probeli~.
Min da Max Tvisebebi iZlevian Sesabamisad ricxvis
minimalur da maqsimalur mniSvnelobebs. Increment
Tviseba iwvevs ricxvis cvlilebas Rilakze TiToeuli
daWerisas. Position Tviseba gansazRvravs ricxvis mimdinare
mniSvnelobas.
Wrap Tviseba gansazRvravs rogor moiqceva komponenti
maqsimaluri an minimaluri mniSvnelobis miRwevisas.
Tu Wrap = false ricxviTi mniSvneloba maqsimaluris zemoT
an minimaluris zemoT aRar Seicvleba, xolo Tu Wrap
= true, maSin maqsimaluri mniSvnelobis Semdegi momatebisas
velSi Cajdeba minimaluri mniSvneloba. aseve minimaluri
mniSvnelobis Semdgomi Semcirebisas velSi gamova
maqsimaluri mniSvneloba. e.i. ricxvebis cvalebadoba
wres Sekravs.
Tu UpDown -Tan dakavSirebul Edit-s ar mivcemT
ReadOnly = true mniSvnelobas, maSin momxmarebeli ricxvs
Seasworebs isrebis gareSe, magram cifrebis xeliT
Setanisas momxmarebelma SeiZleba SecdomiT Seitanos
simbolo. amitom aseT SemTxvevaSi umjobesia gamoviyenoT
SpinEdit komponenti.

48
SpinEdit komponents aqvs wina ganxiluli Tvisebebi,
mxolod maTi saxelebi gansxvavebulia, magaliTad Min,
Max, Position Tvisebebi iwodebian Sesabamisad: MinValue,
MaxValue, Value. im SemTxvevaSi, roca ar aris aucilebeli
Rilakebis arastandartuli ganlageba an ricxvTa
`wriuli~ cvlileba da msgavsi Tvisebebis gamoyeneba,
rekomendirebulia SpinEdit komponentiT sargebloba.

2.9 DateTimerPicker, MonthCalendar,


Calendar komponentebi
DateTimerPicker komponenti gamoiyeneba TariRisa da
drois SetanisaTvis. komponenti efeqturia CamoSladi
kalendaris gamotanis TvalsazrisiT. Kind Tviseba
gansazRvravs komponentis muSaobis reJims: dtkDate -
TariRis Setanas; dtkTime - drois Setanas.
TariRis Setanisas DateMode TvisebisaTvis SeiZleba
avirCioT dmComboBox, rac niSnavs CamoSladi
kalendaris arsebobas, xolo Tu avirCevT dmUpDown
mniSvnelobas, niSnavs momateba moklebis Rilakebis
arsebobas. TariRis formatis arCeva SeiZleba DateFormat
TvisebiT, romelmac SeiZleba miiRos mokle formati-
dfShort, sruli formati - dfLong.
usityvod, TariRis mniSvneloba SeiZleba obieqtebis
inspeqtorze aRiniSnos Date TvisebiT.
49
Date Tvisebis striqonad gardaqmnisaTvis gamoiyeneba
DateToStr funqcia. magaliTad operatori:
Memo1.Lines.Add(‘Date: ‘ + DateToStr(DateTimePicker1.
Date));
Memo1-is fanjaraSi daumatebs striqons: `TariRi:
19.04.2003~;
TariRis Setanisas SeiZleba avirCioT MaxDate da
MinDate mniSvnelobebi, romlebic Seesabamebian
maqsimalur da minimalur TariRs, romelic SeiZleba
airCios momxmarebelma.
dtkTime drois Setanis reJimSi momxmareblis mier
Setanili mniSvneloba aisaxeba Time TvisebaSi, romlis
ti pia TDateTime. drois striqonad gardaqmna SeiZleba
TimeToStr funqciiT.
MonthCalendar komponenti msgavsia DateTimePicker
komponentis, muSaobs TariRis Setanis reJimSi. Tumca
aq gvxvdeba damatebiTi SesaZleblobanic. SeiZleba
gvqondes TariRis mravali arCevani (MultiSelect Tviseba),
SeiZleba naCvenebi iqnas kviris nomeri wlis dasawyisidan.
(WeekNumbers Tviseba), SeiZleba kalendarze kviris
pirveli dRis Cveneba (FirstDayOfWeek Tviseba) da a.S.
Calendar komponenti iZleva erTi Tvis kalendars. Date
Tvisebis nacvlad aq gaTvaliswinebulia calkeuli
Tvisebebi: Year-weli; Month-Tve; Day-dRe. kalendris

50
ekranze asaxvisaTvis unda mivceT Month da Year-s
Sesabamisi mniSvnelobebi, Tu gvinda mimdinare Tvis
kalendris Seqmna VseCurrentDate Tvisebas unda mivceT
true mniSvneloba. StartOfWeek Tviseba iZleva dRes,
romliTac iwyeba kvira. dumiliT mniSvneloba aris 0-
kvira, rogorc es miRebulia dasavleTis kalendarze.
CvenTvis moxerxebulia StartWeek = 1, rac niSnavs, rom
kvira iwyeba orSabaTidan.

2.10 F1Book komponenti


es komponenti danarTze Excel-is ti pis cxrilis
agebis saSualebas iZleva. cxrilis mixedviT SeiZleba
diagramis ageba.
F1Book komponenti ganaTavseT ekranze da daawkapuneT
masze Tagvis marjvena RilakiT. airCieT WorkBook
Designer. cxrilis Seqmna SeiZleba Excel-is msgavsad.
diagramis asagebad unda moiniSnos ujrebi, romlis
mixedviTac aigeba diagrama da aWerT diagramis Sesabamis
Rilaks. amis Semdeg kursoriT aCveneT CarCo, romelSic
aisaxeba diagrama. gamoCndeba dialoguri fanjara,
romelSic SeiZleba diagramis ti pisa da aucilebeli
atributebis arCeva.

51
2.11 ierarqiuli monacemebis asaxvis
komponentebis sia
ierarqiul; monacemebad iTvleba dawesebulebis
struqtura, rTuli proeqtis struqtura, dokumentaciis
Semadgenloba da a.S. ganvixiloT msgavsi informaciis
asaxvis komponentebis sia:
TreeView (gverdi Win32) ierarqiuli monacemebis
struqturis daTvaliereba. Windows 95/98/2000/xp
stilSi.
OutLine (gverdi Win 3.1) Windows 3.X stilis
ierarqiuli monacemebis struqturis daTvaliereba.
ListView (gverdi Win32) siebis svetebSi an piktogramis
saxiT asaxva.

2.12 TreeView, OutLine monacemebis xis


struqturis saxiT asaxvis komponentebi.
ierarqiuli informacia SeiZleba iyos sxvadasxva
saxis. xis calkeul kvanZs SeiZleba daukavSirdes
garkveuli monacemebi.
TreeView komponentis SesaZleblobebi ufro farTea,
vidre OutLine komponentis. amasTan TreeView 32 Tan-
rigiani komponentia, OutLine ki 16 Tanrigiani.
TreeView-is ZiriTadi Tvisebaa Items, romelic Seicavs
xis kvanZebis Sesaxeb informacias. magaliTad

52
TreeView.Items[1] es aris xis kvanZi 1 indeqsiT(xis
meore kvanZi). TiToeuli kvanZi aris TTreeNodes ti pis
obieqti, Tavisi TvisebebiT da meTodebiT.
redaqtirebis procesSi xis formireba xorcieldeba
fanjaraSi, romlis gamotana SeiZleba TreeView
komponentze orjer dawkapunebiT an Items Tvisebis
gverdiT mravalwertilian Rilakze daWeriT.
New Item Rilaki xeze axali kvanZis damatebis
saSualebas iZleva.
New SubIten Rilaki xeze Svili kvanZis damatebis
saSualebas iZleva.
Delete waSlis xis moniSnul kvanZs. Load Rilaki
failidan xis struqturis CatvirTvis saSualebas iZleva.
53
xis struqturis fails SeiZleba hqondes Semdegi
saxe:
dawesebuleba
ganyofileba 1
ganyofileba 2
ganyofileba 3
marTva
administracia
buRalteria
xis TiToeuli axali kvanZisaTvis fanjris Item
Properties panelze SeiZleba mieTiTos mTeli rigi Tvise-
bebi. pirvel rigSi es aris Text Tviseba, warwera romelic
gamova xis mocemul kvanZTan. Image Index da Selected In-
dex Tvisebebi gansazRvraven piktogramis indeqss. es
indeqsi Seesabameba gamosaxulebis sias, romelic inaxeba

54
ImageList komponentSi. indeqsi iwyeba 0-dan. Tu indeqss
mivcemT -1 mniSvnelobas, piktograma ar aisaxeba.
State Index mocemul kvanZze meore piktogramis
damatebis saSualebas iZleva. es SeiZleba emsaxurebodes
kvanZis damatebiT xasiaTs. State Index-Si miTiTebuli
indeqsi Seesabameba TreeView komponentis State Images
Tvisebis calkeul ImageList komponentis gamosaxulebis
sias.
Cven ganvixileT xis formireba proeqtirebis procesSi.
xis formireba da gadawyoba SeiZleba danarTis
Sesrulebis drosac. amisaTvis gamoiyeneba TTreeNodes
ti pis obieqtebis mTeli rigi meTodebi.

2.13 ListView komponenti


ListView komponenti monacemebis siebis, cxrilis didi
da mcire piktogramebis saxiT gamosaxvis saSualebas
iZleva.
informaciis asaxvis stili ganisazRvreba ViewStyle
TvisebiT, romelic SeiZleba SevqmnaT proeqtirebis
procesSi an programulad Sesrulebis procesSi. Tvisebas
SeiZleba hqondes mniSvnelobebi: vsIcon-didi `ikonebi~,
vsSmallIcon-mcire `ikonebi~, vsList-siebi, vsReport-cxrili.
ganvixiloT ListView komponentis ZiriTadi Tvisebebi
da meTodebi.
55
gaxseniT axali danarTi da gadaitaneT masze ListView
komponenti. am komponentis ZiriTadi Tvisebaa Items,
romelic gansazRvravs asasaxi informaciis Semadgenlo-
bas, igi gamoiZaxeT Items Tvisebis gverdiT mravalwerti-
liani RilakiT. axali kvanZebi Seiqmneba New Item, xolo
Svili kvanZebi New SubItem RilakebiT. mxolod Svili
kvanZis arsi sxvaa: es aris informacia, romelic
gamoCndeba vsReport reJimSi, cxrilis saxiT.
redaqtorSi aRniSneT elementebis da Svili kvanZebis
raRac raodenoba. maTi arsi konkretul amocanazea
damokidebuli. es SeiZleba iyos raRac nakeToba da
saamqro, sadac is muSavdeba, an SeiZleba iyos saqoneli
da punqti, sadac igi unda gaigzavnos.
TiToeuli kvanZisaTvis unda gakeTdes Caption warwera,
romelic piktogramasTan gamoCndeba vsReport reJimSi.
ImageIndex Tviseba gansazRvravs piktogramis indeqss.
indeqsi Seesabameba gamosaxulebis sias, romelic inaxeba
ImageList-is calkeul komponentSi. indeqsi iwyeba 0-iT
Tu naCvenebia indeqsi -1, maSin piktogramebi ar aisaxeba.
State Index Tviseba Item Properties panelze, mocemul
obieqtze meore piktogramis damatebis saSualebas iZleva.
State Index indeqsi Seesabameba gamosaxulebis sias,
romelic inaxeba ListView komponentis StateImages TvisebaSi
ImageList-is calkeul komponentSi.

56
avagoT danarTi, romelic momxmarebels ListView
fanjaraSi siis saxis Secvlis saSualebas miscems, garda
amisa vsIcon da vsSmallIcon stilSi piktogramis
gadaadgilebis saSualeba iqneba. aseTi danarTis
realizebisaTvis saWiroa MainMenu komponenti. aq
gamoyenebuli iqneba Drag&Drop teqnologia. (rasac
SemgomSi ufro dawvrilebiT ganvixilavT).
SeasruleT Semdegi moqmedebebi:
- SeitaneT danarTze menius ganyofilebebi, didi
niSnebi (saxeliT MIcon), mcire niSnebi (saxeliT
MSmallIcon) da cxrili (saxeliT MReport).
- yvela am nawilebisaTvis daayeneT nulisagan
gansxvavebuli GroupIndex indeqsi xolo RadioItem true
mdgomareobaSi.
akrifeT Semdegi brZanebebi am nawilebze dawkapunebisas:
procedure TForm1.MIconClick(Sender: TObject);
begin
ListView1.ViewStyle := vsIcon;
MIcon.Checked := true;
ListView1.DragMode := dmAutomatic;
end;
procedure TForm1.MSmallIconClick(Sender: TObject);
begin
ListView1.ViewStyle := vsSmallIcon;
57
MSmallIcon.Checked := true;
ListView1.DragMode := dmAutomatic;
end;
procedure TForm1.MListClick(Sender: TObject);
begin
ListView1.ViewStyle := vsList;
MList.Checked := true;
ListView1.DragMode := dmManual;
end;
procedure TForm1.MReportClick(Sender: TObject);
begin
ListView1.ViewStyle := vsReport;
MReport.Checked := true;
ListView1.DragMode := dmManual;
end;
dawereT ListView komponentis OnDragOver da OnDrag-
Drop xdomilebebis damuSavebis programebi:
procedure TForm1.ListView1DragOver(Sender, Source:
TObject; x, y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := (Source = ListView1);
end;
procedure TForm1.ListView1DragDrop(Sender, Source:
TObject; x,y: Integer);

58
begin
ListView1.Selected.Position := Point(x,y);end;
aRniSnulis Sesrulebis Semdeg obieqtebi gadaadgil-
debian Tagvis saSualebiT, rac miekuTvneba Drag&Drop
meTods, maTi mowesrigebisaTvis saWiro gaxdeba Arrange
meTodis gamoyeneba:
procedure Arrange(code: TListArrangement);
rac awesrigebs piktogramebs vsIcon da vsSmallIcon
reJimebSi. Code parametri gansazRvravs mowesrigebis
wess.
arAlignBottom-qveda kideze gasworeba;
arAlignLeft-marcxena kideze gasworeba;
arAlignRight-marjvena kideze gasworeba;
arAlignTop-zeda kideze gasworeba;
arDefault-usityvod gasworeba(zeda kideze);
arSnapToGrid-TiToeuli piktogramis badis uaxloes
kvanZTan ganTavseba.
danarTze SegiZliaT ganaTavsoT nawili `gasworeba~
da daweroT misTvis operatori:
ListView1.Arrange(arAlignTop);
menius am brZanebis arCevisas yovelTvis mowesrigdeba
piktogramebi.
ListView-is erT-erTi saintereso Tvisebaa WorkAreas,
romelic gamoyofs samuSao ares, sworkuTxa CarCoTi,
59
WorkAreas Tviseba warmoadgens indeqsirebul sias Items
msgavsad. Tu WorkAreas carieli siaa, maSin piktogramebis
mowesrigeba warmoebs ListView-is yvela klientis areSi.
axali samuSao ares damateba xdeba Add meTodiT. Rect
Tviseba TRect ti pisaa, igi gansazRvravs ares sazRvrebs
DisplayName Tviseba gansazRvravs CarCos qvemoT
warweras. CarCoc da warwerac aisaxeba Tu Show-
WorkAreas Tviseba true mdgomareobaSia.
qvemoT moyvanilia operatorebi, romlebic qmnian or
samuSao ares:
ListView1.WorkAreas.Add( );
ListView1.WorkAreas.Items[0].Rect :=
Rect(20,0,ListView1.ClientWidth div 4 + 20,
ListView1.ClientHeight - 20);
ListView1.WorkAreas.Items[0].DisplayName := ‘are 0’;
ListView1.WorkAreas.Items[0].Color := clRed;
ListView1.WorkAreas.Add( );
ListView1.WorkAreas.Items[1].Rect :=
Rect(ListView1.ClientWidth div 4 + 20,
0, (ListView1.ClientWidth div 4)*3+20,
ListView1.ClientHeight - 20);
ListView1.WorkAreas.Items[1].DisplayName := ‘are 1’;
ListView komponentis gamoyeneba SeiZleba sruliad
gansxvavebuli informaciis asaxvisaTvis, kerZod failebisa

60
da katalogebis asaxvisaTvis.

2.14 grafikuli informaciis amsaxveli


komponentebis sia.
grafikuli informaciis asaxvisaTvis gamoiyeneba
Semdegi komponentebi:
Image (gverdi Additional) - gamoiyeneba piktogramebis,
orobiTi matricis da metafailebis grafikuli
asaxvisaTvis;
PainBox (gverdi System) - gamoiyeneba formaze saxatavi
ares gamosayofad;
DrawGrid (gverdi Additional) - gamoiyeneba striqonebsa
da svetebSi arateqsturi monacemebis asaxvisaTvis;
Chart (gverdi Additional) - komponenti ekuTvnis
TeeChart komponentebis ojaxs, romelic gamoiyeneba
diagramebis da grafikebis Sesaqmnelad;
Chartfx (gverdi ActiveX) - diagramebisa da grafikebis
redaqtori;
F1Book (gverdi ActiveX) - ricxviTi informaciis
Setanisa da damuSavebis komponenti;
VtChart (gverdi ActiveX) - diagramis agebis fanjara.
grafikuli informaciis Setana da asaxva SeiZleba
fanjris nebismier komponentze, romelsac aqvs Canvas
Tviseba.
61
2.15 DrawGrid da StringGrid
komponentebi
DrawGrid komponenti gamoiyeneba danarTSi cxrilis
Sesaqmnelad, romelic Seicavs grafikul gamosaxulebebs.
es komponenti StringGrid komponentis msgavsia. amitom
mas aqvs StringGrid komponentis yvela Tviseba garda
Cells, Cols, Rows, Objects Tvisebebisa.
DrawGrid da StringGrid komponentebs aqvT Canvas
Tviseba, romelzec SeiZleba ganTavsdes gamosaxuleba
CellRect meTodiT:
function CellRect(ACol, ARow: Longint): TRect;
sadac ACol da ARow svetisa da striqonis indeqsebia,
0-dan dawyebuli, romelTa gadakveTaze ganTavsebulia
ujra. es funqcia Sedegad iZleva kanvis ares, sadac
unda daixatos saWiro gamosaxuleba. magaliTad
operatori:
DrawGrid1.Canvas.CopyRect(DrawGrid1.CellRect(1,1),
BitMap.Canvas,Rect(0,0,BitMap.Height,BitMap.Width));
BitMap komponentidan CopyRect meTodiT gadakopirdeba
gamosaxuleba DrawGrid1 cxrilis (1) ujraSi. es ujra
cxrilSi aris zemodan da marcxnidan meore, radganac
indeqsi iwyeba nulidan.

62
2.16 Shape komponenti
Shape komponenti warmoadgens sxvadasxva geometriul
figuras. komponentis ZiriTadi Tvisebebia:
stRectangle - sworkuTxedi;
stSquare - kvadrati;
stRoundRect - mrgvalkuTxa oTxkuTxedi;
stRoundSquare - mrgvalkuTxa kvadrati;
stEllipse - elifsi;
stCircle - wre;
komponentis arsebiTi Tvisebaa Brush (funji), es
Tviseba TBrush tipisaa, romelsac aqvs rigi qveTvisebebi.
maT Soris: feri(Brush.Color) da stili(Brush.Style). Pen
Tviseba gansazRvravs xazis stils.

2.17 Chart komponenti


Chart komponenti gamoiyeneba diagramebisa da
grafikebis asagebad. igi warmoadgens Series obieqtebis
konteiners. TiToeuli aseTi obieqti warmoadgens
monacemebis serias, romlebic xasiaTdebian asaxvis
gansazRvruli stiliT: grafikiT an diagramiT.
moaTavseT formaze erTi an ori Chart komponenti
da daakvirdiT obieqtebis inspeqtorze Tvisebebs.
AllowPanning - momxmarebels grafikis garkveul nawilze
dakvirvebis saSualebas aZlevs Tagvis marjvena Rilakze
63
daWeriT. SesaZlo mniSvnelobebia: pmNone - gadaxveva
akrZalulia, pmHorizontal, pmVertical an pmBoth - gadaxveva
Sesabamisad horizontalurad, vertikalurad an orive
mimarTulebiT.
AllowZoom - momxmarebels gamosaxulebis masStabis
Secvlis saSualebas aZlevs, diagramis an grafikis
fragmentis Tagvis kursoriT amoWris gziT, Tu
fragmentis CarCo moixazeba marjvniv da qveviT, fragmenti
gaiweleba grafikis mTel velze. Tu CarCo moixazeba
zemoT da marcxniv, aRdgeba sawyisi masStabi.
Title - gansazRvravs diagramis saTaurs;
Foot - gansazRvravs diagramis qvemoT warweras, romlis
teqstic ganisazRvreba Text qveTvisebiT;
Frame - diagramis garSemo Semoavlebs CarCos;
Legend - diagramis legenda - aRniSvnebis sia;
MarginLeft, MarginRight, MarginTop, MarginBottom -
marcxena, marjvena, zeda da qveda velis mniSvneloba;
BottomAxis, LeftAxis, RightAxis - gansazRvraven qveda,
marcxena, marjvena RerZebis xasiaTs.
LeftWall, BottomWall, BackWall - gansazRvravs grafikis
samganzomilebiani asaxvis marcxena, qveda da ukana
sazRvrebis xasiaTs;
SeriesList - komponentze asaxuli monacemebis seriis
sia;

64
View3d - uaryofs an mxars uWers diagramis
samganzomilebian asaxvas;
View3DOptions - samganzomilebiani asaxvis daxasia-
Tebebi. (opciebi);
Chart3DPercent - samganzomilebis masStabi.

Clear meTodi asufTavebs serias adre Setanili


mniSvnelobebidan.
meTodi Add:
Add(const AValue: Double; const ALabel: String;
ACol: TCol)
es meTodi diagramaze daamatebs axal wertils. AValue
65
parametri Seesabameba damatebul mniSvnelobas, ALabel
parametria, romelic aisaxeba diagramaze da legendaze,
AColor - feri. ALabel parametri araaucilebelia, igi
SeiZleba iyos carieli:
meTodi AddXY:
AddXY(Const AXValue, AYValue: Double;
Const ALabel: String; AColor: TColor);
funqciis grafikze daamatebs axal wertils. AXValue
da AYValue parametrebi Seesabamebian arguments da
funqcias. ALabel da AColor parametrebi igivea, rac
Add meTodSi.
procedura, romelic Cvens magaliTSi uzrunvelyofs
monacemebis CatvirTvas, eqneba saxe:
Const A1 = 155;
A2 = 251;
A3 = 203;
A4 = 404;
Var i: Word;
begin
With Series1 do
begin
Clear;
Add(A1,’ganyofileba 1’, clYellow);
Add(A2,’ganyofileba 2’, clBlue);

66
Add(A3,’ganyofileba 3’, clRed);
Add(A4,’ganyofileba 4’, clPurple);
end;
Series2.Clear;
Series3.Clear;
for i := 0 to 100 do begin
Series2.AddXY(0.02 * pi * i,sin(0.02 * pi * i), ‘’, clRed);
Series3.AddXY(0.02 * pi * i, cos(0.02 * pi * i), ‘’, clBlue);
end;
end;
es procedura unda CaerTos romelime Rilakis
dawkapunebisas, menius brZanebaSi an ubralod formis
OnCreate xdomilebaSi. Clear operatori saWiroa monace-
mebis ganaxlebisaTvis. am operatorebis gareSe Add da
AddXY meTodebis xelaxali Sesruleba mxolod
daamatebs axal wertilebs, winas waSlis gareSe.
Tu gaviTvaliswineT monacemebisaTvis ori saxis
diagrama Pie da Bar (Series1, Series2) SegviZlia SevitanoT
procedura, romelic Secvlis diagramis ti ps. es
procedura SeiZleba Setanil iqnas Rilakis OnClick
xdomilobaze, menius brZanebaSi an Chart komponentze.
imisaTvis, rom monacemebi CaitvirTos Series4-Si da es
diagrama dasawyisisaTvis iyos uxilavi, wina proce-
durebis boloSi unda Caisvas operatorebi:
67
Series4.Assgn(Series1);
Series4.Active := false;
pirveli Series1-dan monacemebs gadawers Series4-Si.
meore operatori Series4-s gaxdis uxilavs. diagramis
ti pis cvlas axorcielebs procedura:
Series4.Active := not Series1.Active;
Series4.Active := not Series4.Active;

2.18 multimediisa da sxva informaciis


asaxvis komponentebi: Animate, MediaPlayer,
ProgressBar, Gauge.
Animate (gverdi Win32) gamoiyeneba uxmo kli pebis
asaxvisaTvis;
MediaPlayer (gverdi System) gamoiyeneba xmovani da
videofilmebis Sesaqmnelad;
ProgressBar (gverdi win32) gamoiyeneba moZraobis
procesis asaRwerad;
Gauge (gverdi Samples) komponenti, romelic
gamoiyeneba moZraobis procesis indikatoris Sesaqmnelad,
saxazavis, teqstis an seqtoruli diagramis saxiT.
ganvixiloT ProgressBar da Gauge komponentebi. am
komponentebis Tvisebebi erTmaneTis msgavsia.
Max(ProgressBar); MaxValue(Gauge)- poziciis maqsi-
maluri mniSvnelobaa, romelic Seesabameba asaxvis

68
procesis dasasruls, dumiliT mocemulia 100 procentiT;
Min(ProgressBar); MinValue(Gauge)- poziciis sawyisi
mniSvnelobaa, romelic Seesabameba asaxvis procesis
dasawyiss;
Position(ProgressBar); Progress(Gauge)- poziciaa mTeli
procesis manZilze, minimaluridan maqsimaluramde;
Smooth(ProgressBar)-procesis uwyveti an diskretuli
asaxvaa; ProgressBar-is horizontalur komponentze
Smooth = true, vertikalurze Smooth = false;
Step(ProgressBar)-poziciis nazrdia, romelic gamoyene-
bulia StepIt meTodSi. dumiliT mniSvnelobaa - 10;
Orientation(ProgressBar)-komponentis skalis orien-
taciaa: pbHorizontal-horizontaluri, pbVertical-vertika-
luri. Tu mocemulia pbVertical orientacia komponenti
unda gavweloT vertikalurad;
ForeColor(Gauge)-Sevsebis feria;
ShowText(Gauge)-diagramis fonze procentis
teqsturi asaxvaa;
Kind(Gauge)-diagramis ti pia: gkHorizontalBar-hori-
zontaluri zoli, gkVerticalBar-vertikaluri zoli,
gkPie-wriuli diagrama, gkNeedle-seqtoruli diagrama,
gkText-teqstiT asaxva.
procesis msvlelobis asaxva SeiZleba ganxorcieldes
ProgressBar-Si Position an Gauge-Si Progress mniSvnelobis
69
micemiT. magaliTad, Tu procesis mTeli xangrZlivoba
xasiaTdeba Count cvladis mTeli mniSvnelobiT, xolo
Sesrulebuli nawili Current mTeli cvladiT, maSin
diagramis pozicia, Tu minimaluri da maqsimaluri
mniSvnelobebia 0 da 100 (mniSvnelobebi dumiliT)
SeiZleba gamoisaxos operatorebiT:
ProgressBar1.Position := 100*Current div Count;
an
Gauge1.Progress := 100*Current div Count;
Sesabamisad ProgressBar da Gauge-saTvis.
SeiZleba sxvagvaradac: jer mivceT Count toli
maqsimaluri sidide, Semdeg procesis msvlelobaSi mivceT
Current-is toli pozicia.
magaliTad:
Gauge1.MaxValue := Count;
...
Gauge1.Progress := Current;
ProgressBar komponents aqvs ori meTodi, romliTac
SeiZleba visargebloT poziciis asaxvisaTvis.
StepBy(Delta: Integer)-poziciis gazrda Delta-Ti, StepIt
poziciis gazrda erTi bijiT, romlis sidide mocemulia
Step TvisebiT.

70
2.19 Button da BitBtn Rilakebi.
Button martivi da xSirad gamoyenebadi Rilakia.
iSviaTad gamoiyeneba BitBtn Rilaki. masze SeiZleba aisaxos
gamosaxuleba. am Rilakebs meTodebis, Tvisebebisa da
xdomilobebis umetesoba erTnairi aqvT.
Tviseba Cancel = true niSnavs, rom Esc Rilakis daWera
igivea, rac am Rilakze dawkapuneba. gauqmeba RilakisaTvis
umjobesia es Tviseba iyos true mdgomareobaSi.
Default Tviseba true mdgomareobaSi, gansazRvravs rom
enter-is daWera am Rilakze dawkapunebis eqvivalenturi
iqneba.
ModalResult Tviseba gamoiyeneba modaluri forme-
bisaTvis. Cveulebriv danarTSi am Tvisebis mniSvneloba
iqneba mrNone.
BitBtn Rilakze gamosaxuleba miiReba Glyph TvisebiT.
mravalwertilian Rilakze daWerisas gamova fanjara,
masSi Load Rilakze daWeriT Tqven gamoiZaxebT naxatebis
fails, sadac SegiZliaT airCioT .bmp faili, romelic
Seicavs sasurvel gamosaxulebas. saerTod,
gamosaxulebebi ganTavsebulia katalogSi:
\Images\Buttons, xolo TviT katalogi ganTavsebulia
\Program Files\Borland\Borland Shared
gamosaxulebis arCevis Semdeg aWerT Ok-s,
gamosaxuleba gamoCndeba Rilakze warweris marcxniv.
71
gamosaxulebis umetesoba iyenebs or piktogramas.
piktogramebis ricxvis gageba SeiZleba NumGlyphs
TvisebiT.
Rilakze gamosaxulebis da warweris ganTavseba
ganisazRvreba Margin, Layout da Spacing TvisebebiT. Tu
Margin Tviseba udris -1 - s, maSin gamosaxuleba da
warwera ganTavsdeba Rilakis SuaSi. warwerasTan
mimarTebaSi gamosaxulebis mdebareoba ganisazRvreba
Layout TvisebiT, romelmac SeiZleba miiRos Semdegi
mniSvnelobebi:
blGlyphLeft (marcxniv, mniSvneloba dumiliT),
blGlyphRight (marjvniv), blGlyphTop(zemoT), blGlyph-
Bottom (qvemoT), Tu Marjin > 0, maSin Layout mniSvne-
lobaze damokidebulebiT gamosaxulebis warwera
ganTavsdeba Rilakis kididan imdeni piqseliT, ramdenic
mocemulia Margin mniSvnelobiT.
Spacing Tviseba iZleva piqselebis raodenobas,
romliTac gamoiyofa erTmaneTisagan gamosaxuleba da
warwera. dumiliT, Spacing = 4. Tu mivcemT Spacing = 0,
gamosaxuleba da warwera ganTavsdeba mWidrod, interva-
lis gareSe. Tu mivcemT Spacing = -1, teqsti gamoCndeba
SuaSi naxatsa da Rilakis kides Soris.
Tviseba Kind gansazRvravs Rilakis ti ps. dumiliT
misi mniSvnelobaa bkCustom. magram SeiZleba davayenoT

72
Semdegi ti pebi: bkOk, bkCancel, bkHelp, bkYes,bkNo,
bkClose, bkAbort, bkRetry, bkIgnore, bkAll.

2.20 Rilaki fiqsaciiT


SpeedButton
SpeedButton Rilaks aqvs piktogramis asaxvis SesaZ-
lebloba da gamoiyeneba rogorc Cveulebrivi Rilaki
an rogorc daWerili mdgomareobis fiqsaciis Rilaki.
am Rilaks aqvs Caption(warwera) Tviseba, magram igi
carielia, vinaidan am Rilaks aqvs gamosaxuleba, romelic
mocemulia Glyph TvisebiT. NumGlyph gansazRvravs
gamoyenebuli piktogramebis raodenobas. Layout da Margin
Tvisebebi gansazRvraven gamosaxulebis ganTavsebas, xolo
Spacing Tviseba gamosaxulebasa da warweras Soris
intervals.
SpeedButton Rilakis gansakuTrebuli Tvisebebia:
GroupIndex, AllowAllup da Down. Tu GroupIndex = 0,
maSin Rilaki Button da BitBtn msgavsad muSaobs. Tagvis
isriT daWerisas Rilaki Caiweva, xolo aSvebisas igi
daubrundeba Tavis mdgomareobas.
Tu GroupIndex > 0 da AllowAllup = true, maSin Rilaki
daWerisas Caiweva da xelmeored daWeramde aseve darCeba.
Tu Down Tviseba true mdgomareobaSia, maSin Rilakis
sawyisi mdgomareoba aris `daWerili~.
73
2.21 radioRilakebis jgufebi.
RadioGroup, RadioButton da GroupBox
komponentebi
radioRilakebi qmnian jgufs, romelTagan erT-erTis
arCeva SeiZleba. is gamoiyeneba ramodenime alternatividan
erTis asarCevad.
RadioGroup warwera Seicvleba Caption TvisebiT. masSi
ganTavsebuli Rilakebis raodenoba ganisazRvreba Items
TvisebiT, romlis ti pia TStrings. Rilakebi SeiZleba
ganTavsdes ramodenime svetad, (araumetes 17) Tu
davayenebT Columns Tvisebas. dumiliT, Columns = 1,
Rilakebi ganTavsdeba erTmaneTis qvemoT. Tu romeli
Rilaki airCia momxmarebelma, ganisazRvreba ItemIndex
TvisebiT, romelic uCvenebs arCeuli Rilakis indeqss.
indeqsi iwyeba nulidan. dumiliT ItemIndex = -1, rac
niSnavs, rom arcerTi Rilaki ar aris arCeuli.
zogjer saWiroa Rilakebis araregulirebuli
ganlageba, ris saSualebasac iZleva RadioButton
komponentebi, romlebic GroupIndex-iT arian dajgu-
febulni. GroupBox aris mmarTveli elementebis
konteineri. RadioButton-is Tvisebaa Caption, romelic
Seicavs warweras, xolo Allignment Tviseba gansazRvravs
Tu sad iqneba es warwera: taLeftJustify-marcxniv,
taRightJustify-marjvniv. Checked Tviseba uCvenebs momxma-

74
reblis mier arCeulia Tu ara es Rilaki.
RadioButton Rilaki SeiZleba ganTavsdes sxva ti pis
panelze an pirdapir formaze.

2.22 indikatorebi
CheckBox da CheckListbox
CheckBox gamoiyeneba sxvadasxva opciebis CasarTavad
da gamosarTavad. man SeiZleba miiRos sami mdgomareoba:
moniSnuli(Cans niSani), Sualeduri(indikatoris
nacrisferi fanjara da nacrisferi niSani) da
mouniSnavi(indikatoris carieli fanjara). am sam
mdgomareobas Seesabameba komponentis State Tviseba:
cbChecked, cbGrayed, cbUnchecked. es sami mdgomareoba
dasaSvebia Tu AllowGrayed = true. im SemTxvevaSi Tu
AllowGrayed = false, dasaSvebia mxolod ori mdgomareoba:
moniSnuli da mouniSnavi.
CheckBox komponentze warwera keTdeba Caption
TvisebiT, xolo misi daSoreba indikatoris mimarT
xorcieldeba Alignment TvisebiT.
indikatoriani komponentia aseve CheckListBox,
romelic ListBox-is msgavsia, mxolod siis yovel
komponentTan aris indikatori. CheckListBox komponentis
Tvisebebia: State da Checked. es orive Tviseba SeiZleba
ganvixiloT rogorc indeqsirebuli masivi, romlis
75
TiToeuli elementi Seesabameba striqonis indeqss.
operatorebi:
CheckListBox1.Checked[1] := true;
CheckListBox1.State[2] := cbGrayed;
CheckListBox1 siis meore striqonis imdikators
daayenebs CarTul mdgomareobaSi, xolo mesame striqonis
indikators Sualedur mdgomareobaSi.
operatori:
for i := 0 to CheckListBox1.Items.Count-1 do if
CheckListBox1.Checked[i] then ......
amowmebs siis yvela indikatoris mdgomareobas da
arCeulis mimarT asrulebs raRac moqmedebas.
CheckListBox komponents aqvs OnClickCheck xdomi-
leba, romelic amuSavdeba indikatoris yoveli Secvlisas.

2.23 mcocavebi da gadaxvevis zolebi.


TrackBar da ScrollBar komponentebi
TrackBar komponenti warmoadgens mcocav marTvis
elements, romelsac momxmarebeli gadaaadgilebs TagviT.
am komponentis saSualebiT SeiZleba xmis simaRlis,
gamosaxulebis zomis da sxva parametrebis daregulireba.
igi SeiZleba ganTavsdes vertikalurad,
horizontalurad, SeiZleba hqondes skala sxvadasxva

76
mxares.
komponentis ZiriTadi Tvisebaa Position. mcocavis
gadaadgilebisas SeiZleba Position mniSvnelobis wakiTxva,
aseT wakiTxvas uzrunvelyofs OnChange xdomileba,
romlis dammuSavebel programaSi SeiZleba Position
mniSvnelobis wakiTxva da misi gamoyeneba sxvadasxva
obieqtebis samarTavad.
Position mniSvneloba mTelia ricxvia, romlis
mniSvneloba icvleba SualedSi, romelic mocemulia
Min da Max TvisebebiT. dumiliT, Min = 0, Max = 10,
ase rom Position miiRebs mxolod 11 mniSvnelobas 0-
dan 10-mde. Tu mivcemT Max-s ufro met mniSvnelobas,
Sesabamisad gaizrdeba Position-is dasaSvebi mniSvnelobebi:
Min-Max diapazonSi.
Orientation Tviseba gansazRvravs mcocavis orientacias:
trHorizontal-horizontaluri, trVertical-vertikaluri.
TickMarks Tviseba uCvenebs skalis ganTavsebas komponen-
tis mimarT da miiRebs mniSvnelobebs: tmBottomRight-
qvemoT an marjvniv komponentis orientaciis mixedviT,
tmTopLeft-zemoT an marcxniv, tmBoth-orive mxares.
TickStyle Tviseba gansazRvravs skalis gamosaxulebas.
man SeiZleba miiRos mniSvnelobebi: tsAuto-skalis
avtomaturi gamosaxva, tsNone-skalis gareSe, tsManual-
skalis programuli daxatva SetTick meTodiT (Value: In-
77
teger), romelic skalis Wdes moaTavsebs Value sididis
Sesabamis poziciaSi. Wdeebi, romlebic Seesabamebian
skalis dasawyiss da dasasruls, avtomaturad ganTavs-
debian TickStyle = tsManual SemTxvevaSi.
rodesac TickStyle = tsAuto, skalis sixSire ganisazRv-
reba Frequency TvisebiT. es Tviseba iZleva Wdeebs Soris
Tu ramdeni Position dasaSvebi mniSvnelobaa. magaliTad,
Tu Frequency = 2, Wdeebi Seesabamebian poziciis yovel
meore mniSvnelobas.
LineSize da PageSize gansazRvraven ramdenad gadaadgil-
deba mcocavi Tu momxmarebeli masze zemoqmedebs isrebiani
Rilakebis an PageUp, PageDown RilakebiT klavia-
turidan.
SelStart da SelEnd Tvisebebi skalaze diapazonis
vizualuri gamoyofis saSualebas iZlevian.
ScrollBar komponenti mcocavis msgavia. es aris
gadaxvevis zoli, rogorc Windows-Si.
ScrollBar-is ZiriTadi Tvisebebia Position, Min da Max,
rogorc mcocavebis. Kind Tviseba gansazRvravs zolis
horizontalur da vertikalur mdgomareobas da
Sesabamisad iRebs mniSvnelobebs: sbHorizontal an sbVertical.
ScrollBar komponents aqvs sxva Tvisebebic: SmallChange
da LargeChange - `mcire~ daZvra zolis boloSi Rilakze
dawkapunebisas(an isrebiani RilakebiT) da `didi~ daZvra

78
gverdze gadaadgilebisas zolis gverdiT dawkapunebiT
(an PageUp, PageDown RilakebiT).
zolis gadaadgilebis xdomilebaa OnScroll. am
xdomilebis damuSavebis proceduras gadaecema ScrollPos
parametri.
gadaadgilebis parametri SeiZleba iyos: scLineUp,
scLineDown-`mcire daZvra~: gadaadgileba zemoT an
marcxniv da qvemoT an marjvniv, gadaxvevis zolze an
isrebian Rilakze daWerisas;
scPageUp, scPageDown- `didi daZvra~. gverdze
gadaadgileba morbenalis zolis gverdiT dawkapunebiT
an PageUp da PageDown RilakebiT.
scPosition - m o m x m a r e b e l m a gadaaadgila da
gaanTavisufla `morbenali~;
scTrack-momxmarebeli aadgilebs `morbenals~, scTop,
scBottom-`morbenali~ gadaadgilebulia Sesabamisad bolo
zeda an marcxena poziciaSi da bolo qveda an marjvena
poziciaSi.
scEndScroll-gadaadgilebis dasasruli.

79
2.24 saTaurebis komponentebi
HeaderControl da Header
HeaderControl da Header saTauris komponentebia,
romlis daxmarebiTac momxmarebeli gadaawyobs fanjrebs,
panels, sxva komponentebs, Secvlis maT zomebs.
suraTze naCvenebia fanjris mdgomareoba, saTaurebis
gadawyobis Semdeg.

dumiliT HeaderControl-is Align Tviseba udris alTop,


romelic uzrunvelyofs komponentis formis fanjris
zemoT ganTavsebas. magram es Tviseba SeiZleba Seicvalos
alNone-Ti da komponenti ganTavsdes nebismier sasurvel
adgilas.
HeaderControl komponentis ZiriTadi Tvisebaa Sections.
is warmoadgens THeaderSection ti pis obieqtebis sias,

80
romelTagan TiToeuli aRwers saTauris erT seqcias.
Sections Tvisebis gamoZaxebisas gaixsneba saTaurebis
redaqtoris fanjara.

Text TvisebaSi SeiZleba saTauris SerCeva. (es iqneba


`daxasiaTeba~ da `fotografia~). Alignment Tviseba
gansazRvravs teqstis gasworebas seqciis SigniT.
MinWidth da MaxWidth Tvisebebi gansazRvraven
Sesabamisad seqciis minimalur da maqsimalur siganes
piqselebSi. mxolod am sazRvrebSi SeuZlia Secvalos
seqciis sigane momxmarebels Tagvis kursoriT. dumiliT
siganis mniSvneloba mocemulia Width TvisebiT. AutoSize
Tviseba uzrunvelyofs seqciis zomis avtomatur
dayenebas. Tu yvela seqciaSi davayenebT AutoSize = true,
maSin yvela seqciis zoma saTauris saerTo siganidan
81
gamomdinare avtomaturad SeirCeva. saTauris siganis
Secvlisas, yvela seqciis sigane Seicvleba. ase, rom
AutoSize = true moxerxebulia mxolod bolo seqciisaTvis.
ImageIndex Tviseba iZleva piktogramas, romelic
SeiZleba moTavsdes saTaurSi. ImageIndex es aris
gamosaxulebis indeqsi, romelic inaxeba ImageList
komponentSi. HeaderControl-is Images TvisebaSi unda
mieTiTos ImageList komponenti.
AllowClick Tviseba gansazRvravs saTauris seqcia
reagirebs Tu ara Tagvis dawkapunebaze. true mniSvnelo-
bisas wkapuni iwvevs seqciis gamosaxulebis cvlilebas.
false mniSvnelobisas seqcia ar reagirebs dawkapunebaze.
Style Tvisebas SeiZleba hqondes mniSvnelobebi: hsText-
rodesac saTaurSi aisaxeba Text Tvisebis mniSvneloba;
hsOwnerDraw-am SemTxvevaSi aisaxeba is, rac ixateba
`kanvaze~ HeaderControl komponentis OnDrawSection
xdomilebis damuSavebis programaSi Cawerili
operatorebiT.
Style Tviseba gansazRvravs saTauris saxes: hsButtons-
seqcia Rilakis saxiT, hsFlat-brtyeli seqcia.
DragRecorder Tviseba true mdgomareobaSi gansazRvravs
seqciis gadaadgilebas saTauris SigniT, maTi mimdevrobis
SecvliT. FullDrag Tviseba gansazRvravs saTauris
gadaxatvas gadaadgilebis procesSi.

82
komponents aqvs mTeli rigi xdomilobebi.
OnSectionResize amoqmeddeba seqciis siganis Secvlisas,
TagviT seqciis sazRvrebis gadaadgilebisas. es
xdomilobebi amoqmeddeba gadaadgilebis dasrulebisas.
am xdomilebis proceduras aqvs saxe:
procedure TForm1.HeaderControllSectionResize (Header-
Control: THeaderControl; Section: THeaderSection);
HeaderControl komponentia, romelSic moxda xdo-miloba,
Section -seqciaa, romlis siganec Seicvala.
HeaderControl komponentTan muSaobis Sesaswavlad
gadaitaneT igi formaze, gadaitaneT aseve Memo da
Image. Memo komponentze Image Tvisebas mivceT taCenter
mniSvneloba. Lines SvisebaSi SeitaneT teqsti. Image
komponentis Picture TvisebaSi CatvirTeT raime gamosa-
xuleba.
HeaderControl-is Align Tvisebaze daayeneT alNone,
imisaTvis, rom saTauris zoma ar Seicvalos fanjris
zomebis Secvlisas. DragRecord-s mivceT false mniSvneloba,
rac akrZalavs nawilebis mimdevrobis Secvlas. daayeneT
komponentis mTavari Tviseba-Sections. saTaurebis
redaqtorze orjer dawkapunebiT miuTiTeT ori seqcia,
pirvelSi Text Tviseba udris `daxasiaTeba~, meoreSi-
`fotosuraTi~. TiToeul seqcias mieciT Width
moxerxebuli zoma. meore seqciisaTvis AutoSize SeiZleba
83
iyos true. exla ki unda daiweros sxvadasxva xdomi-
lobebis dammuSaveblebi. formis OnCreate xdomilobis
damuSavebis programas aqvs saxe:
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
for i := 0 to HeaderControl1.Sections.Count - 1 do
begin
if (HeaderControl1.Sections.Items[i].Text = ‘daxasiaTeba’)
then begin
Memo1.Left := HeaderControl1.Sections.Items[i].Left
+ HeaderControl1.Left + 2;
Memo1.Width := HeaderControl1.Sections[i].Width - 4;
end
else begin
Image1.Left := HeaderControl1.Sections.Items[i].Left
+ HeaderControl1.Left + 2;
Image1.Width :=
HeaderControl1.Sections.Items[i].Width - 4;
end;
end;
end;
mocemuli operatorebi Memo1 da Image1 komponentebs
daayenebs ori `piqseliT~ marjvniv Sesabamisi seqciis

84
marcxena sazRvridan da am komponentebis sigane 4
piqseliT naklebi iqneba seqciis siganesTan SedarebiT.
HeaderControl1 komponentis OnSectionResize xdomilebis
dammuSavebeli Sesdgeba erTi operatorisagan:
FormCreate(Self);
es operatori komponentebis gasworebisaTvis ubralod
mimarTavs formis OnGreate xdomilebis dammuSavebels.
danarTi mzad aris. SeamoqmeT misi muSaoba.
moviyvanoT danarTis magaliTi, sadac gamoiyeneba
Header komponenti. (panelis qveda nawili). formis
OnCreate xdomilebis dammuSavebelSi SeitaneT:
Memo2.Left := Header1.Left + 2;
Memo2.Width := Header1.SectionWidth[0] - 4;
Image2.Left := Header1.Left + Header1.SectionWidth[0]
+ 2;
Image2.Width := Header1.SectionWidth[1]-4;
es operatorebi Memo2 da Image2 komponentebs
gaasworeben Header komponentiT. meore seqciisaTvis
saWiroa marcxena koordinatasgamoTvla, rogorc
Header1.Left-isa da Header1.SectionWidth (pirveli seqciis
sigane) jami, ase rom Header komponents momdevno
seqciebisaTvis Left msgavsi Tviseba ara aqvs.

85
2.25 taimeri.
Timer komponenti
Timer komponenti danarTSi drois intervalis daniSvnis
saSualebas iZleva. mas aqvs mravalricxovani daniSnuleba:
multi plikaciis sinqronizacia, sxvadasxva fanjrebis
daxurva (Tu droebiT momxmarebels ar sWirdeba), ekranis
damcavis CarTva, saswavlo programebSi drois daniSvna.
taimeri aravizualuri komponentia, romelic SeiZleba
ganTavsdes formis nebismier adgilas. mas aqvs Tvisebebi:
Interval - drois intervali miliwamebSi da Enabled -
misawvdomoba. Interval Tviseba iZleva taimeris amuSavebis
intervals. Tu Interval mniSvneloba dayenebulia proeqti-
rebisas, taimeri amuSavdeba OnTimer xdomilobis
gamoZaxebiT.
Tu Interval = 0 an Interval = false, maSin taimeri wyvets
muSaobas. drois aTvla rom daiwyos an unda mivceT
Enabled = true, Tu dayenebulia intervalis dadebiTi
mniSvneloba, an mivceT Interval dadebiTi dadebiTi
mniSvneloba, Tu Enabled = false.
Tu saWiroa, rom danarTis gaSvebidan 5 wamSi daixuros
forma, saWiroa ganTavsdes taimeri, sadac Interval = 5000,
xolo OnTimer xdomilebis dammuSavebelSi Caisvas Close.
Tu saWiroa proceduraSi taimeris gaSveba, romelic
gamoiTvlis mocemul intervals, magaliTad 5 wams, romlis

86
Semdegac unda Sesruldes raRac operaciebi da
gamoirTos taimeri, es gakeTdeba Semdegnairad:
proeqtirebisas taimeri misawvdomia (Enabled = true),
xolo Interval Tviseba 0-is toli unda iyos. taimeri
ar imuSavebs sanam momentSi, roca unda gaiSvas taimeri
ar Sesruldeba operatori:
Timer1.Interval := 5000;
5 wamis Semdeg dadgeba OnTimer xdomiloba. mis
dammuSavebelSi unda Caiweros operatori:
Timer1.Interval :=0;
romelic gamorTavs taimers, romlis Semdegac
SeiZleba moTxovnili operaciebis Sesruleba.
amocanis amoxsnis sxva xerxia: Enabled Tvisebis
gamoyeneba. proeqtirebisas avirCioT Semdegi mniSvne-
lobebi Interval := 5000 da Enabled = false, taimeris
gaSvebis momentisaTvis sruldeba operatori:
Timer1.Enabled := true;
OnTimer xdomilobis, romelic dadgeba taimeris
gaSvebidan 5 wamSi, dammuSavebelSi SeiZleba Caisvas
operatori:
Timer1.Enabled := false;
romelic gamorTavs taimers.

87
2. 26 mTavari meniu
MainMenu komponenti
Delphi-Si aris ori komponenti, romelic qmnis menius.
MainMenu - mTavari meniu da PopupMenu mcuravi meniu.
orive moTavsebulia Standard gverdze.
MainMenu aravizualuri komponentia, Sesrulebul
danarTze igi ar Cans, gamoCndeba mxolod mis mier
generirebuli meniu.
formaze ganTavsdeba MainMenu-s erTi komponenti.
misi ZiriTadi Tvisebaa Items. misi Sevseba xdeba menius
konstruqtoris daxmarebiT, MainMenu-ze orjer
dawkapunebiT an obieqtebis inspeqtorze Items gverdiT
mravalwertilian Rilakze daWeriT, ris Sedegadac
gaixsneba fanjara.
am fanjaraSi SegiZliaT mTeli menius proeqtireba.
garda amisa menius asawyobad gamoiyeneba konteqsturi
meniu. moniSneT menius punqti da konteqstur meniuSi
airCieT Insert. qvemenius Sesaqmnelad gamoyofil punqtze
konteqstur meniuSi airCieT Create Submenu.
axali nawilis arCevisas obieqtebis inspeqtorze
dainaxavT am nawilis mraval Tvisebas da xdomilobas.
Items Tvisebis yvela elementi aris TMenuItem ti pis
obieqti, romelsac aqvs Tavisi Tvisebebi, meTodebi da
xdomilobebi.

88
Caption Tviseba aRniSnavs menius brZanebebis warweras.
Tu Caption-is saxiT SeitanT menius simbolos `-~, maSin
menius brZanebis nacvlad gaCndeba gamyofi xazi.
Name Tviseba iZleva obieqtis saxels, romelic
Seesabameba menius brZanebas. ShortCut Tviseba aris `cxeli~
Rilaki, romlis saSualebiTac momxmarebeli meniuSi
Sesvlis gareSe irCevs brZanebas. `cxeli~ Rilakis
daniSvnisaTvis gaxseniT ShortCut Tviseba da airCieT
TqvenTvis sasurveli kombinacia.
Default Tviseba gansazRvravs aris Tu ara mocemuli
punqti Tavisi qvemenius punqti dumiliT, anu Sesruldeba
Tu ara es brZaneba mSobel punqtze ori dawkapunebiT.
Break Tviseba gamoiyeneba grZel meniuebSi, imisaTvis
rom punqtebis (menius brZanebebis) sia daiyos ramodenime
svetad. misi dasaSvebi mniSvnelobebia: mbNone-meniu
ar daiyofa svetebad, mbBarBreak da mbBreak - meniuSi
Seitaneba brZanebebis axali sveti, romelic winasagan
gamoyofilia zoliT (mbBarBreak ) an `probelebiT~
(mbBreak).
Checked Tviseba true mdgomareobaSi, uCvenebs, rom
menius punqtebSi naCvenebi iqneba `droSa~, imis niSnad
rom punqti arCeulia.
meniuSi markeris dasaniSnad gamoiyeneba RadioItem
Tviseba. Tu es Tviseba aris true mdgomareobaSi, niSnavs,
89
rom es punqti imuSavebs sxva punqtebTan erTad
radioRilakebis reJimSi, roca punqtebs aqvT GroupIndex
Tvisebis erTi da igive mniSvneloba. dumiliT GroupIndex
mniSvneloba 0-is tolia, Tumca maT SeiZleba mivceT
nulze meti mniSvneloba da Tu gvaqvs menius brZanebebi
GroupIndex erTnairi mniSvnelobiT da RadioItem = true,
maSin maTze aisaxeba markeri `droSiT~, Tanac erT-erT
maTganze. Tu Tqven miscemT erT-erTs Checked = true,
danarCenebze Checked avtomaturad gaxdeba false.
punqtebis jgufisaTvis, romlebmac unda imuSaon
radioRilakebis msgavsad, AutoCheck = true. am SemTxvevaSi
SeiZleba erT-erTi moniSnuli punqti dawkapunebisas
gamoirTos da aRmoCndes, rom arcerTi punqti ar iqneba
CarTuli. Tu saWiroa, rom ramodenimedan erTi yovelTvis
iyos arCeuli, maSin AutoCheck Tviseba ar unda
gamoiyenoT. (igi unda daayenoT false mdgomareobaSi) da
punqtebisaTvis Checked Tviseba CarToT programulad:
if not (Sender as TMenuItem).Checked
then (Sender as TMenuItem).Checked := true;
es brZaneba markers gadarTavs mxolod im SemTxvevaSi,
roca daawkapunebT menius aurCevel punqtze. TiToeuli
punqtisaTvis SeiZleba CarTuli iyos Tviseba Enabled
(misawvdomia) an Visable (ar Cans). Tu Enabled = false,
maSin punqti aRiniSneba Ria nacrisfrad da igi

90
dawkapunebaze ar reagirebs. Tu Visable = false, maSin punqti
saerTod ar gamoCndeba.
Bitmap failidan punqtSi gamosaxulebis Setanis
saSualebas iZleva. ImageIndex uCvenebs gamosaxulebis
indeqss, romelic inaxeba ImageList komponentSi. MainMenu
komponentis Images TvisebaSi unda mieTiTos ImageList
komponentze. indeqsi iwyeba 0-dan. Tu indeqsi iqneba -1,
gamosaxuleba ar aisaxeba.
danarTSi, sadac gvaqvs mTavari forma da Svili
formebi, Svili formebis meniu gaerTiandeba mTavari
formis meniusTan. ramodenimeformian danarTebSi
gaerTianebis arseboba an ararseboba ganisazRvreba
TMainMenu komponentis AutoMerge TvisebiT. Tu saWiroa,
rom meoradi formis meniu gaerTiandes mTavari formis
meniusTan, yovel meorad formaze AutoMerge unda
davayenoT true mdgomareobaSi. am dros mTavari formis
AutoMerge unda iyos false mdgomareobaSi.
meniuebis gaerTianebis xerxi ganisazRvreba punqtebis
GroupIndex TvisebiT. dumiliT, menius yvela punqtisaTvis
GroupIndex mniSvneloba udris nuls. Tu saWiroa menius
gaerTianeba, punqtebisaTvis GroupIndex nomrebi unda
mieces araklebiT. Tu gasaerTianebeli punqtebis
GroupIndex mniSvneloba igivea, rac mTavari meniusi, maSin
es punqtebi Secvlian mTavari menius Sesabamis punqtebs.
91
winaaRmdeg SemTxvevaSi damxmare menius punqtebi Cadgebian
ZiriTadi menius punqtebs Soris, GroupIndex nomrebis
mixedviT. Tu gasaerTianebel punqts aqvs naklebi
GroupIndex mniSvneloba, ZiriTadi menius punqtTan
SedarebiT, maSin punqti moTavsdeba dasawyisSi.
Tu orive formaSi iqneba erTnairi indeqsebi, maSin
meoradi formis punqtebi Secvlian igive indeqsis mTavari
menius punqtebs.
mravaldokumentian interfeisis danarTSi(MDI),
momxmarebels SeuZlia ramodenime dokumentis gaxsna.
aseT danarTSi aris Window meniu, romelic Seicavs
punqtebs: New, Tile da a.S. boloSi mocemulia momxma-
reblis mier gaxsnili fanjrebis sia, saidanac SeiZleba
erTi fanjridan meoreze gadarTva.
gaxsnili fanjrebis meniuSi Sesatanad, mTavari formis
WindowMenu TvisebaSi unda vuCvenoT menius saxeli,
romlis boloSic ganTavsdeba sia, magaliTad Window.

2.27 konteqsturi meniu


PopupMenu komponenti
ganvixiloT konteqsturi menius Seqmnis magaliTi,
risTvisac SeasruleT Semdegi moqmedebebi:
- SeqmeniT MainMenu;
- formaze ganaTavseT PopupMenu komponenti;

92
- konteqstur (PopupMenu ) meniuSi SegviZlia
brZanebebis gadmokopireba mTavari meniudan, risTvisac:
a)orjer daawkapuneT PopupMenu komponentze;
b)gamosul fanjaraSi, marjvena RilakiT gamosul
meniuSi airCieT SelectMenu;
g)moniSneT MainMenu1 da Ok, gamova mTavari meniu;
d)airCieT sasurveli brZanebebi, aWerT [Ctrl-C];
e) imave fanjris konteqstur meniuSi airCieT
SelectMenu, moniSneT PopupMenu1 da Ok, rac gadagiyvanT
PopupMenu-ze da aWerT [Ctrl-V] (Casmas);
- ganaTavseT ekranze RichEdit1 da PopupMenu
Tvisebaze airCieT PopupMenu1.

2.28 `cxeli~ Rilakebi


HotKey komponenti
HotKey (gverdi Win32) menius punqtebTan swrafi
mimarTvis saSualebas iZleva. komponenti iseTi `cxeli~
Rilakebis Serwymis saSualebas iZleva, romelic ar
aris gaTvaliswinebuli menius punqtebis ShortCut
TvisebaSi.
HotKey komponenti Edit komponentis msgavsad gamoiyu-
reba. igi daWeril Rilakebs gadaiyvans TShortCut ti pSi,
romelic inaxavs `cxeli~ Rilakebis kombinacias. am
komponentis ZiriTadi Tviseba, dumiliT, aris Alt-A
93
kombinacia. es Tviseba SeiZleba mieniWos menius punqtis
ShortCut Tvisebas, magaliTad operatori:
MOpen.ShortCut := HotKey1.HotKey
MOpen menius punqts mianiWebs HotKey1- Si mocemuli
Rilakebis kombinacias.
Modifiers Tviseba uCvenebs Rilaks, romelsac aWerT
simbolosTan kombinaciaSi. mniSvnelobebi: hkShift, hkCtrl,
hkAlt, hkExt Seesabameba Shift, Ctrl, Alt, Extra Rilakebs,
dumiliT, Modifierss = [hkAlt].
Tu gsurT modifikatoris saxiT Ctrl-is gamoyeneba
unda Sesruldes operatori:
HotKey1.Modifiers := [hkCtrl];
InvalidKeys Tviseba iZleva dauSvebel Rilakebs an
kombinaciebs. maTi mniSvnelobebia: hcNone, hcShift, hcCtrl,
hcShiftCtrl, hcShiftAlt, hcCtrlAlt, hcShiftCtrlAlt, rac
Seesabameba Sesabamis Rilakebs.
programulad HotKey-saTvis mniSvnelobis micema
SeiZleba operatorebiT, magaliTad:
HotKey1.HotKey := Ord(‘F’);
HotKey1.Modifiers := [hkAlt];
es operatorebi iZlevian Alt-F `cxeli~ Rilakebis
kombinacias.
ganvixiloT HotKey - s gamoyenebis magaliTi:
gaxseniT danarTi da formaze ganaTavseT MainMenu

94
komponenti, romlis erT-erT punqts daarqviT Setting,
romlis arCeviTac gamoCndeba damxmare forma.
danarTs daumateT kidev erTi forma (File|New|Form).
es iqneba damxmare forma. mTavari formis Setting punqtis
damuSavebis programaSi SeitaneT operatori:
Form2.ShowModal; rac niSnavs, rom damxmare forma
modaluria, e.i. momxmarebeli misi daxurvis gareSe ver
gadava mTavar formaze. es operatori rom gaigos
kompilatorma Unit1-Si (mTavari formis moduli) unda
Caisvas Uses operatori, romelic Unit2 modulze
gadacemas axorcielebs. amis gansaxorcieleblad gadadiT
Unit1 modulSi, SeasruleT File|Use Unit brZaneba da
uCveneT rom gsurT Unit2 modulTan dakavSireba.
analogiurad daamyareT ukukavSiri-Unit2, Unit1-Tan.
daaproeqteT damxmare forma. ganaTavseT masze
ListBox1, sadac aisaxeba menius saTaurebi da ListBox2,
sadac aisaxeba menius punqtebi, romlebic arCeul
saTaurebs Seesabameba. formis qvemoT ganaTavseT HotKey
da Button Rilaki, romelic afiqsirebs arCeul brZanebas
da daxuravs formas. HotKey komponentis HotKey
Tvisebaze waSaleT dumiliT arCeuli mniSvneloba.

95
exla unda daiweros xdomilobis dammuSavebeli,
romelic CatvirTavs ListBox1 da ListBox2-s punqtebis
dasaxelebebiT da swrafi Rilakebis daWerisas
daafiqsireben am arCevans Form1- menius Sesabamis punqtSi.
kodi gamoiyureba Semdegnairad:
Procedure TForm2.FormShow(Sender: TObject);
var i: integer;
begin
{ListBox1-is CatvirTva menius saTaurebiT}
ListBox1.Clear;
for i := 0 to Form1.MainMenu1.Items.Count-1 do
ListBox1.Items.Add(Form1.MainMenu1.Items[i].Caption);

96
ListBox1.ItemIndex := 0;
{ListBox2-is CatvirTvis proceduraze mimarTva
Form2-is OnShow xdomilobisas}
ListBox1Click(Sender);
end;
Procedure TForm2.ListBox1Click(Sender: TObject);
var i: integer;
begin
{ListBox2-is CatvirTva menius saTaurebiT
MainMenu1.Items[ListBox1.ItemIndex],
romelsac airCevs momxmarebeli ListBox1-Si
Form2-is OnShow xdomilebisas}
LListBox2.Clear;
for i := 0 to Form1.MainMenu1.Items
[ListBox1.ItemIndex].Count-1 do
ListBox2.Items.Add(Form1.MainMenu1.Items[
ListBox1.ItemIndex].Items[i].Caption);
ListBox2.ItemIndex := 0;
{ListBox2-ze dawkapunebis proceduraze mimarTva}
ListBox2Click(Sender);
end;
Procedure TForm2.ListBox2Click(Sender: TObject);
begin
{ListBox2-Si gamoyofili punqtis `cxeli~ Rilakis
97
Setana HotKey komponentSi}
HotKey1.HotKey := Form1.MainMenu1.Items[
ListBox1.ItemIndex].Items[ListBox2.ItemIndex].ShortCut;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
{arCeuli menius `cxeli~ Rilakis Secvla da damxmare
formis daxurva}
Form1.MainMenu1.Items[
ListBox1.ItemIndex].Items[ListBox2.ItemIndex].ShortCut:=
HotKey1.HotKey;
Close;
end;

2. 29 GroupBox, Bevel, ScrollBox, Splitter


komponentebi
Panel gamoiyeneba sxvadasxva elementebis gasaerTia-
neblad. erT-erTi magaliTia RadioButton radioRilakebis
gaerTianeba. panelze ganTavsebuli es Rilakebi muSaoben
rogorc erTi jgufi. Panel komponentis parametrebia:
BevelInner-panelis Sida nawilis tili, BevelOuter-
panelis gare nawilis stili, BevelWidth-panelis gare
nawilis sigane, BorderStyle-CarCos stili, BorderWidth-
CarCos sigane.

98
GroupBox panels ara aqvs sxvadasxva gaformebis stili,
magram mas aqvs CarCo warweriT.
Bevel aris komponentebis konteineri. misi saSualebiT,
magaliTad ar SeiZleba radioRilakebis dajgufeba. Bevel
komponentis stili ganisazRvreba Style TvisebiT,
romelmac SeiZleba miiRos sxvadasxva mniSvneloba.
konturi ganisazRvreba Shape TvisebiT.
ScrollBox gadaxvevis zolia. misi Tvisebaa BorderStyle,
romelic gansazRvravs CarCos stils. AutoScroll Tviseba
saWiroebis SemTxvevaSi ScrollBox komponentis gamoCenis
saSualebas iZleva. Tu es araaucilebelia, SegiZliaT
moTxovnis mixedviT CarToT HorzScrollBar-horizon-
taluri da VertScrollBar-vertikaluri gadaxvevis zoli.
Range Tviseba gansazRvravs gadaxvevis ares zomas
piqselebSi. Tviseba Smooth = true, niSnavs, rom erTi
dawkapunebiT gadaadgilebis sigrZe SeirCeva avtomaturad,
winaaRmdeg SemTxvevaSi SegiZliaT SeirCioT erTjeradi
gadaadgilebis sigrZe Increment TvisebaSi.

2.30 mravalgverdiani panelebi


TabControl, PageControl, TabSet,
TabbedNoteBook, NoteBook komponentebi
mravalgverdiani panelebi danarTis fanjris sivrcis
ekonomiis saSualebas iZlevian. ganaTavseT formaze
99
PageControl komponenti. am komponentis gverdebis
arCevisas unda daawkapunoT masze Tagvis marjvena RilakiT
da airCioT New Page - axali gverdis Seqmna. Next Page
aris Semdeg gverdze gadarTva, Previous Page - wina gverdze
gadarTva.
gverds aqvs Semdegi ZiriTadi Tvisebebi:
Name-saxeli, romliTac xdeba gverdze gadasvla,
Caption- warwera, romelic gamoCndeba CanarTis iarliyze,
PageIndex-gverdis indeqsi, romliTac SeiZleba gverdze
gadasvla; ImageIndex gamosaxulebis indeqsi, romelic
SeiZleba aisaxos CanarTis iarliyze.
PageControl komponentis saerTo Tvisebebidan
aRsaniSnavia:
Style-gansazRvravs komponentis asaxvis stils, tsTabs-
CanarTebi, tsButtons-Rilakebi, tsFlatButtons-brtyeli
Rilakebi.
MultiLine-gansazRvravs CanarTebi iqnebian Tu ara
ganTavsebuli ramodenime rigad, Tu isini erT rigSi ar
moTavsdebian;
TabPosition-gansazRvravs CanarTis iarliyebis ganTav-
sebis adgils: tpBottom-qvemoT; tpLeft-marcxniv; tpRight-
marjvniv; tpTop-zemoT.
TabHeight da TabWidth-CanarTis iarliyebis simaRle
da siganea piqselebSi, Tu maTi mniSvnelobebi 0-is tolia,

100
maSin maTi zomebi ganisazRvreba avtomaturad maTze
warweris mixedviT.
Images - ImageList komponentze mimarTvaa, romelic
Seicavs gamosaxulebebs iarliyebisaTvis. Image - Index
Tviseba Seicavs indeqsebs, romlebic Seesabameba am sias.
ScrollOpposite-CanarTebis ramodenime striqonad
ganTavsebis xerxs gansazRvravs;
ActivePage - aqtiuri gverdi saxeli;
Pages[Index: Integer] - indeqsis mixedviT gverdze
mimarTva, Tviseba mxolod wakiTxvisaTvis;
PageCount-gverdebis saerTo raodenoba, Tviseba
mxolod wakiTxvisaTvis;
komponentis ZiriTadi xdomilobebia: OnChanging da
OnChange. pirveli maTgani amoqmeddeba axal CanarTze
dawkapunebisas, Tu am dros AllowChange = false, gadarTva
ar moxdeba. OnChange xdomileba amoqmeddeba gadarTvis
momentSive.
TabControl komponenti gamoiyureba PageControl-is
msgavsad da aqvs igive Tvisebebi, mxolod gansxvaveba
imaSia, rom mas ara aqvs mravali gverdi. is erTgverdiania,
romelsac aqvs mmarTveli Rilaki mravali mdgomareobiT.
mas aqvs kidev erTi Tviseba - MultiSelect, romelic
mravali CanarTis erTdrouli arCevis saSualebas iZleva.
TabbedNoteBook aris erTgverdiani komponenti, misi
101
ZiriTadi Tvisebaa Pages, romelic gansazRvravs gverdebis
raodenobas da CanarTebis warweras. ActivePage Tviseba
gansazRvravs aqtiuri gverdis warweras. PageIndex
gansazRvravs aqtiuri gverdis indeqss (0 - pirveli
gverdia). Tabs Tviseba gansazRvravs CanarTebis raode-
nobas. StartMargin da EndMargin gansazRvravs ganapira
CanarTebis komponentis kideebisagan daSorebas. AutoScroll
gansazRvravs CairTos Tu ara gadaxvevis zoli.
NoteBook komponenti aris panelebis dasta, romelTa
saxelebi da raodenoba ganisazRvreba Pages TvisebiT.
PageIndex gansazRvravs arCeuli CanarTis indeqss. am
CanarTSi ar aris CanarTebis mmarTveli elementi,
gverdebis gadarTva SeiZleba RilakebiT.

instrumentuli panelebi
2.31 ToolBar da PageScroll komponentebi
ganaTavseT ToolBar komponentebi formaze. dumiliT,
igi ganTavsdeba zemoT, radgan misi Align Tviseba Tavidanve
aris AlTop. Tu gsurT misi sxva adgilas ganTavseba,
daayeneT Align = alNone. masze Rilakis gansaTavseblad,
konteqstur meniuSi avirCioT New Button; Wrap = true,
niSnavs, rom am Rilakis Semdegi Rilakebi ganTavsdeba
momdevno striqonze.
ganvixiloT Style Tviseba. Style = tbsCheck gansazRvravs,

102
rom Rilaki dawkapunebis Semdeg rCeba daWeril
mdgomareobaSi, Semdegi dawkapunebisas ki amoiwevs. Tu
ramodenime RilakisaTvis davayenebT Tvisebas Grouped =
true, maSin es Rilakebi Seqmnian jgufs, romelTagan mxolod
erTi maTgani iqneba daWeril mdgomareobaSi.
Style = tbsDropDown Seesabameba CamoSladi menius
stils. MenuItem-Si SeiZleba mieTiTos is meniu, saidanac
unda aiRos menius punqtebi.
Style = tbsSeparator Casvams gamyof xazs, romelic
daajgufebs Rilakebs funqcionalur jgufebad. Style =
tbsDivider Casvams gamyofs vertikaluri xazis saxiT.
gamyofi xazi SeiZleba Caisvas ToolBar-is konteqsturi
meniudan New Separator-is arCeviT.
Indeterminate Tviseba true mdgomareobaSi, niSnavs, rom
Rilaki miuwvdomelia. Marked Tviseba gamoyofs Rilaks.
ToolBar komponentis Tvisebebidan aRsaniSnavia:
ButtonHeight da ButtonWidth - Rilakebis simaRle da sigane
piqselebSi; Wrapable- Rilakebis avtomaturi gadatana
meore striqonze, Tu isini ar Tavsdebian mimdinare
striqonze; BorderWidth - CarCos sigane; EdgeInner da
EdgeOuter - panelis Siga da gare nawilis asaxvis stili;
EdgeBorders- gansazRvravs panelis calkeuli mxareebis
asaxvas.
PageScroller komponenti gamoiyeneba maSin, rodesac
103
saWiroa panelis gadaxveva.
PageScroller komponentis ZiriTadi Tvisebaa Control,
igi uCvenebs komponents, romelic unda ganTavsdes da
gadaixves PageScroller fanjaraSi. panelis proeqtirebis
Semdeg SegiZliaT formaze ganaTavsoT PageScroller
komponenti da daayenoT misi Control Tviseba. am momentSi
Tqveni instrumentuli paneli gadaadgildeba PageScroller
komponentis fanjaraSi da saWiroebisamebr gaCndeba
gadaxvevis Rilaki.
PageScroller komponentis Margin Tviseba gansazRvravs
velis zomas piqselebSi, romelic unda darCes bolo
Rilaksa da gadaxvevis komponents Soris. dumiliT,
misi mniSvneloba nulis tolia. AutoScroll Tviseba
gansazRvravs saWiroa Tu ara gadaxveva avtomaturad,
amitom umjobesia igi iyos false mdgomareobaSi.

2.32 gadawyobadi panelebi


CoolBar da ControlBar komponentebi
gadawyobadi panelebi instrumentuli panelebis
Semdgom ganviTarebas miekuTvneba.
moaTavseT formaze CoolBar komponenti, gadaitaneT
masze sxva komponentebi, magaliTad ToolBar da Edit,
rodesac CoolBar-ze moaTavsebT momdevno komponents
mas gamoeyofa calke zoli da gaiweleba CoolBar-is

104
mTel siganeze. yovel komponentTan gaCndeba marcxniv
zoli, romliTac zoli Tavisi komponentebiT SeiZleba
gadaadgildes.

zolebis redaqtori gamoiZaxeba Semdegi xerxebiT:


obieqtebis inspeqtoridan Bands TvisebasTan mraval-
wertiliani RilakiT an konteqsturi meniudan Bands
Editor brZanebiT. Control Tviseba gansazRvravs zolze
komponentis ganTavsebas. Break Tviseba gansazRvravs
ikavebs Tu ara zoli CoolBar-is mTel zomas, Tu wydeba
romelime adgilze.
Text Tviseba gansazRvravs teqsts, romelic gamoCndeba
Sesabamisi zolis dasawyisSi.
MinHeight da MinWidth gansazRvravs zolis minimalur
105
simaRlesa da siganes panelebis gadawyobisas.
FixedSize Tviseba gansazRvravs dafiqsirebulia Tu
ara zolis zomebi, Tu igi Seicvleba momxmareblis
mier. FixedSize = false, yvela zoli gadaiwyoba.
dafiqsirebisaTvis FixedSize = true. BandMaximize
gansazRvravs zolis maqsimalur zomas, misi sazRvris
gadawevis gareSe, sadac:
bmNone-aseTi moqmedeba ar aris gaTvaliswinebuli,
bmClick-Tagvis dawkapunebiT, bmDblClick-ori dawkapu-
nebiT.
FixedOrder = true uzrunvelyofs, rom zolis gadaadgi-
lebisas misi mimdevroba ar Seicvalos.
Vertical Tviseba miuTiTebs zolis vertikalur an
horizontalur ganTavsebaze. dumiliT, Vertical = false,
rac miuTiTebs zolis horizontalur ganTavsebaze.
ControlBar gadawyobis kidev ufro met saSualebas
iZleva.
moaTavseT formaze ControlBar komponenti da masze
ganaTavseT ramodenime komponenti, magaliTad ToolBar
da Edit.

106
ControlBar -ze ganTavsebul TiToeul elements
gauCndeba gadaadgilebis zoli, romelic xasiaTdeba
Drag&Doc teqnologiiT. komponentebs dauyeneT Tviseba
DragMode = dmAutomatic da DragKind = dkDock. es
miuTiTebs Drag&Doc operaciis Sesrulebaze.
RowSize Tviseba iZleva zolis zomas, romelzec unda
CaerTos komponentebi, RowSnap gansazRvravs Casmuli
komponentebis zolebze Cavlebas. AutoDrag Tviseba
gansazRvravs SeiZleba Tu ara ubralo gadaweviT
gavitanoT zoli ControlBar-sazRvrebs gareT.
Tu AutoDrag = true, maSin panelidan calkeuli
komponentebis amoRebisas, isini damoukidebel fanjrebad
gadaiqcevian.
107
2.33 mdgomareobis zoli - StatusBar
mdgomareobis zoli ganTavsebulia fanjris boloSi.
ganvixiloT StatusBar komponentis Seqmnis magaliTi:
ganaTavseT ekranze RichEdit komponenti da qvemoT
moaTavseT StatusBar, masze orjer daawkapuneT, gamosul
fanjaraSi daaWireT Add New Rilaks imdenjer, ramdeni
ganyofilebac gsurT rom gamoiyos statusis striqonze,
daxureT fanjara.
orjer daawkapuneT RichEdit-ze da akrifeT:
StatusBar1.Panels[0].Text := IntToStr
(RichEdit1.CaretPos.Y+1)+’: ‘+IntToStr
(RichEdit1.CaretPos.X+1);
If RichEdit1.Modified then StatusBar1.Panels[1].Text:=
‘Modif’ else StatusBar1.Panels[1].Text := ‘’;

2.34 freimebi
Frame komponenti emsaxureba danarTis stilistur
erTianobas. igi Sualeduria panelsa da formas Soris.
axali freimis SeqmnisaTvis meniu File-Si airCieT
New Frame brZaneba. gaixsneba formis msgavsi fanjara.
gadaitaneT masze GroupBox, Edit, Button, OpenDialog da
ApplicationEvents komponentebi.

108
OpenDialog dialogSi, Filter TvisebaSi failebs dauniSneT
ramodenime filtri, magaliTad `*.*~-yvela faili.
ShowHint (karnaxis iarliyi Cveneba) Tviseba Edit da But-
ton-saTvis aris true. Button-saTvis SeiZleba karnaxis
teqstis dawera, magaliTad, `failis arCeva\katalogidan
failis arCeva~.
ApplicationEvents komponentis OnShowHint xdomilobis
damuSavebis programaSi SeitaneT operatorebi:
if HintInfo.HintControl = Edit1
the begin
HintStr := Edit1.Text;
ApplicationEvents1.CancelDispatch;
end;
es operatorebi iarliyis asaxvis momentSi amowmebs
am xdomilobis (HintInfo.HintControl) wyaro xom ar aris
109
Edit1, Tu aris, maSin iarliyis(HintStr) teqsti Seicvleba
redaqtirebis fanjaraSi Semavali teqstiT da miiReba
zomebi (CancelDispatch), raTa es xdomiloba ar damuSavdes
ApplicationEvents-is sxva komponentebiT.
freimis modulSi SeitaneT TString ti pis FileName
globaluri cvladi, romelSic aisaxeba arCeuli faili.
Rilakze dawkapunebisas, dammuSavebel fanjaraSi SeitaneT
operatori:
if OpenDialog1.Execute
then begin
Edit1.Text := OpenDialog1.FileName;
FFileName := OpenDialog1.FileName;
end;
romelic iZaxebs failis gaxsnis dialogs da Edit1-
Si moaTavsebs failis saxels.
Edit1 komponentis OnExit xdomilobis damuSavebis
programaSi moaTavseT operatori:
FileName := Edit1.Text;
romelic FileName cvladSi Seitans failis saxels,
im SemTxvevaSi, Tu momxmarebelma ar isargebla dialogiT
da pirdapir dawera fanjaraSi failis saxeli.
freimi Seqmnilia. SeqmeniT testuri programa freimis
gamoyenebis demonstrirebisaTvis, risTvisac formaze
ganaTavseT ori Frames komponenti, (gverdi Standard),

110
gamosul fanjaraSi airCieT Tqvens mier Seqmnili freimi.
suraTze mocemulia failis arCevis ori freimi: misi
forma da danarTi Sesrulebis procesSi:

a)

a) forma danarTis Sesrulebamde.


b) danarTi Sesrulebis procesSi.

111
b)

freimis Seqmna friad sasargebloa, radgan igi SeiZleba


Seinaxos sacavSi (Depository), saidanac SeiZleba sxva
danrTebSi misi gamoyeneba.

112
III Tavi
sistemuri dialogebi
3.1 dialogebis saerTo daxasiaTeba
danarTSi xSirad aris saWiro standartuli moqme-
debebis Sesruleba: failis gaxsna, Senaxva, Sriftis arCeva,
feris arCeva, Zebna da a.S. dialogebi ganTavsebulia Dialogs
gverdze. Tu standartuli dialogebis gamoyeneba ar
iqneba moxerxebuli, Delphi gvTavazobs komponentebs,
romlebic SeiZleba ganvixiloT, rogorc dialoguri
fanjris fragmentebi, saidanac Seiqmneba sakuTari
dialogebi.
OpenDialog (gverdi Dialogs )-failis gaxsnis dialogi;
SaveDialog (gverdi Dialogs )-failis Senaxvis dialogi;
OpenPictureDialog (gverdi Dialogs )-naxatis gaxsnis
dialogi;
SavePictureDialog (gverdi Dialogs )-naxatis Senaxvis
dialogi;
FontDialog (gverdi Dialogs )-Sriftis arCevis dialogi;
ColorDialog (gverdi Dialogs )-feris arCevis dialogi;
ColorBox (gverdi Additional)-feris arCevis CamoSladi
sia;
PrintDialog (gverdi Dialogs )-beWdvis dialogi;
PrinterSetupDialog (gverdi Dialogs )-printeris
dayenebis dialogi;
113
PageSetupDialog (gverdi Dialogs )-gverdis parametrebis
dialogi;P
FindDialog (gverdi Dialogs )-teqstis fragmentis Zebnis
dialogi;
ReplaceDialog (gverdi Dialogs )-teqstis fragmentis
Secvlis dialogi;
CustomizeDlg (gverdi Additional)-`awyobis~ dialogi;
ShellTreeView (gverdi Samples)-asaxavs failebisa da
saqaRaldeebis xes, SeiZleba ShellComboBox da ShellList-
View komponentebiT marTva;
ShellComboBox (gverdi Samples)-failebisa da saqa-
Raldeebis CamoSladi sia;
ShellListView (gverdi Samples)-failebisa da saqaRal-
deebis sia, Windows-is analogiurad;
FileListBox (gverdi Win 3.1)-asaxavs katalogis yvela
failis sias;
DirectoryListBox (gverdi Win 3.1)-asaxavs diskis
katalogebis struqturas;
DriveComboBox (gverdi Win 3.1)-misawvdomi diskebis
CamoSladi sia;
FilterComboBox (gverdi Win 3.1)-failebis ZebnaSi
gamoyenebuli filtrebis CamoSladi sia;
DirectoryOutline (gverdi Samples)-arCeuli diskis
katalogebis xe;

114
Dialogs gverdis yvela komponenti aravizualuria, ase,
rom maTi formaze ganTavsebis adgils mniSvneloba ara
aqvs.
nebismier dialogTan mimarTva xorcieldeba Execute
meTodiT. mas Semdegi saxe aqvs:
If <dialogis saxeli> Execute then <operatorebi>

3.2 OpenDialog, SaveDialog,


OpenPictureDialog, SavePictureDialog.
ganaTavseT formaze Memo1, romelSic Open brZanebiT
CaitvirTeba teqsturi faili, cvlilebis Setanis Semdeg
ki es faili Seinaxeba Save As brZanebiT. formaze ganaTav-
seT aseve OpenDialog1 da SaveDialog1.
Senaxvis procesSi saWiro gaxdeba failisaTvis
saxelis darqmeva, amitom SemoitaneT FName cvladi:
var FName: String;
Open brZanebis damuSaveba SeiZleba Semdegi operato-
riT:
if OpenDialog1.Execute then begin
FName := OpenDialog1.FileName;
Memo1.Lines.LoadFromFile(FName);
end;
zemoaRniSnuli gamoiZaxebs dialogs, Tu arCeuli
iqneba faili, igi LoadFromFile meTodiT CaitvirTeba
115
Memo1-Si.
Save as brZaneba damuSavdeba operatoriT:
Memo1.Lines.SaveToFile(FName);
SaveDialog1.FileName := FName;
if SaveDialog1.Execute
then begin
FName := OpenDialog1.FileName;
Memo1.Lines.SaveToFile(FName);
end;
analogiurad damuSavdeba OpenPictureDialog da
SavePictureDialog brZanebebi.

3.3 komponentebi failebTan da


saqaRaldeebTan muSaobisaTvis.
ShellListView, ShellTreeView, ShellComboBox
ShellListView komponentSi informaciis asaxvis stili
ganisazRvreba ViewStyle TvisebiT, romelmac SeiZleba
miiRos mniSvnelobebi: vsIcon-msxvili niSnebi,
vsSmallIcon-wvrili niSnebi, vsList-sia, vsReportr-cxrili.
AutoContextMenus Tviseba true mdgomareobaSi uzrun-
velyofs moniSnul obieqtze konteqsturi menius
gamotanas. AutoNavigate = true uzrunvelyofs moniSnuli
saqaRaldes gaxsnas. AutoRefresh asaxuli elementebis
Secvlisas avtomaturad ganaaxlebs gamosaxulebas.

116
GridLines Tviseba CarTavs an gamorTavs vsReport reJimSi
cxrilis svetebisa da striqonebis xazebs.
AutoArrange Tviseba avtomowesrigebas uzrunvelyofs.
WrapText gansazRvravs piktogramis qveS warwera avto-
maturad gadaitanos Tu ara.
Arrangement gansazRvravs rogor ganTavsdebian mowes-
rigebuli elementebi:
iaTop-ganTavsdebian ekranis zeda mxares marcxnidan
marjvniv mwkrivebad;
iaLeft-ganTavsdebian fanjris marcxena mxares zemodan
qvemoT svetebad;
ObjectTypes Tviseba aris simravle, romelic gansazRv-
ravs Tu ra gamoisaxeba komponentze: ofFolders-saqa-
Raldeebi, ofNonFolders-ara saqaRaldeebi (failebi da
iarliyebi), ofHidden-uxilavi elementebi.
Root Tviseba gansazRvravs asaxvis fesvur saqaRaldes.
am Tvisebis gverdiT mravalwertiliani RilakiT an
ShellListView komponentze ori dawkapunebiT gaixsneba
dialoguri fanjara. masSi SegiZliaT Use Standard Folder
indikatoris CarTviT airCioT fesvis saxiT erT-erTi
saqaRalde: rfDesktop-samuSao magida, rfMyComputer-Cemi
kompiuteri da a.S. Use Path indikatoris CarTva
saSualebas iZleva mravalwertiliani RilakiT airCioT
gza nebismieri saqaRaldesaken, romelic aRiqmeba fesvuris
117
saxiT.
ShellTreeView asaxavs failebisa da saqaRaldeebis xes.
rac aisaxeba xeze, ganisazRvreba ObjectTypes TvisebiT.
UseShellImages Tviseba gansazRvravs xeze standartuli
piktogramebis arsebobas.
ShellComboBox komponenti warmoadgens kompiuteris
samuSao magidaze ganTavsebuli diskebisa da saqaRal-
deebis CamoSlad sias. igi SeiZleba daukavSirdes
ShellListView da ShellTreeView komponentebs Tavisi
Sesabamisi TvisebebiT.

3.4 dialogebis fragmentebi


DriveComboBox, DirectoryListBox,
FilterComboBox, FileListBox,
DirectoryOutLine komponentebi
DriveComboBox-diskebis CamoSladi siebi; Filter-
ComboBox-failebis filtrebi; DirectoryListBox-
katalogebis siebi; FileListBox-failebis siebi; Direc-
toryOutLine-katalogebis xe.
DriveComboBox komponenti formaze ganTavsebisas
avtomaturad asaxavs kompiuterSi arsebuli diskebis
sias. Drive TvisebaSi SegiZliaT waikiTxoT arCeuli
diskis saxeli, xolo Text TvisebaSi waikiTxavT siis
fanjaraSi gamosul striqons.

118
TextCase Tviseba iZleva asaxvis registrs: tcUpperCase-
zeda registrSi, tcLowerCase-qvedaSi.
DriveComboBox komponentis DirectoryListBox-Tan
(katalogebis sia) dakavSireba SeiZleba proeqtirebis
procesSi DriveComboBox komponentis DirList TvisebiT.
es Tviseba miuTiTebs DirectoryListBox komponentze.
SeiZleba es kavSiri ganxorcieldes programuladac.
DriveComboBox komponentis OnChange xdomilobis
damuSavebis programaSi CawereT operatori:
DirectoryListBox1.Drive := DriveComboBox1.Drive;
es operatori iZleva DriveComboBox1-Si momxma-
reblis mier arCeuli diskis saxels.
analogiurad SeiZleba damyardes kavSiri DriveCombo-
Box da DirectoryOutline-sTan (katalogebisa da failebis
xe):
DirectoryOutline1.Drive := driveComboBox1.Drive;
FilterComboBox-filtrebis CamoSladi siaa. misi
ZiriTadi Tvisebaa Filter. filtris calkeul nawilebze
mimarTva xorcieldeba Text da Mask TvisebebiT.
komponentis failebis siasTan kavSiri SeiZleba damyardes
FileList TvisebiT.
DirectoryListBox komponenti asaxavs diskis katalo-
gebis sias, romelic mocemulia Drive TvisebiT. katalo-
gebis siis FileListBox-Tan kavSiri xorcieldeba FileList
119
TvisebiT. DirectoryListBox SeiZleba daukavSirdes Label
Wdes, sadac aisaxeba gza mimdinare katalogisaken. Tu es
misamarTi ar eteva, SeiZleba misi Semokleba MinimizeName
funqciiT. katalogis amsaxveli Wde naCvenebia DirLabel
TvisebaSi. FileListBox komponentSi naCvenebia failebis sia.
misi Tvisebebia Drive, Directory da Mask, romelic
gansazRvravs disks, katalogs da failebis `niRabs~.
FileType Tviseba saSualebas iZleva siaSi CairTos ara
yvela faili, aramed mxolod isini romelTac aqvT
Sesabamisi atributi. FileType Tviseba aris simravle,
romelic uCvenebs CarTuli failebis ti ps. am simravlis
elementebs aqvT mniSvnelobebi: ftReadOnly-mxolod
wasakiTxi; ftHidden-damaluli; ftSystem-sistemuri;
ftVolumeId-diskebis aRniSvnebi; ftDirectory-katalogebi;
ftArchive-arqivuli; ftNormal-gansakuTrebuli atri-
butebis gareSe.
ShowGlyps mTviseba uzrunvelyofs failebis pikto-
gramebis Cvenebas.
MultiSelect Tviseba ramodenime failis arCevis saSua-
lebas iZleva.
FileName TvisebaSi SeiZleba arCeuli failis saxelis
wakiTxva.
failebis sia SeiZleba daukavSirdes Edit1 komponents,
romelSic aisaxeba arCeuli faili.

120
DirectoryOutline Seicavs katalogebis xes. TextCase
Tviseba gansazRvravs katalogebis saxelebis asaxvis
stils: tcLowerCase-qveda registrSi gadayvana;
tcUpperCase-zeda registrSi gadayvana, tcAsis-gardasaxvis
gareSe.

3.5 Sriftis arCevis dialogi


FontDialog
FontDialog komponenti iZaxebs Sriftebis arCevis
dialogur fanjaras. masSi momxmarebels SeuZlia airCios
Sriftis saxeli, stili, zoma da sxva atributebi.
dialogis ziriTadi Tvisebaa Font, romelic TFont
ti pisaa. MaxFonSize da MinFontSize Tvisebebi irCeven
Sriftis maqsimalur da minimalur zomebs.
Device Tviseba gansazRvravs Sriftebis romeli siidan
aris SemoTavazebuli arCevani dialogur fanjaraSi:
fdScreen-ekranis siidan, fdPrinter-printeris siidan,
fdBoth-orivedan.
ganaTavseT formaze Memo1 da FontDialog komponentebi.
Font brZanebis damuSavebis programas eqneba saxe:
if FontDialog1.Execute then
Memo1.Font.Assign(FontDialog1.Font);
Tu FontDialog1 komponents dauyenebT fdApplyButton
opcias, SegiZliaT daweroT OnApply xdomilobis
121
dammuSavebeli:
Memo1.Font.Assign(FontDialog1.Font);
momxmarebeli Memo1-si cvlilebebis ASesatanad aWers
Apply-s da ar wyvets dialogs.
Tu redaqtirebis fanjris saxiT gamoyenebuli iqneba
RichEdit, maSin Sriftis atributebis dayeneba SeiZleba
moniSnuli teqstisaTvis. am SemTxvevaSi brZaneba miiRebs
Semdeg saxes:
if FontDialog1.Execute then
RichEdit1.SelAttributes.Assign(FontDialog1.Font);
SeiZleba Sriftis Secvla yvela komponentisa da
formaze warwerebisaTvis, rac xorcieldeba operatoriT:
if FontDialog1.Execute then
Font.Assign(FontDialog1.Font);
am SemTxvevaSi, radgan Font Tviseba ar gadaecema arcerT
komponents, igulisxmeba mTeli formis Srifti.

3.6 feris arCevis dialogebi


ColorDialog da ColorBox
ColorDialog komponenti gamoiZaxebs feris arCevis
standartul dialogur fanjaras. masSi momxmarebeli
irCevs fers da sabazo palitras, romelic ferTa
sinTezis saSualebas iZleva.

122
aRniSnuli komponentis ZiriTadi Tvisebaa Color.
CustomColors Tviseba damatebiTi palitris SekveTili
feris arCevis saSualebas iZleva. TiToeuli feri
ganisazRvreba Semdegnairad:
<feris saxeli> = <feris TeqvsmetobiTi warmodgena>;
ferTa saxelebi mocemulia ColorA(pirveli feri)-
dan ColorP(meTeqvsmete, bolomde). magaliTad, striqoni
ColorA = 808022 iZleva pirvel SekveTil fers.
Tu momxmarebelma unda Secvalos Memo1-is fontis
feri, amis realizeba xdeba operatoriT:
if ColorDialog1.Execute then Memo1.Color :=
ColorDialog1.Color;
DefaultColorColor Tviseba gansazRvravs ra feris
kvadratiT iqneba moniSnuli siaSi `clDefault~ striqoni.
NoneColorColor gansazRvravs ra feris kvadratiT iqneba
aRniSnuli siaSi `clNone~ striqoni.
Select Tviseba uCvenebs arCeul fers. amisaTvis SeiZleba
OnSelect xdomilobiT sargebloba, romelic amuSavdeba
momxmareblis mier feris arCevis momentSi. magaliTad,
operatori
Memo1.Color := ColorBox1.Selected;
Memo1 fanjaras miscems momxmareblis mier arCeul
fers.
Colors Tviseba aris ferebis indeqsirebuli masivi,
123
xolo ColorNames Tviseba analogiuri masivia ferTa
saxelebiT.

3.7 PrintDialog, PrinterSetupDialog,


PageSetupDialog komponentebi
PrintDialog (beWdvis) komponenti iZaxebs beWdvis
dialogur fanjaras.
PrintDialog komponenti ar axorcielebs beWdvas. is
momxmarebels beWdvis atributebis arCevis saSualebas
aZlevs. beWdva ki unda ganxorcieldes Printer obieqtis
daxmarebiT an sxva xerxiT.
PrintDialog obieqtis Tvisebebia:
PrintRange-radioRilakebis meSveobiT dasabeWdi
dokumentis arCevas uzrunvelyofs; prAllPages-yvela
gverdi; prSelection arCeuli gverdebi; prPageNums-
arCeuli fragmenti; FromPage-uCvenebs sawyis gverds;
ToPage-uCvenebs bolo gverds; PrintToFile-uCvenebs
arCeulia Tu ara `failSi dabeWdvis~ indikatori; Copies-
aslTa raodenobaa; Collate-beWdvisas aslebis mimdevrobaa.
dialogis gamoZaxebamde sasurvelia ganisazRvros
ramdeni gverdia dasabeWdi da gadaices MaxPage da
MinPage parametrebi-gverdis maqsimaluri da minimaluri
nomrebi.
PrinterSetupDialog-gamoiZaxebs printeris parametrebis

124
SerCevis dialogur fanjaras.
MarginBottom, MarginLeft, MarginRight da MarginTop
parametrebi Sesabamisad iZlevian velis qveda, marcxena,
marjvena, zeda sawyis mniSvnelobebs. PageHeight da
PageWidth gansazRvraven gverdis simaRlesa da siganes.
MinMarginBottom, MinMarginLeft, MinMarginRight,
MinMarginTop Tvisebebis mniSvnelobebi iZlevian velis
minimalur zomebs.

3.8 teqstis Zebnisa da Secvlis


komponentebi
FindDialog, ReplaceDialog
ganvixiloT Zebnis magaliTi. formaze ganaTavseT
Memo1 komponenti, davuSvaT MFind menius arCevisas
gsurT Memo1 -is teqstis Zebna. programas eqneba Semdegi
saxe:
var SPos: integer;
...
procedure TForm1.MFindClick(Sender: TObject);
begin
{kursoris poziciis damaxsovreba}
SPos := Memo1.SelStart;
with FindDialog1 do begin
{saZebni teqstis sawyisi mniSvneloba-Memo1-Si
125
gamoyofili teqsti}
FindText := Memo1.SelText;
{dialogis fanjris pozicionireba Memo1-is qvemoT}
Position := Point(Form1.Left,Form1.Top+Memo1.Top+
Memo1.Height);
{gasamartiveblad gavauqmoT kursoris zemoT Zebnisa
da mxolod mTliani sityvis Zebnis opciebi}
Options := Options + [frHideUpDown, frHideWholeWord];
{Sesruldes}
Execute;
end;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
with FindDialog1 do begin
if frMatchCase in Options
{Zebna registris gaTvaliswinebiT}
then Memo1.SelStart := Pos(FindText,
Copy(Memo1.Lines.Text,SPos+1,
Length(Memo1.Lines.Text)))+SPos-1
{Zebna registris gauTvaliswineblad}
Else Memo1.SelStart := Pos(AnsiLowerCase(FindText),
AnsiLowerCase(Copy(Memo1.Lines.Text,SPos+1,
Length(Memo1.Lines.Text))))+SPos-1;

126
if Memo1.SelStart >= SPos
then begin
{napovni teqstis gamoyofa}
Memo1.SelLength := Length(FindText);
{Zebnis sawyisi poziciis Secvla}
SPos := Memo1.SelStart + Memo1.SelLength +1;
end
else
if MessageDlg(‘teqsti “’+FindText+’” ar aris napovni.
gavagrZelo dialogi?’,
mtConfirmation, mbYesNoCancel,0) <>mrYes
then CloseDialog;
end;
Memo1.SetFocus;
end;
programaSi Segvaqvs SPos cvladi, romelic inaxavs
pozicias, saidanac gvsurs Zebnis dawyeba.
sasargebloa, rom Memo1-is OnClick da OnKeyUp
xdomilobis damuSavebis programaSi SeitanoT operatori:
SPos := Memo1.SelStart;
es momxmarebels Memo1-is fanjaraSi dialogis
procesSi kursoris mdgomareobis Secvlis saSualebas
aZlevs. es axali mdgomareoba Seinaxeba SPos cvladSi
da gamoiyeneba Zebnis gagrZelebisas.
127
Secvlis realizebisaTvis, zemoT moyvanili procedu-
rebi SeiZleba igive darCes, mxolod FindDialog1 Seicvalos
ReplaceDialog1-iT. damatebiT SeiZleba daiweros
ReplaceDialog1-is xdomilobis damuSavebis programa:
procedure Tform1.ReplaceDialog1Replace(Sender: TObject);
begin
if Memo1.SelText<>’’
then Memo1.SelText :=ReplaceDialog1.ReplaceText;
if frReplaceAll in ReplaceDialog1.Options
then ReplaceDialog1Find(Self);
end;
es kodi moaxdens gamoyofili teqstis Secvlas,
Semdegi SecvlisaTvis daaWireT `Next~, xolo yvelgan
Sesacvlelad `Replace All~.

128
IV Tavi
danarTis Seqmnis meTodika
4.1 danarTis damuSavebis teqnologia
wina TavSi ganvixileT komponentebis ganTavseba
formaze da maTi dammuSavebeli programebis Seqmna, magram
es ar aris sakmarisi danarTis SeqmnisaTvis, radgan
aseTi danarTis Sesworeba sakmaod mouxerxebeli iqneba.
danarTis Seqmnisas udidesi mniSvneloba aqvs ara
lamazi interfeisis Seqmnas, aramed moqmedebis siis
Sedgenas, romelsac momxmarebeli Seasrulebs mocemuli
danarTis daxmarebiT. ra Tqma unda daproeqtebis
procesSi pirveladi sia daixveweba.
moqmedebis siis Sedgenis Semdeg, SeiZleba SeirCes
interfeisis Semsrulebeli elementebi. zogierT
elementebs aqvs dublirebuli Tvisebebi, amitom sworad
unda SeirCes komponentebi. garda amisa Tu Sesacvleli
gaxdeba raime moqmedeba, aucilebelia programis
ramodenime adgilas cvlilebebis Setana. msgavsi
sirTuleebis dasaZlevad Delphi-Si gaTvaliswinebulia
komponentebi, romlebic axorcieleben moqmedebebis
centralizebul marTvas, maT dispetCerizacias.
moqmedebebis sia Segvaqvs specialur komponentSi - es
aris dispetCeri.
umravlesoba elementebs aqvT Action Tviseba. sakmarisia
129
am TvisebaSi gadagzavna erTerT moqmedebaze, rom am
moqmedebis yvela Tviseba, maT mier realizebadi
dammuSavebeli programebi gadaitaneba mocemul mmarTvel
elementze da Tqven ar dagWirdebaT TiToeuli
elementisaTvis yovelive amis Tavidan ganmeoreba. amave
dros Sesworebis SemTxvevaSi sxvadasxva formaze
ganTavsebuli yvela elementi miiRebs Setanil Sesworebas.
moqmedebebis dispetCerizebas axdens ActionList
komponenti, danarTis marTvis centralizebas aqvs kidev
ramodenime done. pirvel rigSi unda aRiniSnos ImageList,
romelic centralizebulad moamaragebs danarTs
gamosaxulebebiT. meore, Delphi-Si aris obieqti-
Application (danarTi), romelic marTavs proeqtis saerTo
Tvisebebs. ApplicationEvents axorcielebs xdomilobebze
Setyobinebis dispetCerizebas. da bolos yvela danarTSi
aris Screen(ekrani) obieqti, romelic uzrunvelyofs
monitorze sxvadasxva formis gamosaxulebis marTvas.
Action (moqmedeba)-zogierTi qcevis realizeba, es aris
momxmareblis qcevaze reaqcia, rogoricaa dawkapuneba
Rilakze an menius punqtis arCeva. moqmedebebis dispetCe-
rizebas awarmoebs aseve ActionManager komponenti,
romelic ActionList-ze ufro mZlavria.
moqmedebebis siis Sedgenis Semdeg unda Seiqmnas
moqmedebebis zolebi. es komponentebia, romlebzec

130
ganTavsdeba moqmedebebis interfeisuli komponentebi.
maT miekuTvneba mTavari menius zoli, instrumentebis
striqoni. ActionList gamoyenebisas es zolebi formaze
daemateba calkeuli komponentebis saxiT. ActionManager-
is gamoyenebisas isini formirdebian da iqmnebian TagviT
gadataniT.
interfeisis komponentebs aqvT amxsneli gamosaxuleba,
rac ganTavsebulia ImageList komponentSi.
ase, rom moqmedebebis siis, meniusa da instrumentebis
panelis formirebas mivyavarT Semdeg moqmedebebamde:
- Sedges moqmedebebis sia, romelic momxmareblis
mier misawvdomi unda iyos menius, instrumentebis panelis
da sxva marTvis elementebiT;
- arastandartuli moqmedebebisaTvis, romlebic
misawvdomi iqnebian instrumentebis RilakebiT, mzaddeba
piktogramebi ImageList komponentSi;
- formaze gadaitaneba ActionList da ActionManager.
komponenti ukavSirdeba ImageList -s. formirdeba
standartuli da arastandartuli moqmedebebis sia;
- TiToeuli moqmedebisaTvis unda SeirCes Tvisebebi:
Name(saxeli), Caption(warwera, romelSic gamoiyofa
swrafi mimarTvis Rilaki), ShortCut(`cxeli~ Rilakebi),
ImageIndex(ImageList gamosaxulebis nomeri), Hint
(karnaxis teqsti), HelpContext an HelpKeyword (cnobarze
131
mimarTva) da sxva. arastandartuli moqmedebebisaTvis
TviTon werT am moqmedebebs.
- yvela arastandartuli moqmedebebisaTvis iwereba
xdomilobis damuSavebis programa. standartuli
moqmedebebi avtomaturad damuSavdebian, Tumca zogjer
saWiroa maTSi cvlilebebis Setana, an sulac xelaxla
Seqmna.
amis Semdeg Tu gamoyenebulia ActionList:
- formaze gadaitaneT MainMenu komponenti, daukav-
SireT ImageList-s. komponentze formirdeba meniu da
mis nawilebSi mocemulia ActionList-Si aRweril
moqmedebebze gadacema;
- formaze SeqmeniT Toolbar. daukavSireT ImageList-s,
mis Rilakebze mocemulia ActionList-Si aRweril
moqmedebebze gadacema.
Tu gamoyenebulia ActionManager, maSin bolo ori
moqmedeba miiRebs saxes:
- formaze gadaitaneT ActionMainMenuBar(mTavari
menius zoli) komponenti. is ukavSirdeba ActionManager
komponents. Semdeg ActionManager komponentidan gadai-
taneT zolze menius nawilebi, romlebic meniuSi Sevlen,
rogorc saTaurebi an calkeuli moqmedebebi;
- ActionManager redaqtorSi iqmneba axali instrumen-
tuli paneli an ramodenime paneli. maTze gadaitaneT

132
TagviT saWiro moqmedebebi.
aRniSnuli moqmedebebi unda Sesruldes meniusa da
instrumentebis panelis moqmedebebis siis proeqti-
rebisas.

4.2 gamosaxulebis sia


ImageList komponenti
ImageList warmoadgens erTnairi zomis grafikuli
gamosaxulebebis sias, romelzec SeiZleba indeqsiT
mimarTva, dawyebuli 0-dan. am fanjris gamoZaxeba SeiZleba
ImageList-ze orjer dawkapunebiT. gamosaxulebis damateba
xdeba Add RilakiT. waSla Delete RilakiT. mTeli siis
gasufTaveba Clear RilakiT.
gamosaxulebebis siaSi SeiZleba gamoiyos esaTuis
gamosaxuleba, daayenoT maTi Tvisebebi: TransparentColor
da FillColor, rac SeiZleba Sesruldes mocemul seansSi
CatvirTul gamosaxulebebisaTvis.
ganvixiloT ImageList komponentis ramodenime meTodi.
Draw meTodi xedavs gamosaxulebas kanvaze, romelsac
siaSi aqvs Index indeqsi:
procedure Draw(Canvas: TCanvas; x,y,Index: Integer;
Enabled: Boolean = true);
x,y parametrebi gansazRvraven dasaxati obieqtebis
marcxena zeda kuTxis koordinatebs. Enabled parametri
133
uCvenebs, rom gamosaxuleba daixatos normalurad Tu
nacrisferi (false mniSvnelobisas), rogorc miuwvdomeli
komponenti. radgan dumiliT, Enabled = true, daxatvis
Cveulebrivi reJimisaTvis, es parametri SeiZleba ar
uCvenoT.
meTods
procedure GetBitmap(Index: Integer; Image: TBitMap);
procedure GetIcon(Index: Ineger;Image: TIcon);
gadaaqvs Index nomris gamosaxuleba siidan Image
grafikul obieqtSi. SemdgomSi es gamosaxuleba SeiZleba
nebismieri saxiT gamoiyenoT.
rigi meTodebisa, siaSi axali gamosaxulebebis dama-
tebis saSualebas iZleva, ganvixiloT funqciebi:
function Add(Image, Mask: TBitmap): Integer;
function AddIcon(Image: TIcon): Integer;
function AddMasked(Image: TBitmap;
MaskColor: TColor): Integer;
es meTodebi siaSi daamateben gamosaxulebas da
abruneben am gamosaxulebaze miniWebul indeqss. Mask
parametri gamosaxulebaze `niRabis~ damatebis saSualebas
iZleva. Tu Tviseba Masked = false, maSin es parametri
ignorirdeba.
AddMasked meTodi Add-s eqvivalenturia, magram
`niRabis~ nacvlad masSi naCvenebia MaskColor feri,

134
`niRabis~ avtomaturi generaciisaTvis.
meTodi
procedure Insert(Index: Integer;Image,Mask: TBitmap);
procedure InsertIcon(Index: Integer;Image: TIcon);
procedure InsertMasked(Index: Integer; Image: TBitmap;
MaskColor: TColor);
winas msgavsia, mxolod siaSi Casvams gamosaxulebas,
masze Index indeqsis micemiT. SemdgomSi gamosaxulebebis
indeqsebi Sesabamisad daiZvrebian.
meTodebi:
procedure Replace(Index: Integer; Image,Mask: TBitmap);
procedure ReplaceIcon(Index: Integer; Image: TIcon);
procedure ReplaceMasked(Index: Integer; NewImage:
TBitmap; MaskColor: TColor);
gansxvavdeba imiT, rom gamosaxulebas Index indeqsiT
moaTavsebs NewImage axali gamosaxulebiT.
meTodi:
procedure Delete(Index: Integer);
siidan waSlis Index indeqsis gamosaxulebas.
meTodi:
procedure Move(CurIndex, NewIndex: Integer);
gadaaadgilebs CurIndex indeqsian gamosaxulebas axal
adgilas, romelic naCvenebia NewIndex parametriT.

135
4.3 moqmedebebis dispetCerizeba
ActionList komponentebis gamoyenebiT
Tumca ActionList komponenti naklebad mZlavria vidre
ActionManager komponenti, magram mas Tavisi mniSvneloba
ar daukargavs.
ActionList komponentSi,romelic ganTavsebulia Standard
gverdze, Seitaneba moqmedebebis sia, romelsac adgenT
proeqtirebis dawyebisas.

136
gadaitaneT formaze aRniSnuli komponenti. aseve
gadaitaneT ImageList, xolo ActionList-is Images TvisebaSi
airCieT ImageList. am moqmedebisas ImageList komponentSi
Seitaneba Sesabamisi gamosaxulebebi.
ActionList komponentze orjer daawkapuneT.
suraTze mocemulia moqmedebebis redaqtoris fanjara
airCieT New Action(axali moqmedeba) brZaneba da New
Standard Action(axali standartuli moqmedeba). TiTo-
euli moqmedeba, romelic SeitaneT siaSi aris TAction
obieqtis ti pi. airCieT Categories velSi romelime
moqmedeba an All Actions(yvela kategoria), xolo marjvniv
airCieT konkretuli moqmedeba. yvela moqmedebisaTvis
SeirCieT Name da Caption Tvisebebi. SeiZleba ShortCut
(`cxeli~ Rilakebis) arCeva, aseve Hint(karnaxi) arCeva.
obieqtebis inspeqtoris xdomilobis gverdze TiTo-
euli moqmedebebisaTvis gansazRvrulia sami xdomiloba:
OnExecute, OnUpdate da OnHint.
OnExecute amoqmeddeba, roca momxmarebeli asrulebs
moqmedebas, magaliTad, daawkapuna komponentze, romelic
ukavSirdeba aRniSnul moqmedebas. magaliTad, AExit
moqmedebis OnExecute xdomilobis damuSavebis programas
umartives SemTxvevaSi aqvs saxe:
procedure TForm1.AExitExecute(Sender: TObject);
begin
137
Close;
end;
ufro rTul situaciebSi SeiZleba Seicavdes danarTis
daxurvis SesaZleblobis Semowmebas, momxmareblis
moTxovnebs da a.S.
UpDate xdomiloba periodulad muSaobs moqmedebebs
Soris. xdomilebis amoqmedeba Sewydeba mxolod
moqmedebebis realizaciis periodSi an maSin roca
momxmarebeli arafers ar akeTebs da kompiuteri imyofeba
molodinis mdgomareobaSi. OnUpDate xdomilobis
damuSavebis programa SeiZleba Seicavdes brZanebebs,
romelic uzrunvelyofs momdevno moqmedebisaTvis
momzadebas an fonuri operaciebis Sesrulebas.
OnHint xdomiloba amoqmeddeba maSin, roca ekranze
aisaxeba karnaxis iarliyi, Tagvis obieqtTan miaxloebisas.

4.4 standartul moqmedebebTan muSaoba


instrumentebis zolis awyoba
- formaze ganaTavseT ActionList da ImageList komponen-
tebi, ActionList-is Images Tvisebaze airCieT ImageList1,
imisaTvis rom maT Soris iyos kavSiri;
- orjer daawkapuneT ActionList -ze, Categories velSi
konteqstur meniuSi airCieT New Standard Action brZaneba
da airCieT sasurveli menius brZanebebi, aWerT Ok.

138
Rilakebi moTavsdeba Action velSi;
- orjer daawkapuneT ImageList-ze, es Rilakebi
piktogramebis saxiT asaxulia am fanjaraSi;
- ganaTavseT formaze ToolBar (Win32 CanarTidan),
konteqstur meniuSi airCieT New Button, daismeba
Rilakebi, moniSneT ToolBar da Images TvisebaSi airCieT
ImageList1, Rilakebi aisaxeba ToolBar -ze;
suraTze mocemulia teqsturi danarTis fanjara:

139
- moniSneT TiToeuli Rilaki da Action Tvisebaze
airCieT Sesabamisi Tviseba, ra moqmedebac unda Seasrulos
Rilakma. TiToeuli RilakisaTvis ShowHint TvisebaSi
airCieT true;
- formaze ganaTavseT Memo an RichEdit komponentebi.
akrefili teqstisaTvis isargebleT ToolBar -is Rila-
kebiT.

4.5 ActionManager moqmedebebis


dispetCeri
ActionManager komponenti Seadgens standartuli da
arastandartuli moqmedebebis sias, riTac igi ActionList-
is msgavsia, magram misi moqmedebebis diapazoni gacilebiT
farToa. is mxolod ar inaxavs moqmedebebis nakrebs,
igi marTavs moqmedebebis zolebs - vizualur
komponentebs. aseT komponentebs miekuTvneba
ActionMainMenuBar mTavari menius zoli, ActionToolBar
- instrumentebis paneli.
ActionManager komponenti inaxavs informacias moqmede-
bebis nakrebis da moqmedebebis zolis konfiguraciis
Semadgenlobaze. es informacia danarTSi saWiroebisamebr
avtomaturad CaitvirTeba.
Sesrulebisas awyoba SeiZleba ganxorcieldes
Sesabamisi standartuli moqmedebis gamoZaxebiT an

140
formaze gadatanili CustomizeDlg komponentze mimarTviT.
orive SemTxvevaSi gaixsneba moqmedebebis redaqtoris
dialoguri fanjara. igi uzrunvelyofs zedmeti
Rilakebis gauqmebas, xolo axlebis damatebas.
ActionManager-is State Tviseba gansazRvravs momxmareb-
lis moqmedebaze reaqcias. ssNormal Seesabameba normalur
muSa reaqcias: momxmareblis interfeisis komponentze
dawkapunebisas Sesruldes Sesabamisi moqmedeba. ori
SesaZlo mniSvnelobebia: asSuspended da asSuspen-
dedEnabled gamorTaven moqmedebis Sesrulebis SesaZleb-
lobas. aqedan pirveli ar cvlis moqmedebis Enabled
Tvisebas, xolo meores yvela moqmedebaSi Enabled
gadahyavs true mdgomareobaSi.
Tu Tqven raRac momentSi gsurT moqmedebebis zolebi,
romlebic imarTebian ActionManager1 komponentiT,
gadavidnen awyobis mdgomareobaSi, unda Sesruldes
operatorebi: ActionManager1.State := asSuspended; maSin
instrumentul Rilakze daWerisas an menius arCevisas
ar Sesruldeba Sesabamisi moqmedeba da integrirdeba
programiT sxvagvarad.
FileName Tviseba iZleva failis saxels, romelSic
ActionManager inaxavs informacias masTan dakavSirebul
moqmedebebis zolis Sesaxeb. Image Tviseba inaxavs
gamosaxulebebs.
141
formaze gadaitaneT ActionManager da masze orjer
daawkapuneT. gamosul fanjaraSi Categories da Actions
veli iqneba carieli.
suraTze mocemulia ActionManager komponentis Ac-
tions gverdi.

konteqstur meniuSi New Action an New Standard Ac-


tions a r C e v i T S e g i Z l i a T a r a s t a n d a r t u l i a n
standartuli moqmedebis arCeva. amis Semdeg Action
nawilSi gamoCndeba am moqmedebebis obieqtebis saxelebi,

142
xolo Categories-Si ki maTi kategoriebi. Tu gamoyofT
moqmedebebs obieqtebis inspeqtorze, SegiZliaT Caption,
Hint, ShortCut da sxva Tvisebebis Secvla.
ActionManager komponentis ToolBar gverdze mocemulia
dispetCeris mier marTvadi instrumentebis panelebi
(ActionToolBar) da meniu (ActionMainMenuBar). Action-
MenuBar komponenti danarTs daemateba komponentebis
palitridan maTi gadataniT, xolo ActionToolBar kompo-
nenti formaze daemateba New Rilakze daWeriT. Delete
Rilaki waSlis moniSnul moqmedebebis panels siidanac
da danarTidanac.

143
suraTze mocemulia ActionManager komponentis
moqmedebebis redaqtoris Toolbars gverdi.
mas Semdeg, rac New RilakiT daamateT axali
instrumentuli paneli an gadaitaneT formaze Action-
MainMenuBar meniu, daubrundiT Actions da gadaitaneT
misgan TagviT panelze an menius zolze moTxovnili
moqmedeba an mTlianad kategoria. Tu meniuSi gadaitaneba
kategoria, misi warwera gaxdeba menius ganyofilebis
saTauri.
AllowHding Tviseba uzrunvelyofs zoli Sesrulebis
procesSi iyos Tu araxilvadi. Tu is aris false mdgo-
mareobaSi, maSin es zoli nacrisferiT iqneba asaxuli.
Option gverdi ramodenime opciis dayenebis saSualebas
iZleva.
Menus Show recently used first-qmnis gadawyobad menius.
Reset Usage Data - aRadgens moqmedebebis zolis sawyis
mdgomareobas. Large icons moqmedebebis zolSi gamoitans
did piktogramebs; Show tips on toolbars instrumentul
striqonze mcuravi iarliyebis gamotanas uzrunvelyofs;
Show shortcut keys in tips uzrunvelyofs iarliyebis
teqstSi `cxeli~ Rilakebis Setanas. Menu animation
CamoSladi sia gansazRvravs menius asaxvis formas.

144
4.6 teqsturi danarTi
avagoT danarTi, romelic Sesdgeba Memo, Files, Edit,
Tools punqtebiT dakompleqtebuli meniusagan, ori
instrumentuli panelisagan: erTi maTgani dublirebas
ukeTebs Edit menius, xolo meore Files. meniu Files Sesdgeba
Open, Save, Save as brZanebebisagan. Edit Sesdgeba: Cut,
Copy, Paste, Select All, Undo, Delete-sagan, xolo Tools
Sesdgeba Settings nawilisagan, romelic uzrunvelyofs
mTavari menius da instrumentuli panelebis dayenebas.
avagoT teqsturi danarTi, romelic naCvenebia suraTze.

- formaze gadaitaneT Memo, ImageList, ActionMain-


MenuBar da ActionManager. ActionManager komponentze
145
Images TvisebaSi airCieT ImageList1. ActionManager
komponentze orjer daawkapuneT. moqmedebebis
redaqtoris fanjarSi airCieT orjer ToolBar da orjer
daawkapuneT New Rilakze, imisaTvis rom danarTze
daetios ori instrumentuli paneli.
- moqmedebebis redaqtoris fanjaraSi airCieT Actions
gverdi da daaWireT Tagvis marjvena Rilaks. konteqstur
meniuSi airCieT New Standard Action, radgan ZiriTadad
gamoviyenebT standartul moqmedebebs.
- gaxsnil siaSi airCieT Edit-is yvela moqmedebebi
File kategoriidan: TFileOpen, TFileSaveAs da TFileExit
moqmedebebi da Tools kategoriidan TCustomizeActionBars
moqmedebebi da daaWireT Ok.
- saWiroa kidev erTi arastandartuli moqmedeba
Save. gadainacvleT fanjris marcxena panelze File
kategoriaSi da daaWireT New Action an igive airCieT
konteqstur meniuSi. fanjris marjvena panelze gaCndeba
axali moqmedeba Action1 saxeliT.
- TiToeuli moqmedebisaTvis miuTiTeT None, Caption,
Hint, ShortCut.
- gadaitaneT yvela moqmedebebi instrumentul zolze
Tagvis daxmarebiT.
- ActionManager1 komponentis FileName TvisebaSi
fails daarqviT saxeli, romelSic Seinaxeba informacia

146
panelebisa da menius konfiguraciis Sesaxeb. amis Semdeg
SeasruleT danarTi.
instrumentuli panelebis marjvena boloebSi Cans
Rilaki isriT. am Rilakze daWeriT gaixsneba or
nawiliani meniu: Add or Remove Buttons (Rilakis damateba
an amogdeba), da Reset Toolbar (panelis sawyisi mdgoma-
reobis aRdgena). pirveli nawili uCvenebs moqmedebebis
sias gverdiT indikatorebiT. indikatoris CarTva
moqmedebas amoagdebs panelidan. panelis sawyisi
mdgomareobis aRdgena xdeba indikatoris kvlav CarTviT
an Reset Toolbar brZanebis SesrulebiT.
- ActionManager1-ze ori dawkapunebiT gaxseniT
moqmedebebis redaqtori da Actions gverdze gamoyaviT
Open moqmedeba. obieqtebis inspeqtorze naxavT am
moqmedebis Tvisebas da maT Soris Dialog Tvisebas.
gaxseniT es dialogi da SeitaneT Sesabamisi brZanebebi.
- danarTSi SeitaneT FileName globaluri cvladi,
xolo masSi SeitaneT failis saxeli, romelSic Seinaxeba
Memo redaqtirebis fanjris teqsti:
Var FileName: string;
- Open brZanebisaTvis unda daiweros mxolod OnAccept
(Tu gakeTda arCeva da aWerT Ok) xdomilobis damuSavebis
programa:
FileName := FileOpen1.Dialog.FileName;
147
Memo1.Lines.LoadFromFile(FileName);
pirveli operatori FileName cvladSi naxavs arCeuli
failis saxels; meore operatori Memo1-Si CatvirTavs
fails.
es operatorebi gadaiwereba Semdegnairad: airCieT
Open, daawkapuneT obieqtebis inspeqtorze Sesabamisi
xdomilobis gverdiT;
- Save as brZanebisaTvis unda daiweros BeforeExecute
da OnAccept xdomilobebis damuSavebis programebi. amaTgan
pirvelSi SeitaneT dialogSi failis saxeli (FileName),
rogorc, dumiliT, SemoTavazebuli:
FileSaveAs1.Dialog.FileName := FileName;
OnAccept xdomilobis dammuSavebelSi damaxsovrebul
iqneba arCeuli failis saxeli da Memo1-is fanjridan
teqsti Seinaxeba am failSi:
FileName := FileSaveAs1.Dialog.FileName;
Memo1.Lines.SaveToFile(FileName);
- Save brZaneba xorcieldeba operatoriT:
if FileName < > ‘’
then Memo1.Lines.SaveToFile(FileName);
else FileSaveAs1.Execute;

148
V Tavi
momxmareblis grafikuli interfeisis
damuSaveba
5.1 grafikuli interfeisis
damuSavebis zogadi rekomendaciebi
Delphi grafikuli interfeisis Seqmnis farTo saSua-
lebebs gvTavazobs. ase, rom dammuSavebels SeuZlia
Tavisi fantaziebis maqsimaluri gamovlena.
Microsoft-is firmam SemogvTavaza programuli uzrun-
velyofis damuSavebis specifika, radgan momxmarebelma
interfeisis aTvisebisaTvis bevri dro ar dakargos.
grafikuli interfeisi unda Seicavdes:
- mTavar menius, romelic realizdeba MainMenu an
ActionManager, ActionMainMenuBar komponentebiT;
- swrafi Rilakebis instrumentul panelebs. xSirad
es aris ToolBar komponenti;
konteqstur menius (realizdeba PopupMenu-s
daxmarebiT);
- swrafi mimarTvis Rilakebs, `cxel~ Rilakebs
ZiriTad brZanebebTan mimarTvisaTvis;
- karnaxis iarliyebs;
- mdgomareobis zols (StatusBar);
- sacnobaro sistemas, romelic gamodis F1 RilakiT;
- danarTis awyobis saSualebebs, awyobis damaxsovrebas,
149
rom muSaobis wina seansis awyobebi aRdges momdevno
seansSi;
- danarTis dayenebis saSualebas. mis registracias
Windows-Si da waSlas Windows-dan.

5.2 mravalfanjriani interfeisi


xSirad danarTi ar Semoifargleba erTi fanjriT.
amitom saWiroa fanjrebis marTva. aris danarTis ori
sxvadasxva modeli; erTdokumentiani interfeisiT (SDI)
da mravaldokumentiani interfeisiT (MDI).
SDI danarTi ar niSnavs mxolod erTi fanjris gaxsnis
SesaZleblobas, saWiroebis SemTxvevaSi ZiriTadi
fanjridan gaixsneba meoradi fanjrebi.
MDI danarTs aqvs Tavisi upiratesoba. aseTi danarTis
magaliTia Microsoft Word. aseT danarTSi aris mSobeli
forma da Svili formebi. Svili fanjrebi imarTebian
da Semoifarglebian mSobeli fanjrebiT. Tu SeamcirebT
mSobeli fanjris zomebs, Svili fanjrebi mxedvelobis
aredan qrebian.
MDI modeli ufro iSviaTad gamoiyeneba. igi
gamoiyeneba, magaliTad, im SemTxvevebisaTvis roca Svili
fanjrebi Seicaven identur informacias, rogoricaa
teqsturi dokumentebi, eleqtronuli cxrilebi.

150
5.3 danarTis fanjris stili
danarTis ZiriTadi elementia forma - konteineri,
romelzec ganTavsdebian vizualuri da aravizua-
lurikomponentebi. TiToeul fanjaras Tavisi Unit moduli
Seesabameba.
BorderStyle Tviseba gansazrvravs fanjrebis da maTTan
operaciebis saerTo xeds. man SeiZleba miiRos mniSvne-
lobebi: bsSizeable - Cveulebrivi fanjara saTauris zoliT,
aqvs zomebis Secvlis saSualebebi; bsDialog- fanjara
Seucvleli zomebiT; bsSingle - fanjris zomebi ar
Seicvleba Tagvis isriT fanjris kideebidan, aramed
Seicvleba mxolod saTauridan; bsToolWindow - bsSingle
msgavsia, mxolod saTauris ufro mcire zomis zoliT;
bsSizeToolWin - bsSizeable-s msgavsia, mxolod saTauris
mcire zoliT, romelsac ara aqvs zomis Secvlis Rilaki;
bsNone - saTauris zolis gareSe.
BorderIcons Tviseba gansazRvravs saTauris zolze
ganTavsebul Rilakebs:
bsSistemMenu-fanjris daxurva; byMinimize-fanjris
minimizeba; byMaximize-fanjris maqsimizeba; byHelp-
cnobaris Rilaki.
formis WindowState Tviseba gansazRvravs saxes, ro-
melSic danarTis Sesrulebisas momxmarebels waredgineba
pirveladi fanjara, igi Rebulobs mniSvnelobebs:
151
wsNormal-fanjris normaluri saxe; wsMinimized-
minimizebuli fanjara; wsMaximized-mTel ekranze gaSlili
fanjara.
FormStyle Tvisebam SeiZleba miiRos mniSvnelobebi:
fsNormal-Cveulebrivi danarTis fanjara. es mniSvne-
loba dumiliT aris miRebuli;
fsMDIForm - MDI danarTis mSobeli forma anu danarTi
Svili formebiT;
fsMDIShild - MDI danarTis Svili forma;
fsStayOnTop - fanjara yovelTvis iqneba winaplanze.
meniuSi Tu SeitanT brZanebas `yvelaze zedapirze~,
am ganyofilebis AutoCheck Tviseba gautoleT true-s
da am ganyofilebis damuSavebis programaSi SeitaneT:
if MStayOnTop.Checkedss
thrn Form1.FormStyle := fsStayOnTop
else Form1.FormStyle := fsNormal;

152
aq igulisxmeba, rom menius punqts romelzec aris
saubari hqvia MStayOnTop. am punqtis xelaxali arCeviT
indikatori gaqreba da fanjara SeiZens Cveulebriv
statuss, rac naCvenebia suraTze.

5.4 elementebis fokusirebis mimdevroba


komponentidan komponentze gadasarTavad sasurvelia
Tab Rilakis gamoyeneba.
formis ActiveControl Tviseba gansazRvravs formaze
ganTavsebuli elementebidan romeli iqneba fokusSi
danarTis Sesrulebis pirvelsave momentSi. Sesrulebis
procesSi es Tviseba icvleba da uCvenebs im komponents,
romelic mocemul momentSi aris fokusSi.
tabulaciis mimdevroba mocemulia komponentebis
TabOrder TvisebaSi. pirvel elements eniWeba TabOrder=0,
meores 1 da a.S. TabOrder = 0 niSnavs, rom ekranze formis
pirveli gamoCenisas fokusSi iqneba swored es elementi
(Tu ar aris mocemuli formis ActiveControl Tviseba).
magaliTad, Tu formaze mocemulia ramodenime paneli,
formaze TiToeul panels miecema TabOrder rogorc erT
komponents, xolo panelis SigniT iqneba tabulaciis
Tavisi mimdevroba. erTi elementis TabOrder -is Secvla
gamoiwvevs imas, rom yvela danarCeni elementebisaTvis
TabOrder Seicvleba avtomaturad, rom gamoiricxos
153
dublireba. am Tvisebis saTiTaod dayeneba rTulia,
amisaTvis aris specialuri brZaneba Edit|TabOrder, romelic
dialogis reJimSi yvela elementebis tabu-laciis arCevis
saSualebas iZleva.
TabOrder Tvisebas azri aqvs maSin, roca TabStop
Tviseba aris true mdgomareobaSi da Tu komponents aqvs
mSobeli komponenti.
fokusis gadarTva SeiZleba programuladac, ope-
ratoriT:
Edit2.SetFocus;
Tu saWiroa Edit1 redaqtirebis fanjridan Edit2-Si
gadasvla Enter-is daWeriT, OnKeyDown xdomilebis
damuSavebis programa miiRebs saxes:
procedure TForm1.Edit1KeyDown(Sender: TObject; var
key: Word; Shift: TShiftState);
begin
if (key = VK_RETURN) then Edit2.SetFocus;
end;

5.5konteqsturi cnobari
konteqsturad damokidebuli cnobari amoqmeddeba F1
RilakiT da igi mogvcems informacias im komponentis
Sesaxeb, romelic mocemul momentSi aris fokusSi.
Tu HelpContext = 0, maSin mocemuli komponenti

154
cnobars miiRebs mSobeli komponentisagan. magaliTad,
erT panelze ganlagebuli komponentebisaTvis SeiZleba
mieniWos HelpContext = 0, xolo TviT panels mieciT
nulisagan gansxvavebuli HelpContext mniSvneloba, romelic
Seicavs panelis yvela komponentis aRweras.
amis asamuSaveblad SeasruleT brZaneba: Project|Options
da Project Options fanjaraSi(gverdi Application) daayeneT
HelpFile opcia, romelic udris momzadebuli .hlp failis
saxels. proeqtis ZiriTad failSi gaCndeba operatori:
Application.HelpFile := ‘<failis saxeli.hlp>’;
am operatorSi gamoiyeneba HelpFile meTodi, romelic
gansazRvravs cnobaris fails.
cnobari Seiqmneba romelime teqstur redaqtorSi.
Delphi mxolod gamoiZaxebs mas.

5.6 komponentebis gasworeba


Align Tviseba
fanjris zomebis gazrdisas sasurvelia gaizardos
masze moTavsebuli komponentebis zomebic, rac xorciel-
deba Align TvisebiT. dumiliT misi mniSvnelobaa alNone,
rac niSnavs, rom gasworeba ar moqmedebs. Align Tvisebam
SeiZleba miiRos Semdegi mniSvnelobebi: alTop, alBottom,
alLeft, alRight, rac niSnavs rom komponentma SeiZleba
daikavos ares zeda, qveda, marcxena an marjvena nawili.
155
AlClient mniSvnelobis dros komponenti ikavebs mTel ares.
AlCustom (SekveTili) SemTxvevaSi komponentis mdebareoba
ganisazRvreba CustomAlignInsertBefore da CustomAlignPosition
gamoZaxebiT.
Align Tvisebas aqvs gansazRvruli prioriteti: alTop
da alBottom-s aqvs ufro maRali prioriteti, vidre
alLeft da alRight.

5.7 komponentebis adgilmdebareobisa


da zomebis Secvla
fanjrebian komponentebs aqvT Anchors Tviseba-mSobel
formebTan kavSiri maTi zomebis Secvlisas. es Tviseba
Seicavs Semdeg elementebs:
akTop-komponentis zeda kide dakavSirebulia mSobeli
komponentis zeda kidesTan;
akLeft-komponentis marcxena kide dakavSirebulia
mSobeli formis marcxena kidesTan;
akRight da akBottom-gaTvaliswinebulia Sesabamisad
marjvena da qveda kideebisaTvis.
dumiliT, Anchors Tviseba tolia [akLeft, akTop]. Tu
Anchors TvisebaSi mocemuli iqneba dakavSireba mSobeli
komponentis sawinaaRmdego mxareebTan, maSin mSobeli
komponentis zomebis Secvlisas Seicvleba mocemuli
komponentis zomebic.

156
ClientWidth da ClientHeight Tvisebebi gansazRvraven
komponent-konteineris klientis ares zomebs, xolo Width
da Height komponentebis siganesa da simaRles. radgan
formis zomebis Secvlisas icvleba komponentis zomebi
da adgilmdebareoba, amitom Sesabamisi operatorebi unda
ganTavsdnen formis OnResize xdomilebis damuSavebis
programaSi. fanjris zomebis Secvlisas komponentebis
ganlagebis Seusabamobas rom avaridoT Tavi, sasurvelia
OnShow xdomilobasTan dakavSireba, romlis damuSavebis
programas aqvs saxe:
StaticText1.Left := Panel2.Left + (Panel2.ClientWidth-
StaticText1.Width) div 2;
aRniSnuli operatori StaticText1 komponentis marcxena
bolos daZravs ise, rom Wde yovelTvis ganTavsdes
Panel panelis SuaSi, ris normaluri muSaobisaTvis unda
gauqmdes Wdis dakavSireba panelis marjvena napirTan
(Tu es adre iyo dayenebuli).

5.8 komponentebis masStabireba


komponentebis zomebis Secvlis SesaZlebloba
gaTvaliswinebulia ScaleBy meTodSi. igi gansazRvrulia
rogorc:
procedure ScaleBy(M,D: Integer);
sadac M da D - gamamravlebeli da gamyofia, romelic
157
gansazRvravs komponentis masStabis Secvlas. masSta-
birdeba komponentis Width da Height Tvisebebi, aseve Top
da Left, romlebic gansazRvraven maT adgilmdeba-reobas.
Tu yvela Svil komponentze ParentFont = true, xolo
komponent-konteinerSi ParentFont = false, maSin
proporciulad icvleba komponentebis Sriftebic.
zomebis 10%-iT SemcirebisaTvis M-s unda mivceT
mniSvneloba 9, xolo D = 10 (9/10). Tu gsurT gsurT
zomis 1/3-iT gazrda, maSin M = 133 da D = 100 (133/100)
an M = 4 da D =3 (4/3).
magaliTad, operatori:
Edit1.ScaleBy(11,10);
Edit1-is masStabirebis saSualebas iZleva. masTan erTad
Sriftis zoma Seicvleba Tu komponentis Tviseba
ParentFont = false. ase, rom Tu AutoSize = true da ParentFont
= true, Seicvleba mxolod redaqtirebis fanjris zoma.
e.i. zemoT moyvanili operatori eqvivalenturia Semdegi
operatoris:
Edit1.Width := 11*Edit1.Width div 10;
mxolod ufro kompaqturia.
fanjris zomebis Secvla SeiZleba Alt-U da Alt-D
RilakebiT. amisaTvis OnKeyUp xdomilobis damuSavebis
programaSi SeiZleba daiweros:
procedure TForm1.Edit1.KeyUp(Sender: TObject;

158
Var Key: Word; Shift: TShiftState);
begin
if (key = ord(‘U’)) and (ssAlt in Shift) then
Edit1.ScaleBy(11,10) else
if (Key = ord(‘D’)) and (ssAlt in Shift)
then Edit1.ScaleBy(10,11)
end;
roca Edit1 imyofeba fokusSi, momxmareblis mier [Alt-
U] Rilakze daWerisas redaqtoris fanjris zoma 10%-
iT gaizrdeba, xolo [Alt-D]-ze daWerisas Sesabamisad
mcirdeba.
redaqtirebis fanjrisaTvis Tu ParentFont = false, maSin
fanjris SecvlasTan erTad icvleba Sriftis zomac.
magaliTad, operatori:
Panel1.ScaleBy(11,10);
zrdis panelis zomas, aseve yvela misi komponentis
zomebsac. Tu ParentFont = false, maSin yvela komponentze
Srifti gaizrdeba ParentFont Tvisebis mniSvnelobisagan
damoukideblad. Tanac Srifti gaizrdeba arafanjrul
komponentebze, magaliTad rogoricaa Wde. Tu panelze
ParentFont = true, maSin Srifti gaizrdeba mxolod im
komponentebze, romlebzec ParentFont = false.
zemoT ganxiluli operatori cvlis komponentebis
jgufis masStabs, magram amave dros daZravs maT pozicias,
159
radgan moqmedebs Top da Left Tvisebebze. amisagan Tavis
dasaRwevad SeiZleba mimarToT panelis TiToeul Svil
komponents Semdegi operatorebiT:
Var ind: integer;
.......
for ind := 0 to Panel1.ControlCount-1
do if(Panel1.Controls[ind] is TWinControl) then
(Panel1.Controls[ind]as TWinControl).ScaleBy(11,10);
gaiTvaliswineT rom ScaleBy-s uSualo gamoyeneba
SeiZleba mxolod TWinControl klasis fanjrisebur
komponentebTan. amitomac mowmdeba aris Tu ara
komponenti TWinControl ti pis. arafanjriseburi kompo-
nentebi, magaliTad Wde, am dros ar masStabirdeba.

5.9 Tagvis xdomilobebi


TagvTan dakavSirebulia mTeli rigi xdomilobebi:
OnClick- komponentze TagviT dawkapuneba;
OnDblClick- komponentze TagviT ori dawkapuneba;
OnMouseDown- komponentze Tagvis Rilakis daWera.
SesaZlebelia daWerili RilakiT Tagvis kursoris
koordinatas amocnoba.
OnMouseMove- komponentze Tagvis Rilakis gadata-
reba. SesaZlebelia daWerili RilakiT Tagvis kursoris
koordinatas amocnoba;

160
OnMouseUp- Tagvis daWerili Rilakis komponentidan
aSveba. SesaZlebelia kursoris koordinatas gansazRvra.
OnStartDrag-obieqtis gadatanis procesis dasawyisi.
SesaZlebelia gadasatani obieqtis amocnoba;
OnDragOver- gadasatani obieqtis komponentze
gadaadgileba. SesaZlebelia gadasatani obieqtis da Tagvis
kursoris koordinatas gansazRvra;
OnDragDrop-obieqtis gadatanis Semdeg Tagvis
daWerili Rilakidan TiTis aSveba, SesaZlebelia
gadasatani obieqtisa da Tagvis kursoris koordinatas
amocnoba;
OnEndDrag-winas msgavsi kidev erTi xdomiloba;
OnEnter-Tagvis mani pulaciis, tabulaciaze daWeris
an programulad gadacemis Sedegad fokusSi myofi
elementis xdomiloba;
OnExit-elementis fokusis dakargvis Sedegad aRZruli
xdomileba;
OnMouseWheel-Tagvis Tavisufali brunvisas aRZruli
xdomiloba;M
OnMouseWheelUp-Tagvis wriuli brunva zemoT.
aRiZvreba, Tu moZraoba ar aris damuSavebuli wina
xdomilobiT;
OnMouseWheelDown-Tagvis wriuli brunva qvemoT,
aRiZvreba Tu ar aris gamoyenebuli OnMouseWheel -
161
xdomiloba.
Tu gsurT Tagvis saSualebiT daxmarebis gamotana,
Sesabamisi Rilaki an menius punqti ganaTavseT formaze
da Cursor parametrSi airCieT crHelp mniSvneloba.
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Cursor := crHelp;
end;
informaciis asaxvisaTvis formaze unda ganTavsdes
redaqtirebis fanjara, magaliTad Memo1. formisa da
Image1 komponentis OnMouseDown xdomilobis damuSa-
vebis programaSi SeitaneT:
procedure TForm1.Image1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState; x,y: Integer);
begin
if ((Sender as TControl).Name < >’Image1’)
then Cursor := crDefault;
if (Cursor < > crHelp) then exit;
Memo1.Lines.Clear;
if (y < 120) then
if (x < 160) then
Memo1.Lines.Add(‘. . . ‘)
else if (x < 270) then

162
...
Cursor := crDefault;
end;
pirveli operatorebi uzrunvelyofen proceduridan
gasvlas im SemTxvevaSi, Tu kursoris saxe ar aris
crHelp an dawkapuneba ar moxdeba gamosaxulebaze. Semdegi
operatori redaqtirebis fanjaras wmends wina
informaciisagan, Semdeg if struqtura aanalizebs kursoris
koordinatebs da Sesabamisad gamosaxavs ama Tu im
informacias.

5.10 klaviaturis xdomilobebi


Delphi-s fanjrebian komponentebSi gaTvaliswinebulia
klaviaturasTan dakavSirebuli sami xdomiloba:
OnKeyDown-xdomiloba aRiZvreba momxmareblis mier
nebismier Rilakze daWerisas. amoicnoba funqcionaluri
da Tagvis Rilakebi da ar amoicnoba daWerili simbolo;
OnKeyPress - xdomiloba aRiZvreba simboloze daWe-
risas. amoicnoba simbolo da ar amoicnoba funqciona-
luri Rilakebi da Tagvis Rilaki, ganasxvavebs simbolos
zeda da qveda registrebs;
OnKeyUp - xdomiloba aRiZvreba momxmareblis mier
nebismieri Rilakis aSvebisas. amoicnoba funqcionaluri
Rilakebi, Tagvis Rilaki da ar amoicnoba simbolo.
163
ganvixiloT sad aRiZvreba klaviaturis xdomilobebi.
formas aqvs KeyPreview Tviseba. dumiliT, KeyPreview
Tviseba udris false da klaviaturis xdomilobebi
aRiZvreba dammuSavebelSi, romelic gaTvaliswinebulia
mocemul momentSi aqtiuri komponentisaTvis. Tu
KeyPreview = true, dasawyisSi xdomilobebi aRiZvreba
formisaTvis, Tu igi gaTvaliswinebulia, Semdeg ki
aqtiuri komponentisaTvis.
danarTis OnShortCut xdomiloba aRiZvreba momxma-
reblis mier Rilakis daWerisas. es xdomiloba aRiZvreba
komponentis an formis OnKeyDown xdomilobis aRZv-
ramde. es xdomiloba, rogorc danarTis yvela xdomiloba,
daaswrebs ApplicationEvents komponents. am xdomilobis
damuSavebis programa iTvaliswinebs Rilakis daWerisas
arastandartul reaqcias. masSi gadaicema Msg
Setyobinebis parametri, CharCode veli, romelsac Seicavs
daWerili Rilakis virtualuri kodi. gadaigzavneba
Handled parametri, Tu igi uris true-s, maSin OnKeyDown,
OnKeyPress, OnKeyUp xdomiloba ar amoqmeddeba.
ganvixiloT magaliTi, sadac `Q~ Rilakis daWerisas
danarTi daixureba, Tu SekiTxvaze upasuxebT TanxmobiT.
ApplicationEvents komponentis OnShortCut Tvisebis
damuSavebis programas eqneba saxe:
procedure TForm1.ApplicationEvents1ShortCut(var Msg:

164
TWMKey; var Handled: Boolean);
begin
if Msg.CharCode = Ord(‘Q’) then
if Application.MessageBox(‘gsurT muSaobis
dasruleba?’, ‘daadastureT’, MB_YESNOCANCEL+
MB_ICONQUESTION) = IDYES
then Application.Terminate;
end;
5.11 daWerili Rilakis amocnoba
Key parametri amoicnobs xdomilobis momentSi
daWeril Rilaks. es parametri aris mTeli ricxvi,
romelic gamoxatavs Rilaks.

Rilaki aTobiTi Teqvsmet. simboluri Sedareba


ricxvi ricxvi saxeli Ord iT
F1 112 $70 VK_F1
Enter 13 $0D VK_RETURN
Shift 16 $10 VK_SHIFT
Ctrl 17 $11 VK_CONTROL

Alt 18 $12 VK_MENU


Esc 27 $1B VK_UPCASE

0,) 48 $30 ord(‘0’)

1 ! 49 $31 ord(‘1’)

n,N,T,T 78 $4E ord(‘N’)


y,Y,H,H 89 $59 ord(‘Y’)

165
magaliTad Enter Rilakze daWeris reaqcia SeiZleba
Semowmdes operatoriT:
if (Key = 13) then . . . ;
zemoT warmodgenil cxrilSi mocemulia Rilakebis
zogierTi kodi. igive operatori SeiZleba daiweros
simboluri saxeliT, rac agvacilebs ricxviTi kodis
damaxsovrebas:
if (Key = VK_RETURN) then . . . ;
Semowmebis erT-erTi xerxia Ord funqciiT sargebloba,
romelic gansazRvravs simbolos kods. laTinuri
simboloebis zeda registris kodi emTxveva Key
parametrSi gamoyenebul virtualur kodebs. amitom Tu
saWiroa `Y~ simbolos Sesabamisi Rilakis amocnoba,
SeiZleba daiweros:
if (Key = Ord(‘Y’)) then . . . ;
aq gamoiyeneba mxolod laTinuri anbani zeda
registrSi.
moviyvanoT magaliTi, sadac Enter-daWerisas fokusi
avtomaturad gadaecema momdevno fanjrian komponents:
if (Key = VK_RETURN) then
FindNextControl(Sender as TWinControl, true, true,
false).SetFocus;
es operatori FindNextControl meTodiT eZebs
tabulaciis mimdevrobaSi momdevno komponents da mas

166
gadascems fokuss.
ganvixiloT Rilakebis kombinaciis amocnobis
magaliTi. Tu gsurT Alt-X kombinaciis amocnoba,
SeiZleba daiweros operatori:
if ((Key = Ord(‘X’)) and (ssAlt in Shift)) then . . . ;
Cven ganvixileT Rilakebis amocnoba OnKeyDown
xdomilobisas.
ganvixiloT OnKeyPress xdomilobebi. am
xdomilobis damuSavebis programis saTauria:
procedure (Sender: TObject; Var Key: Char);
am dammuSavebelSi Key parametri gadaicema, igi
simbolos ti pisaa. Tu SekiTxvaze saWiroa dadebiTi
pasuxis gacema OnKeyPress xdomilobis damuSavebis
programaSi daiwereba operatori:
if ((Key = ‘Y’) or (Key = ‘n’)) then . . . ;
in operaciis gamoyenebiT aRniSnuli Semdegnairad
daiwereba:
if (Key in [‘Y’, ‘y’]) then . . . ;
yvela dasaSveb pasuxze reaqcias axorcielebs
Case operatori:
Case Key of
‘Y’, ‘y’:. . . ;
‘N’, ‘n’:’ . . .
else beep;
167
end;
beep aris xmovani signali SecdomiT pasuxze.
Tu gsurT Edit1 komponentSi SeitanoT mxolod
mTeli ricxvebi, mZimeebi da probelebi (gamomyof
niSnebis saxiT) es daiwereba Semdegnairad:
if not (Key in [‘0’..’9’,’ ‘,’,’]) then Key := #0;
Tu ganxilul magaliTSi SeitanT cifris, mZimisa
da `probelis~ garda sxva simbolos, igi Seicvleba
0-iT da ar gamoCndeba.
SecdomiTi Rilakis daWerisas xmovani signalis
gamosacemad ganxiluli operatori miiRebs saxes:
if not (Key in [‘0’..’9’,’ ‘,’,’])
then begin
Key := #0;
Beep;
end;

5.12 obieqtebis Sesaxeb informaciis gadatana


Drag&Drop teqnologia
obieqtebis gadatanasTan dakavSirebuli yvela
Tviseba, meTodi da xdomiloba gansazRvrulia TControl
klasSi. gadatanis procesis dasawyisi ganisazRvreba
DragMode TvisebiT, romelic SeiZleba udrides
dmManual an dmAutomatic. dmAutomatic gansazRvravs

168
gadatanis procesis avtomatur dawyebas komponentze
Tagvis daWerisas. dmManual (xeliT) niSnavs, rom gadatanis
procesis dawyebas gansazRvravs programisti, risTvisac
igi saWiroebisamebr gamoiZaxebs BeginDrag meTods.
magaliTad, mas SeuZlia am funqciis gamoZaxeba moaTavsos
OnMouseDown xdomilobaSi, romelic aRiZvreba Tagvis
Rilakis daWerisas. am dammuSavebelSi igi amowmebs raRac
pirobebs da Semdeg iZaxebs BeginDrag meTods.
magaliTad, unda daiwyos gadatanis procesi, roca
ListBox1-ze momxmarebeli daaWers Tagvis marcxena
Rilaks da klaviaturaze Alt Rilaks. maSin DragMode
Tviseba aRniSnuli komponentisaTvis unda daayenoT
dmManual-Si, xolo mis OnMouseDown xdomilobis
damuSavebis programaSi CawerT:
procedure TForm1.ListBox1MouseDown(Sender:
TObject; Button: TMouseButton;Shift: TShiftState;
x,y:integer);
begin
if (Button = mbLeft) and (ssAlt in Shift)
then ListBox1.BeginDrag(false);
end;
Shift parametri aris simravle, romelic Seicavs
TagviT daWerili Rilakebis aRniSvnas da klaviaturis
damxmare Rilakebs

169
BeginDrag funqcias aqvs false mniSvneloba. rac niSnavs,
rom gadatanis procesi ar daiwyeba maSinve, aramed mas
Semdeg rac daWerili RilakiT momxmarebeli daZravs
Tagvs. Tu BeginDrag aqvs true mniSvneloba, maSinve daiwyeba
gadatana. gadatanis procesSi kursoris saxe icvleba,
sanam igi gadaadgildeba im obieqtze, romlebic ar iReben
misgan informacias, misi ti pia crNoDrop. Tu igi
gadaadgildeba obieqtze, romelic misi informaciis
misaRebad aris mzad, maSin miiRebs saxes, romelic
ganisazRvreba gadasatani obieqtis DragCursor TvisebiT.
dammuSavebelSi unda Semowmdes obieqti aris Tu
ara mzad informaciis misaRebad da Tu ar aris, maSin
mimRebi obieqtis Accept parametrs unda mieces false
mniSvneloba. ListBox1-saTvis xdomilobis damuSavebis
programa (mimRebisaTvis) miiRebs saxes:
procedure TForm1.ListBox1DragOver(Sender, Source:
TObject);
x,y: Integer;
State: TDragState;
var Accept: Boolean);
begin
if (Source as TControl < > Sender)
then Accept := Source is TListBox else
Accept := false;

170
end;
dasawyisSi mowmdeba mocemuli komponenti (Sender)
da gadasatani obieqti (Source) xom ar aris erTidaigive,
Tu es asea, maSin amuSavdeba else da Accept parametri
gautoldeba false-s. Tu isini sxvadasxva obieqtebia, Accept
gautoldeba true-s.
OnDragDrop xdomilobis damuSavebis programa
(gadasatani obieqtisaTvis) miiRebs saxes:
procedure TForm1.ListBox1DragDrop(Sender, Source:
TObject; x,y: integer);
begin
(Sender as Tlistbox).Items.Add((Source as
TListBox).Items[(Source as TListBox).ItemIndex]);
end;
Tu mocemulia danarTSi ramodenime ListBox da
gsurT, rom erTidan nebismier sxva ListBox-ze gadaitanoT
sia, saWiroa Sesruldes operaciebi:
- dawereT erTi siisaTvis OnDragOver xdomilobis
damuSavebis programa. danarCeni siebisaTvis obieqtebis
inspeqtoris daxmarebiT daukavSireT OnDragOver
xdomiloba imave dammuSavebels. amisaTvis: gamoyaviT
formaze yvela siebi da obieqtebis inspeqtorze dawereT
OnDragOver xdomilobis damuSavebis programa yvela
moniSnulisaTvis.
171
- aseve yvela siebisaTvis dawereT OnDragDrop
xdomilobis damuSavebis programa.
Tu gsurT gadatanis Sesruleba damatebiTi pirobis
SemTxvevaSi, magaliTad Alt Rilakis daWerisas, kidev erTi
moqmedeba unda Sesruldes;
- yvela siisaTvis DragMode Tviseba gautoleT
dmManual-s. dawereT zemoT aRwerili xerxiT yvela
siisaTvis OnMouseDown xdomilobis programebi;

5.13 formebis marTva


forma danarTis ZiriTadi elementia. rTuli danarTi
Seicavs ramodenime formas. axali formis gamoZaxeba
xdeba File|New|Form. pirveli iTvleba mTavar formad.
Tumca SeiZleba SecvaloT da sxva formas misceT mTavari
formis statusi, risTvisac airCieT brZaneba Project|Op-
tions. gaxsnil fanjaraSi airCieT Forms gverdi. Main
forms velSi airCieT romeli unda CaiTvalos mTavar
formad. xolo qveda fanjaraSi miuTiTeT romeli
formebi unda Seiqmnas avtomaturad da romeli ara.
Auto-Createforms fanjaraSi mocemulia avtomaturad
Sesaqmneli formebis sia, xolo Available forms fanjaraSi
formebi, romlebic amovardenen avtomaturad Sesaqmneli
siidan.
Show da ShowModal meTodebis Sesrulebisas aRiZv-

172
reba formis OnShow xdomiloba. OnShow xdomiloba
dadgeba maSin roca forma xdeba xilvadi. Hide meTodiT
forma SeiZleba gaxdes uxilavi. am momentSi amuSavdeba
OnHide xdomiloba.
forma daixateba Close meTodiT. magaliTad, davuS-
vaT danarTze aris RichEdit komponenti, romelSic
Modified Tviseba uCvenebs rom bolo Senaxvis Semdeg
iyo Tu ara teqsti Secvlili. maSin onCloseQuery
xdomiloba miiRebs saxes:
procedure Tform1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if RichEdit1.Modified then
if (Application.MessageBox(‘dokumenti ar aris
Senaxuli ‘ + ’ gsurT muSaobis dasruleba ?’,
daadastureT muSaobis dasruleba’,
MB_ICONQUESTION+MB_YESNOCANCEL)<>IDYES)
THEN CanClose := false;
end;
moyvanil magaliTSi Application.MessageBox meTodiT
gamoiZaxeba fanjara. meTodis pirveli parametri Seicavs
Setyobinebis teqsts. meore parametri fanjris saTauris
teqsts. mesame parametri - droSebis nakrebs, romelic
gansazRvravs fanjris saxes. droSa MB_ICONQUESTION
173
asaxavsfanjaraSi kiTxvis niSans, MB_YESNOCANCEL
Seitans fanjaraSi Rilakebs Yes(diax), No(ara),
Cancel(gauqmeba).

5.14 mravaldokumentiani interfeisis


danarTis magaliTi
ganvixiloT mravalfanjriani redaqtoris Seqmnis
magaliTi. avagoT Svili fanjrebi RichEdit komponentis
gamoyenebiT.

- gaxseniT axali danarTi;

174
- gaxsnil formas daarqviT FDOC;
- ganaTavseT formaze RichEdit komponenti. mis Align
Tvisebas mieciT allClient mniSvneloba. waSaleT RichEdit1-
Si gamosuli teqsti;
- formis FormStyle Tviseba SecvaleT fsMDIChild
TvisebiT;
- SeinaxeT proeqti modulis UDOC saxeliT;
forma Seqmnilia, exla gadavideT mSobeli formis
proeqtirebaze.
- gaxseniT axali forma (File|New Form). daarqviT
FMDI. misi moduli SeinaxeT UMDI saxeliT (File|Save
as);
- axali formis FormStyle SecvaleT MDIForm-iT.
Tu saWiroa rom am formis fanjara mTlianad gaiSalos
ekranze WindowState TvisebaSi airCieT wsMaximized.
UMDI modulis Uses operatorSi SeitaneT mimarTva
Svili formis UDOC modulze (sxvagvarad Svil formebs
ver gaxsniT), risTvisac UMDI modulis Implementation
nawilSi SeitaneT Uses UDoc operatori;
- SeasruleT brZaneba Project|Options da gaxsnili
fanjris Forms gverdze gadaitaneT Svili forma FDOC.
gamosuli siis mixedviT darwmundebiT rom mTavari
iqneba FMDI mSobeli forma. is erTaderTia siaSi,
avtomaturad Seqmnadi formebidan;
175
- ganaTavseT formaze ImageList da ActionList.
ActionList1-is Images TvisebaSi airCieT ImageList1;
- ActionList-Si SeitaneT New Window moqmedeba,
romelic Seesabameba dokumentis axali fanjris Seqmnas.
misi OnExecute xdomilobis damuSavebis programas eqneba
saxe:
procedure TForm1.NewWindowExecute (Sender:
TObject);
var NewF: TFDoc;
begin
NewF := TDoc.Create(Application);
NewF.Caption := ‘dokumenti ‘ + IntToStr(MDIChild-
Count);
NewF.Show;
end;
- formis OnShow xdomilobidan daukavSirdiT amave
dammuSavebels, rom pirvelsave momentSi gaixsnas
dokumentis erTi fanjara;
- ActionList moqmedebebis dispetCerSi SeitaneT
Window punqtis standartuli moqmedebebi: Window-
Cascade, WindowTileHorizontal, WindowTileVertical, Win-
dowArrange;
- SeitaneT formaze MainMenu komponenti. masze
ganaTavseT Window brZaneba da mis punqtebs daukavSireT

176
ganxiluli moqmedebebi.
SeasruleT danarTi. proeqtis dasrulebisaTvis
saWiroa, rom meniu Seicavdes File, Edit, Format, Window,
Help punqtebs. aqedan File, Window, Help mizanSewonilia
miekuTvnos mTavar formas, xolo Edit da Format -
dokumentis formas. UDOC modulidan Uses operatorSi
marTva gadaeciT UMDI modulze, radganac misi
gamosaxulebebis siasTan kavSiris saSualeba gvqondes.
formaze gadaitaneT ActionList komponenti, romlis Image
Tvisebaze daayeneT ImageList1. ActionList-Si SeitaneT
teqstis redaqtirebasTan daformatirebasTan dakavSi-
rebuli moqmedebebi. formaze gadaitaneT da SeqmeniT
Edit da Format meniuebi. daayeneT GroupIndex indeqsi
File, Window da Help-saTvis, Sesabamisad 0,3,4, xolo
Edit da Format-saTvis 1 da 2.
formis klasis Public nawilSi SeitaneT FName
cvladis gamocxadeba, romelSic Seinaxeba fanjaraSi
CatvirTuli failis saxeli:
FName: String;
gadainacvleT mTavari formis modulSi. formaze
gadaitaneT failis gaxsnisa da Senaxvis dialogebi.
ActionList-Si SeitaneT Open, CloseDoc, Save, Save As.
dawereT OnExecute xdomilobis damuSavebis programebi.
Open brZanebisaTvis dammuSavebels eqneba saxe:
177
procedure TForm1.OpenExecute(Sender: TObject);
begin
if OpenDialog1.Execute
then begin
(ActiveMDIChild.ActiveControl as TRichEdit).

Lines.LoadFromFile(OpenDialog1.FileName);
(ActiveMDIChild as TFDoc).FName :=
OpenDialog1.FileName;
ActiveMDIChild.Caption :=
ExtractFileName(OpenDialog1.FileName);
end;
end;
moyvanil programaSi jer gamoiZaxeba failis gaxsnis
dialogi. arCeuli faili CaitvirTeba aqtiuri doku-
mentis formis RichEdit fanjaraSi. am formasTan mimarTva
xorcieldeba ActiveMDIChild TvisebiT, ramdenadac am
formaze aqtiuri aris RichEdit fanjara, masTan mimarTva
xorcieldeba ActiveControl TvisebiT. radgan Tvisebis
ti pia TWinControl, Cven ki gvinda ganvixiloT igi rogorc
TRichEdit ti pis obieqti, amitom redaqtirebis fanja-
rasTan mimarTva xorcieldeba:
ActiveMDIChild.ActiveControl as TRichEdit. Semdgom-
Si fanjaraSi CaitvirTeba arCeuli kodi. ganxiluli

178
operatori SeiZleba Seicvalos Semdegnairad:
(ActiveMDIChild as TFDoc).RichEdit1.Lines.
LoadFromFile(OpenDialog1.FileName)
failis CatvirTvis Semdeg FName cvladSi Seitaneba
failis saxeli, radgan redaqtirebis Semdgom faili
Seinaxeba igive saxeliT. aqtiuri forma aris TFDoc
ti pis, qvemoT ganxiluli dammuSaveblis bolo
operatori dokumentis aqtiuri fanjris saTaurSi
Seitans failis saxels, romelic warmoiSveba misi sruli
saxelidan ExtractFileName funqciiT.
Save As brZanebis OnExecute xdomilobis damuSavebis
programas aqvs saxe:
procedure TForm1.SaveAsExecute(Sender: TObject);
begin
SaveDialog1.FileName := ActiveMDIChild.Caption;
if (SaveDialog1.Execute)
then begin
(ActiveMDIChild.ActiveControl as TRichEdit).
Lines.SaveToFile(SaveDialog1.FileName);
(ActiveMDIChild as TFDoc).FName :=
SaveDialog1.FileName;
ActiveMDIChild.Caption :=
ExtractFileName(SaveDialog1.FileName);
end;
179
end;
pirveli operatori momxmarebels sTavazobs failis
saxels, romelic inaxeba aqtiuri dokumentis saTaurze.
Semdeg gamoiZaxeba failis Senaxvis dialogi. bolo ori
operatori imaxsovrebs failis saxels.
Save brZanebis OnExecute xdomilobis damuSavebis
programas aqvs saxe:
procedure TForm1.SaveExecute(Sender: TObject);
begin
if((ActiveMDICild as TFDoc).FName = ‘’)
then SaveAsExecute(Sender)
else (ActiveMDIChild.ActiveControl as TRichEdit).
Lines.SaveToFile((ActiveMDIChild as TFDoc).
FName);
end;
if operatori amowmebs aris Tu ara dokumentis
aqtiuri fanjris FName cvladi carieli striqoni.
e.i. jer saxeli cnobili ar aris. gamoiZaxeba SaveAs-
Execute procedura, imisaTvis, rom momxmarebelma
aorCios failis saxeli, xolo Tu failis saxeli
cnobilia, maSin dokumenti kvlav Seinaxeba imave failSi
dialogis gamoZaxebis gareSe.
moyvanili procedura rom muSaobdes saimedod,
dokumentis fanjris Seqmnisas FName saxiT unda mivceT

180
carieli striqoni. adre aRweril NewWindowExecute
proceduras daemateba operatori:
NewF.FName := ’’;
CloseDoc moqmedebisaTvis OnExecute xdomilobis
damuSavebis programa Sesdgeba erTi operatorisagan:
ActiveMDIChild.Free;
es operatori mexsierebidan waSlis dokumentis
aqtiuri formis obieqts. aq ar SeiZleba Close-s
gamoyeneba, radgan danarTis Svili fanjrisaTvis formis
daxurva niSnavs `Sexvevas~

VI Tavi
grafika da animacia
6.1 martivi danarTi grafikuli failebis
dasaTvaliereblad.
SevqmnaT danarTi, romelSic momxmarebeli
CatvirTavs da daaTvalierebs nebismier grafikul fails.
amisaTvis formaze gadaitaneT OpenPictureDialog
komponenti (gverdi Dialogs) da meniu File punqtiT. menius
punqtze orjer dawkapunebiT gamosul dammuSavebelSi
dawereT:
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
es operatori Image1 komponentis Picture TvisebaSi
181
CatvirTavs momxmareblis mier dialogSi arCeul fails.
am danarTs aqvs erTi nakli, gamosaxuleba sxvadasxva
zomisaa, amitom igi formaze iqneba an arasimetriuli an
ar daeteva formaze. es iolad mogvardeba, Tu forma
gadaewyoba gamosaxulebis zomebis Sesabamisad. Image1-
is Autosize Tvisebaze davayenoT true mniSvneloba, xolo
zemoT moyvanil operators mivceT Semdegi saxe:
if OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Form1.ClientHeight := Image1.Height +10;
Image1.Top := Form1.ClientRect.Top +
(Form1.ClientHeight-Image1.Height) div 2;
Form1.ClientWidth := Image1.Width + 10;
Image1.Left := Form1.ClientRect.Left +
(Form1.ClientWidth-Image1.Width)
div 2;
end;
gauSviT danarTi da Tqven dainaxavT, rom gamosa-
xulebis sxvadasxva zomis SemTxvevaSi danarTi Sesa-
niSnavad gamoiyureba.

182
6.2 RilakisaTvis piktogramis Seqmna
SpeedButton da BitBtn Rilakebs SeiZleba hqondeT
piktogramebi, romelic maT Glyph TvisebaSi CaitvirTeba.
piktogramis erTi gamosaxulebis zomebia 16X16. magram
erT failSi SeiZleba iyos aseTi zomis oTxamde
gamosaxuleba. yvelaze marcxena Seesabameba aSvebul Rilaks,
momdevno miuwvdomel Rilaks (roca Enabled = false),
marcxnidan mesame Seesabameba daWeril Rilaks, xolo
marjvena gamoiyeneba fiqsaciis RilakebSi (SpeedButton)
daWerili mdgomareobis asaxvisaTvis.
SeqmeniT bituri matricis axali faili (File|New
|Bitmap File(.bmp), gaxsnil fanjaraSi mieciT zomebi
64X16. gamosaxuleba dayaviT oTx kvadratad (TeTri
CarCoTi erTi piqseliT), SeRebeT isini marcxnidan
marjvnisaken wiTeli, nacrisferi, yviTeli da mwvane
ferebiT.
SeinaxeT Seqmnili faili da aageT martivi danarTi.
gadaitaneT formaze sami Rilaki: SpeedButton, BitBtn
da Button. SpeedButton da BitBtn-is Glyph TvisebaSi
CatvirTeT piktogramis faili. BitBtn-is Caption TvisebaSi
mieciT warwera, magaliTad BitBtn. amave dros Rilakebis
NumGlyphs Tviseba 4-s gautoldeba. Margin da Spacing
uzrunvelyaviT piktogramebisa da warwerebis
simetriuli ganTavseba. SpeedButton RilakisaTvis
183
GroupIndex Tviseba gautoleT 1-s, xolo AllowAllUp
gautoleT true-s. button Rilakze dawkapunebisas akrifeT
kodi:
SpeedButton1.Enabled := not SpeedButton1.Enabled;
BitBtn1.Enabled := not BitBtn1.Enabled;
gauSviT danarTi, Tqven naxavT rogor Seicvleba
Rilakis ferebi maTze sxvadasxva mani pulaciebis dros.

6.3 martivi grafikuli redaqtoris


Seqmna
- gaxseniT axali danarTi;
- formaze gadaitaneT ori Image komponenti da
ganaTavseT qveda marcxena mxares, mieciT kvadratuli
forma, zoma daaxloebiT 20X20. es iqneba arCeuli
ferebis fanjrebi. maTi saxelebi iyos Image1 da Im-
age2;
- formaze gadaitaneT Image3, ganaTavseT odnav
marjvniv da zemoT, gazardeT TiTqmis mTeli formis
zomaze;
- gadaitaneT formaze Image4, ganaTavseT Image1 da
Image2-is marjvniv, mieciT grZivi forma. es iqneba
ferTa palitra;
- gadaitaneT formaze SpeedButton da ganaTavseT
igi formis zeda marcxena kuTxeSi. daarqviT SBBrush.

184
GroupIndex Tvisebaze daayeneT 1,xolo AllowallUp Tvisebaze
airCieT true. (SeiZleba Glyph Tvisebaze airCioT naxati
`funji~);
- kidev erTi SpeedButton gadaitaneT formaze da
moaTavseT SBBrush-is qvemoT. daarqviT SBColor. GroupIndex
Tvisebaze daayeneT 1, xolo AllowAllUp Tvisebaze airCieT
true;
- formaze gadaitaneT OpenPictureDialog;
- formaze gadaitaneT MainMenu. File meniuSi SeitaneT
Open, xolo Edit-Si Undo.
exla SeiZleba brZanebebis dawera:
- Implementation nawilSi CarTeT cvladebis ganax-
leba:
Var
BitMap: TBitMap;
- formis OnCreate xdomilobaSi SeitaneT Semdegi:
procedure TForm1.FormCreate(Sender: TObject);
var HW,i:integer;
begin
Bitmap := TBitMap.Create;
Image1.Canvas.Brush.Color := clBlack;
Image2.Canvas.Brush.Color := clWhite;
with Image1.Canvas do FillRect(Rect(0,0,Width,
Height));
185
with Image2.Canvas do FillRect(Rect(0,0,With,Height));
HW := Image4.Width div 10;
with Image4.Canvas do
for i := 1 to 10 do begin
case i of
1: Brush.Color := clBlack;
2: Brush.Color := clAqua;
3: Brush.Color := clBlue;
4: Brush.Color := clFuchsia;
5: Brush.Color := clGreen;
6: Brush.Color := clLime;
7: Brush.Color := clMaroon;
8: Brush.Color := clRed;
9: Brush.Color := clYellow;
10: Brush.Color := clWhite;
end;
Rectangle((i-1)*HW, 0, i*HW, Height);
end;
with Image3 do begin
Canvas.MoveTo(0,0);
Canvas.LineTo(Width,Height);
Canvas.MoveTo(0,Height);
Canvas.LineTo(Width,0);
end;

186
BitMap.Assign(Image3.Picture);
end;
- formis OnDestroy xdomilobaze orjer daawkapuneT
da SeitaneT: BitMap.Free;
- Open meniuSi SeitaneT:
if OpenPictureDialog1.Execute then begin
Image3.Picture.LoadFromFile(OpenPictureDialog1.FileName);
BitMap.Assign(Image3.Picture);
end;
- Undo meniuSi SeitaneT:
Image3.Picture.Assign(BitMap);
- SBBrush-ze da SBColor-ze orjer dawkapunebisas
SeitaneT:
if (Sender as TSpeedButton).Down
then BitMap.Assign(Image3.Picture);
es operatori imaxsovrebs mimdinare gamosaxulebas,
Semdeg instrumentze gadasvlisas;
- Image3 da Image4 komponentebis OnMouseDown
xdomilobaSi SeitaneT:
if(Sender = Image4) or SBColor.Down then
begin
if(Button = mbLeft)
then With Image1.Canvas do begin
Brush.Color := (Sender as TImage).Canvas.Pixels[x,y];
187
FillRect(Rect(0, 0, Width, Height));
end
else with Image2.Canvas do begin
Brush.Color := (Sender as TImage).Canvas.Pixels[x,y];
FillRect(Rect(0,0,Width,Height));
end;
end
else if SBBrush.Down then with Image3.Canvas do
begin

188
if Button = mbLeft
then Brush.Color := Image1.Canvas.Brush.Color
else Brush.Color := Image2.Canvas.Brush.Color;
FloodFill(x,y,Pixels[x,y], fsSurface);
end;
danarTSi gamoyenebulia nebismieri grafikuli
redaqtoris ori ZiriTadi komponenti: funji da ferTa
palitra.
6.4 martivi animacia
martivi multi plikaciis Sesaqmnelad gaxseniT axali
danarTi. formaze gadaitaneT: Image, Button, Timer. Rilaki
formis boloSi ganaTavseT. formis ZiriTad nawils
ikavebs Image komponenti, romelzec gamoCndeba
gamosaxuleba. taimeri uzrunvelyofs kadrebis cvlis
temps. Implementation nawilSi SeitaneT teqsti:
const H = 20; //nabiji
Ypos = 120; //`miwa~
Hmen = 30; //sxeulis simaRle
Rhead = 10 //Tavis radiusi
Rhead2 = Rhead div 2 //muStebis radiusi
L = trunc(H*1.41); //fexebis sigrZe
var num : word = 0
Xpos : word = 2*H; //garSemow. koord.
revers : integer = 1 //moZr. mimarTuleba
189
procedure Draw1;
var Yhead: word; //Tavis qveda naw. koord.
begin
With Form1.Image1.Canvas do
begin
Case num of
0: begin;
Yhead := Ypos - H - Hmen;
MoveTo(Xpos-H, Ypos);
LineTo(Xpos, Ypos-H); //fexi
LineTo(Xpos+H,Ypos); //meore fexi
MoveTo(Xpos,Ypos-H);
LineTo(Xpos, Yhead); //garSemoweriloba
MoveTo(Xpos+revers*H, Yhead-H);
LineTo(Xpos, Yhead+4); //xeli
Ellipse(Xpos=revers*H-Rhead2, Yhead-H-Rhead2,
Xpos+revers*H+Rhead2,Yhead+H+Rhead2);
Ellipse(Xpos-Rhead,Yhead,Xpos+Rhead,
Yhead-2*Rhead);
Rectangle(Xpos-Rhead,Yhead-2*Rhead-1,
Xpos+Rhead,Yhead-2*Rhead-4); //qudi
end;
1: begin
Yhead := Ypos - L - Hmen;

190
MoveTo(Xpos, Ypos);
LineTo(xpos, Yhead);
MoveTo(Xpos, Yhead+4);
LineTo(Xpos+revers*L,Yhead+4);
Ellipse(Xpos+revers*L-Rhead2,Yhead+4-Rhead2,
Xpos+revers*L+Rhead2, Yhead+4+Rhead2);
Ellipse(Xpos-Rhead, Yhead,Xpos+Rhead, Yhead-
2*Rhead);
Rectangle(Xpos-H div 2, Yhead-2*Rhead-1,
Xpos+H div 2, Yhead-2*Rhead-4);
end;
end;
end;
end;
procedure TFom1.BRunClick(Sender: TObject);
begin
Timer1.Enabled := not Timer1.Enabled;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Draw1;
if (Xpos >= Image1.Width-H) or (Xpos <= H)
then revers := -revers;
Xpos := Xpos + revers * H;
191
num := 1 - num;
Draw1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Image1.Canvas do begin
MoveTo(0, Ypos + 3);
Pen.Width := 4;
LineTo(ClientWidth, Ypos + 3);
Pen.Width := 1;
Pen.Mode := pmNotXor;
end;
Draw1;
end;
TForm1.FormCreate procedura amuSavebs formis
OnCreate xdomilobas. am proceduraSi ixazeba swori
xazi, romelzec gaivlis gamosaxuleba. amis Semdeg
amuSavdeba kalmis reJimi - pmNotXor. bolos xdeba
Draw1 proceduris gamoZaxeba, romelic xatavs gamosa-
xulebis sawyis mdgomareobas.
TForm1.BRunClick procedura amuSavebs Rilakis
OnClick xdomilobas. Rilakze TiToeuli dawkapuneba
CarTavs an gamorTavs taimers, ris Sedegad gamosaxuleba
dadis an Cerdeba.

192
TForm1.Timer1.Timer procedura amuSavebs OnTimer
taimeris xdomilobas. es xdomiloba warmoiSveba
periodulad, romelic ganisazRvreba Interval TvisebiT.
am xdomilobis dadgomisas Zveli kadri waiSleba da
daixateba axali. amis Semdeg gaanalizdeba Xpos, Tu es
pozicia Image1-is kides CamorCeba nabijze naklebi
sididiT, maSin igi Seicvleba revers sididis sawinaaRmdego
niSniT. Tu revers = 1, gamosaxuleba moZraobs marjvniv,
Tu Tu revers = -1, gamosaxuleba moZraobs marcxniv.
Semdeg Xpos pozicia Seicvleba revers*H sididiT, anu
erTi nabijiT marjvniv an marcxniv. Seicvleba Num
cvladi, romelic uCvenebs gamotanili kadris nomers:
0 an 1. bolos gamoiZaxeba Draw1 procedura, romelic
xatavs miTiTebul kadrs miTiTebul poziciaSi.
da bolos, Draw1 procedura xatavs kadrs. num
mniSvnelobis mixedviT ixateba xan erTi, xan meore
kadri, amave dros naxatSi gaTvaliswinebulia Xpos
pozicia da revers moZraobis mimarTuleba.

193
Sinaarsi
Sesavali.......................................................................................................3
I Tavi
Delphi, Tanamedrove stilis danarTis Seqmnis
instrumentuli saSualeba
1.1 obieqtur-orientirebuli rogramireba..................................4
1.2 Delphi -s danarTis saTao programis failis
struqtura.....................................................................................................6
1.3 modulis truqtura..........................................................................9
1.4 interfeisis vizualuri da aravizualuri
komponentebi......................................................................................................16
1.5 obieqtis TvisebebTan da meTodebTan
mimarTva........................................................................................................................17

II Tavi
Delphi -s komponentebis mimoxilva
2.1 teqsturi informaciis Setanisa da asaxvis
komponentebi.........................................................................................................18
2.2 teqstis asaxva Label, StaticText, Panel komponentebze.20
2.3 Edit, LabelEdit, MaskEdit redaqtirebis fanjrebi.............24
2.4 mravalstriqoniani redaqtirebis fanjara.
Memo, RichEdit komponentebi..................................................................26
2.5 siebidan arCevis komponentebi Listbox, CheckList-Box,
ValueListEditor, ComboBox, ComboBoxEx...............................33
2.6 cxrilebi StringGrid komponenti..................................................44
2.7 ricxvis, TariRisa da drois asaxvis komponentebi.....46
2.8 UpDown, SpinEdit komponentebi....................................................47
2.9 DateTimerPicker, MonthCalendar,Calendar komponentebi.49
2.10 F1Book komponenti..........................................................................51
2.11 ierarqiuli monacemebis asaxvis komponentebis sia...52
2.12 TreeView, OutLine monacemebis xis struqturis saxiT
asaxvis omponentebi................................................................................52
2.13 ListView komponenti.......................................................................55
2.14 grafikuli informaciis amsaxveli komponent. sia....61

194
2.15 DrawGrid, StringGrid komponentebi...........................................62
2.16 Shape komponenti..............................................................................63
2.17 Chart komponenti..............................................................................63
2.18 multimediisa da sxva informaciis asaxvis
komponent.
Animate, MediaPlayer, ProgressBar, Gauge.............................68
2.19 Button, BitBtn Rilakebi...................................................................71
2.20 Rilaki fiqsaciiT SpeedButton..................................73
2.21 radioRilakebis jgufebi: RadioGroup, RadioButton,
GroupBox komponentebi..............................................................................74
2.22 indikatorebi CheckBox, CheckListBox .............................75
2.23 mcocavebi da gadaxvevis zolebi TrackBar, ScrollBar
komponentebi........................................................................................................77
2.24 saTaurebis komponentebi HeaderControl, Header........80
2.25 taimeri Timer komponenti............................................................86
2.26 mTavari meniu MainMenu komponenti....................................88
2.27 konteqsturi meniu PopupMenu komponenti...................92
2.28 `cxeli~ Rilakebi-HotKey komponenti...............................93
2.29 GroupBox, Bevel, ScrollBox, Splitter komponentebi............98
2.30 mravalgverdiani panelebi TabControl, PageControl,
TabSet, TabbedNoteBook, NoteBook komponentebi.......................99
2.31 instrumentuli panelebi, ToolBar, PageScroll
komponentebi.......................................................................................................102
2.32 gadawyobadi panelebi, CoorBar, ControlBar
komponentebi.............................................................................104
2.33 mdgomareobis zoli - StatusBar .................................108
2.34 freimebi.........................................................................................108

III Tavi
sistemuri dialogebi
3.1 dialogebis saerTo daxasiaTeba......................................113
3.2 OpenDialog, SaveDialog, OpenPicturesDialog,
SavePikturesDialog..............................................................115
3.3 failebTan da saqaRaldeebTan muSaobis
komponentebi.............................................................................................116
195
3.4 dialogebis fragmentebi DriveComboBox,
DirectoryListBox, FilterComboBox, FileListBox,
DirectoyOutLine komponentebi.........................................................118
3.5 Sriftis arCevis dialogi, FontDialog................121
3.6 feris arCevis dialogebi,ColorDialog, ColorBox....122
3.7 PrintDialog, PrinterSetupDialog, PageSetupDialog
dialogebi............................................................................................124
3.8 teqstis Zebnisa da Secvlis komponentebi
FindDialog, ReplaceDialog..................................................125

IV Tavi
danarTis Seqmnis meTodika
4.1 danarTis damuSavebis teqnologia..............................129
4.2 gamosaxulebis sia ImageList komponenti.................133
4.3 moqmedebebis dispetCerizeba ActionList
komponentis gamoyenebiT.............................................................136
4.4 standartul moqmedebebTan muSaoba,
instrumentebis zolis awyoba...............................................138
4.5 moqmedebebis dispetCeri ActionManager................140
4.6 teqsturi danarTi................................................................145

V Tavi
momxmareblis garafikuli interfeisis damuSaveba
5.1 grafikuli interfeisis damuSavebis zogadi
rekomendaciebi...................................................................................149
5.2 mravalfanjriani interfeisi..........................................150
5.3 danarTis fanjris stili.....................................................151
5.4 elementebis fokuirebis mimdevroba............................153
5.5 konteqsturi cnobari............................................................154
5.6 komponentebis gasworeba, Align Tviseba........................155
5.7 komponentebis adgilmdebareobisa da zomebis
Secvla.....................................................................................................156
5.8 komponentebis masStabireba................................................157

196
5.9 Tagvis xdomilobebi................................................................160
5.10 klaviaturis xdomilobebi...............................................163
5.11 daWerili Rialkis amocnoba............................................165
5.12 obieqtebis Sesaxeb informaciis gadatana,
Drag&Drop teqnologia....................................................................168
5.13 formebis marTva........................................................................172
5.14 mravaldokumentiani interfeisis danarTis
magaliTi................................................................................................174

VI Tavi
grafika da animacia
6.1 martivi danarTi grafikuli failebis
dasaTvaliereblad...........................................................................181
6.2 RilakisaTvis piktogramis Seqmna................................183
6.3 martivi grafikuli redaqtoris Seqmna...................184
6.4 martivi animacia.....................................................................189

197
literatura

1. D. Oudzer, S. Grobman, S. Batson Delphi, Moscow, 2001


2. Booth G. Object-Orient Design with Application.Calif 1990
3. A. Arxangelski `Delphi 7~, Moscow, 2003

198
199
200

You might also like