3.34Матнлар билан ишлаш
OutText, OutTextXY, SetTextStyle, SetUserCharSize, матнни текиилаш,
Эранга чикарилган тасвир одатда тушинтириш хати оркали кузатилади. Бунинг учун графика ржимида OutText ва OutTextXY процедуралари ишлатилади
OutText(Textstring : string)
Бу поцедура матн сатрини , СР нинг жорий холатидан бошлаб экранга чикаради. Масалан:
OutText('Берилганларни киритинг:');
OutTextXY(X, Y: integer; TextString: string)
бу ерда X, Y - матнни киритиш бошлангич нукта координиатаси, TextString - string типидаги константа ёки узгарувчи. Масалан, 60,100 тукталардан бошлаб, "Давом эттириш учун холхаган тугмачани босинг”, деган малумотни экранга чикариш учун, куйидагини ёзиш керак:
OutTextXY(60,100,' Давом эттириш учун холхаган тугмачани босинг ..');
Turbo Pascal даги шрифтлар руйхати 13.9 таб. да келтирилган. Керакли шрифтни SetTextStyle(Font : word; Direction : word; CharSize: word) процедураси ёрдамида урнатилади.
бу ерда Font - танланган шрифт, Direction - йуналиш (горизонталь ёки вертикаль), CharSize - чикарилаётган белгилар улчови. Иккита биринчи параметрлар киймати 13.9, 13.10 таблицаларида келтирилган. Вертикал чикаришни ташкил килишда шуни назарда тутиш керакки, агарда фойдаланувчи MoveTo ёрдамида бошлангич нукта координатасини урнатиб олмаса, у холда матн экраннинг пастки каторидан бошлаб тепага давом этади Чикарилаётган белгилар катталиги CharSize коэффиценти ёрдамида урнатилади. Агарда и CharSize = 1 булса, у холда белги 8х8 матрицасида курилади, агарда CharSize = 2 булса, у холда 16x16 матрицаси ва хокозоларда курилади.
Табл. 13.9. Шрифтлар
Константа
|
Киймат
|
Ёзуви
|
DefaultFont
|
0
|
8x8 битли шрифт
|
TriplexFont
|
1
|
Штрихли шрифтлар
|
SmallFont
|
2
|
Кичик шрифт
|
SansSerifFont
|
3
|
Сансериф
|
GothicFont
|
4
|
Готик
|
Табл. 13.10. Мулжал константалари
Константа
|
Киймат
|
Ёзуви
|
HorizDir
|
0
|
Чапдан унгга
|
VertDir
|
1
|
Пастдан тепага
|
Мисол тарикасида вертикаль ва горизонталь каторларни DefaultFont шрифт билан чикаришни куриб чикамиз:
SetTextStyle(0,1,1); { стандарт улчовдаги харфлар}
Outtextxy(200,200,'Вертикаль катор');
SetTextStyle(0,0,2); { харфлар катталаштирилган }
Outtextxy(200,220,'Горизонталь катор');
Керакли улчовни SetUserCharSize(multX, divX, multY, divY: word) процедураси ёрдамида хам урнатиш мумкин.
SetUserCharSize чакирилгунга кадар ёки ундан кейин SetTextStyle ёрбамида шрифтни ва уни йуналиини урнатиш зарур.
Масалан:
SetTextStyle(SansSerifFont,HorizDir,4);
OutText('Нормаль улчов');
SetUserCharSize(1,3,1,1);
OutText('Баландлиги буйича камайтирш');
SetUserCharSize(3,1,1,1);
OutText('Кенлиги буйича каталаштириш');
Катор ёки белгининг пикселлардаги горизонталь ва вертикаль улчовларини билиш учун
TextHeight(TextString: string): word,
TextWidth(TextString: string): word функцияларидан фойдаланамиз.
Мисол тарикасида матн атрофида рамка чизиш дастурини келтирамиз.
Рамка очик хаво рангда, матн атрофи ок ранг билан чизилади: PROGRAM DemoTextFrame;
USES Crt, Graph;
VAR
Driver, Mode: integer;
St: string;
Height, Width, cX, cY, x1, x2, y1, y2: integer;
BEGIN
St := 'Рамкадаги матн';
Driver:=detect;
InitGraph(Driver,Mode,'');
cX:=GetMaxX div 2;
cY:=GetMaxY div 2;
SetTextJustify(CenterText,CenterText);
SetTextStyle(DefaultFont,HorizDir,2);
Height:=TextHeight(St) + 4;
Width:=TextWidth(St) + 4;
x1:=cX - (width div 2);
x2:=cX + (width div 2);
y1:=cY - (Height div 2);
y2:=cY + (Height div 2);
SetColor(White);
Rectangle(x1,y1,x2,y2);
SetColor(LightCyan);
OutTextXY(cX,cY,St);
Readln;
CloseGraph
END.
Матнларни теккислаш Horiz и Vert пораметрлари оркали берилган SetTextJustify(Horiz, Vert : word) процедураси ёрдамида бажарилади.
.
Табл. 13.12. Горзонталь теккислаш параметрлари
Horiz
|
Киймат
|
Изох
|
LeftText
|
0
|
Чапга теккилаш
|
CenterText
|
1
|
Марказлаштириш
|
RightText
|
2
|
Унгга теккислаш
|
Табл. 13.13. Вертикал теккислаш параметрлари
Vert
|
Киймат
|
Изох
|
BottomText
|
0
|
Пастга силжитиш
|
CenterText
|
1
|
Марказлаштириш
|
TopText
|
2
|
Тепага жойлаштириш
|
Do'stlaringiz bilan baham: |