Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Then begin 4 page





fdLimitSize – бұл параметр тағайындалғанда қаріптің максимальды және минимальды өлшемін беруге болады,

fdApplyButton – бұл параметр тағайындалғанда Применить (Apply) батырмасы пайда болады.

property MaxFontSize: Integer – қаріптің максимальды (ең үлкен) өлшемін береді. Егер мәні нольге тең болса, онда максимальды өлшем берілмеген.

property MinFontSize: Integer – қаріптің минимальды (ең кіші) өлшемін береді. Егер мәні нольге тең болса, онда минимальды өлшем берілмеген.

Open Dialog және Save Dialog құрауыштарындағы сияқты қаріпті таңдау диалог терезесі Execute әдісінің көмегімен активтеледі.

TFontDialog класында бір оқиға – OnApply анықталған.

property OnApply: TFDApplyEvent;

Type

TFDApplyEvent = procedure (Sender: TObject; Wnd: HWND) of object;

где Wnd – терезенің сандық идентификаторы.

Оқиға терезенің Применить (Apply) батырмасына басқанда өрбиді. Бұл батырма OnApply оқиғасының өңдеуіші бар болғанда немесе Options қасиетінде fdApplyButton параметрі берілгенде пайда болады.

Мысал 3.5.4 Button1 құрауышы үшінOnClick оқиғасының өңдеуіші қаріпті таңдау диалог терезесін активтейді және таңдап алынған сипаттамаларды Label1 құрауышының қаріпіне береді.

procedure TForm1.Button1Click(Sender: TObject);

var F: TextFile;

S: String;

Begin

WITH FontDialog1 DO

BEGIN

{Options қасиетіне fdLimitSize параметрін береді}

Options:= Options + [fdLimitSize];

MaxFontSize:= 14; {Қаріптің максимальды өлшемін береді = 14 пункт}

MinFontSize:= 8; {Қаріптің минимальды өлшемін береді = 8 пункт}

IF Execute THEN {Қаріпті таңдау диалог терезесін активтейді}

Label1.Font:=Font; {Егер терезе ОК батырмасымен жабылса, онда таңдап алынған сипаттамалар, Label1құрауышының қаріпіне беріледі}

END;

end;

Мысал 3.5.5 Бұл мысал пішінде орналастырылған келесі басқару элементтерін қолданады: Edit, Main Menu, Rich Edit. Қолданушы Шрифт менюінің пунктіне шерткенде, қаріпті таңдау диалогы активтелінеді. Қолданушы диалог терезесінің Применить (Apply) батырмасына шерткенде сол сәтте таңдап алынған қаріптің сипаттамалары активті басқару элементіне қолданылады.

procedure TForm1.Menu_FontClick(Sender: TObject);

Begin

{Options қасиетіне fdApplyButton параметрін қосады}

FontDialog1.Options:= FontDialog1.Options + [fdApplyButton];

FontDialog1.Execute; {Қаріпті таңдау диалог терезесін активтейді}

End;

procedure TForm1.FontDialog1Apply(Sender: TObject; Wnd: HWND);

Begin

IF ActiveControl IS TEdit THEN {Егер активті басқару элементі TEdit типті объект (немесе оның ұрпақтарының бірі) болса, онда...}

WITH ActiveControl AS TEdit DO

Font.Assign(TFontDialog(Sender).Font) {Активті басқару элементінің Font қасиетіне қаріпті таңдау диалог терезесінде таңдалған сипаттамаларды бекіту}

ELSE IF ActiveControl IS TRichEdit THEN {Егер активті басқару элементі TRichEdit типті объект (немесе оның ұрпақтарының бірі) болса, онда...}

WITH ActiveControl AS TRichEdit DO

SelAttributes.Assign(TFontDialog(Sender).Font) {Активті басқару элементінің ерекшеленген мәтініне қаріпті таңдау диалог терезесінде таңдалған сипаттамаларды бекіту}

ELSE

Beep;

end;

Color Dialog – түсті таңдау диалог терезесі.

Иерархиясы:

TObjectTPersistentTComponentTCommonDialog.

Түсті таңдау диалог терезесі TColorDialog класының данасы болып табылады. Ол Windows операциялық жүйесінде берілген стандартты түсті таңдап алуға және меншік түсті беруге мүмкіндік жасайды (сурет 3.5.4 қараңыздар).

TColorDialog класының негізгі қасиеттерін қарастырайық:

property Color: TColor – түстің таңдап алынған мәндерінен тұрады.

property CustomColors: TStrings – Қолданушымен анықталған 16 түстен тұрады. Әрбір жол мынандай пішімнен тұрады: Со1оrХ=NNNNNN, мұндағы Х – А – дан Р – ға дейінгі әріптер, олар түстің нөмірін анықтайды, NNNNNN – RGB пішіміндегі түстің он алтылық көрсетілімі.

property Options: TColorDialogOptions – диалог терезесінің сипаттамаларын береді.

Мысал 3.5.6 Button1 құрауышы үшін OnClick оқиға өңдеуіші түсті таңдау үшін диалог терезесін ашады және ол түсті пішіннің көрінісінің түсіне береді.

procedure TForm1.Button1Click(Sender: TObject);

Begin

IF ColorDialog1.Execute THEN

Form1.Color:= ColorDialog1.Color;

end;

Print Dialog – баспа режімін таңдау диалог терезесі.

Иерархиясы:

TObjectTPersistentTComponentTCommonDialog.

Баспа режімін таңдау диалог терезесі TPrintDialog класының данасы болып табылады. Сол және басқа құжаттарды баспаға шығарғанда қолданылатын параметрлер қатарын беруге мүмкіндік жасайды.

Printer Setup Dialog – принтердің параметрлерін таңдау диалог терезесі.

Иерархиясы:

TObjectTPersistentTComponentTCommonDialog.

Принтердің параметрлерін таңдау диалог терезесі TPrinterSetupDialog класының данасы болып табылады. Құжаттарды баспаға шығару үшін қолданылатын принтердің параметрлер қатарын беруге мүмкіндік жасайды. Бұл параметрлер Windows операциялық жүйесінде анықталған және диалог терезесінде бейнеленген.

Құрауыш принтердің типіне байланысты принтердің параметрлерін баптау терезесін құрады. Бұл диалог принтердің драйверімен қарым – қатынаста болады және бағдарламаға ешқандай ақпаратты қайтармайды, сондықтан оның Execute әдісі функция емес, процедура болады.

Find Dialog – мәтіннің үзіндісін іздеу диалог терезесі.

Иерархиясы:

TObjectTPersistentTComponentTCommonDialog.

Мәтіннің үзіндісін іздеу диалог терезесі TFindDialog класының данасы болып табылады. Ол мәтіннен сол және басқа үзіндіні анықтауға мүмкіндік береді (сурет 3.5.5 қараңыздар).

Класс келесі негізгі қасиеттерден тұрады.

property FindText: String – ізделінетін мәтіннің үзіндісінен тұрады.

property Position: TPoint – диалог терезесінің экрандағы сол жақ жоғарғы бұрышын анықтайды.

property Options: TFindOptionsTFindOptions типті қасиет:

Type

TFindOption = (frDown, frFindNext, frHideMatchCase, frHideWholeWord, frHideUpDown, frMatchCase, frDisableMatchCase, frDisableUpDown, frDisableWholeWord, frReplace, frReplaceAll, frWholeWord, frShowHelp);

TFindOptions = set of TFindOption;

Ол диалог терезесінің сипаттамаларын береді және мән ретінде келесі шамалардың кез – келген көптігін қабылдай алады (солардың кейбіреулері):

frHideMatchCase – егер осы параметр берілсе, жолдық және бас әріптердің айырмашылығын есепке алу қосқышы шығарылмайды,

frHideUpDown – егер осы параметр берілсе, іздеу бағытын таңдау ауыстырып қосқышы шығарылмайды,

frWholeWord – егер осы параметр берілсе, бүтін сөздердің ғана ізделінуі іске асырылады.

TFindDialog класында бір OnFind оқиғасы анықталған.

property OnFind: TNotifyEvent;

Оқиға іздеу үшін мәтіннің үзіндісін таңдағаннан кейін диалог терезесінің Найти далее (Find Next) батырмасын басқанда өрбиді.

Мысал 3.5.7. Бұл мысал пішінде орналастырылған: Rich Edit, Button және Find Dialog басқару элементтерін қолданады. Батырмаға шерткенде мәтіннің үзіндісін іздеу диалогы активтелінеді (іздеу бағыты – іздеу алға қарай). Образец (Find what)жолы толтырылғанда және Найти далее (Find Next) батырмасы басылғанда алдыңғы таңдаудың артынан ілесетін Rich Edit құрауышының үлгіге сәйкес келетін жолы ерекшеленгенеді.

procedure TForm1.Button1Click(Sender: TObject);

Begin

FindDialog1.Position:= Point(RichEdit1.Left + RichEdit1.Width,
RichEdit1.Top);

FindDialog1.Execute; {Мәтіннің үзіндісін іздеу диалог терезесін активтейді}

end;

 

procedure TForm1.FindDialog1Find(Sender: TObject);

Var

FoundAt: LongInt;

StartPos, ToEnd: Integer;

Begin

WITH RichEdit1 DO

BEGIN

IF SelLength <> 0 THEN { Мәтіннің ерекшеленген бөлігінің ұзындығы нольге тең болмаса, онда… }

{Іздеу ағымды таңдаудан кейін басталады, егр ол бар болса}

StartPos:= SelStart + SelLength;

{SelStart –мәтіннің ерекшеленген бөлігінің мәтіннің басынан бастағанда бірінші символын анықтайды (символдарды нөмірлеу 0 – ден басталады 0). Егер мәтін ерешеленбеген болса, онда алдында мәтіндік нұсқағыш орналасқан символға нұсқалынады}

ELSE

StartPos:= 0; {Басқаша, іздеу мәтіннің басынан басталады}

{ToEnd – Rich Edit құрауышындағы мәтіннің StartPos - тан мәтіннің аяғына дейінгі символдық ұзындығы}

ToEnd:= Length(Text) - StartPos;

FoundAt:= FindText(FindDialog1.FindText, StartPos, ToEnd,
[stMatchCase]);

{FindText –мәтіннен диалог терезесінде берілген жолды іздейді және сәтті іздеуде оның бірінші символының индексін қайтарады. StartPos – іздеудің басы; ToEnd – жолдың ұзындығы, [stMatchCase] – іздеу кезінде жолдық және бас әріптердің айырмашылықтары ескерілетінін айтады}

IF FoundAt <> -1 THEN

BEGIN

SetFocus;

SelStart:= FoundAt;

SelLength:= Length(FindDialog1.FindText);

END;

END;

end;

Replace Dialog – мәтіннің үзіндісін іздеу және айырбастау диалог терезесі.

Иерархиясы:

TObjectTPersistentTComponentTCommonDialogTFindDialog.

Мәтіннің үзіндісін іздеу және айырбастау диалог терезесі тікелей TFindDialog класынан туындайтын және оның барлық сипаттамаларына ие болатын TReplaceDialog класының данасы болып табылады. Ол мәтіннен сол және басқа үзіндіні табуға және қажет жағдайда оны басқа үзіндіге ауыстыруға мүмкіндік береді (сурет 3.5.6 қараңыздар).

Бұл класта қосымша ReplaceText қасиеті анықталған.

property ReplaceText: String – мүмкін табылған үзіндіге айырбас жасалатын мәтін анықталады.

Бұл класта тағы OnReplace оқиғасы анықталған.

property OnReplace: TNotifyEvent;

Оқиға диалог терезесінің Заменить (Replace) немесе Заменить все (Replace All) батырмалары басылғанда өрбиді.

Мысал 3.5.8 ReplaceDialog1 құрауышы үшін келесі OnReplace оқиға өңдеуіші TMemo класының Memo1 құрауышынан FindText - ті іздейді және оны ReplaceText – ке айырбастайды. Ол TMemo класының SelStart, SelLength және SelText қасиеттерін қолданады.

procedure TForm1.ReplaceDialog1Replace(Sender: TObject);

Var

SelPos: Integer;

Begin

WITH TReplaceDialog(Sender) DO

BEGIN

{ Memo1 – дегі FindText регистірін есепке алғандағы ауқымды іздеу}

SelPos:= Pos(FindText, Memo1.Lines.Text);

{Pos функциясы Memo1құрауышының мәтінінің шегіне дейін FindText – ті іздейді және осы мәтіннің шегіндегі FindText - тің бірінші символын бүтін санды мәнді қайтарады. Егер FindText табылмаса, онда Pos нөлді қайтарады}

IF SelPos > 0 THEN

BEGIN

Memo1.SelStart:= SelPos - 1;

Memo1.SelLength:= Length(FindText);

Memo1.SelText:= ReplaceText; {Таңдап алынған мәтінді ReplaceText – ке ауыстыру}

END

ELSE

MessageDlg(Concat('Could not find "', FindText, '" in Memo1.'),
mtError, [mbOk], 0);

END;

end;

Open Picture Dialog – графикалық файлды ашу диалог терезесі.

Иерархиясы:

TObjectTPersistentTComponentTCommonDialogTOpenDialog.

Графикалық файлды ашу диалог терезесі TOpenDialog класынан туындаған және оның барлық сипаттамаларына ие болатын TOpenPictureDialog класының данасы болып табылады.

Ол графикалық кескіні бар файлды таңдауға тағайындалған. Диалог терезесіне қарау терезесі қосылған, онда сол сәтте ерекшеленген графикалық файл бейнеленеді.

property Filter: String – Windows стандартты графикалық файлдары үшін сүзгілер жиынынан тұрады.

Мысал 3.5.9 Button1 құрауышы үшін OnClick оқиға өңдеуіші ашылатын графикалық файлдың атын таңдауға арналған диалог терезесін ашады және оны Image1 құрауышына орналастырады.

procedure TForm1.Button1Click(Sender: TObject);

Begin

IF OpenPictureDialog1.Execute THEN

Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

end;

Save Picture Dialog – графикалық файлды сақтау диалог терезесі.

Иерархиясы:

TObjectTPersistentTComponentTCommonDialogTOpenDialogTOpenPictureDialog.

Графикалық файлды сақтау диалог терезесі тікелей TSavePictureDialog класының туындамасы және оның барлық сипаттамаларына ие болатын TSavePictureDialog класының данасы болып табылады.

Ол графикалық кескінді файлға сақтауға арналған.

Мысал 3.5.10 Button2 батырмасына шерткенде сақталатын графикалық файлдың атын таңдауға арналған диалог терезесі ашылады және Image1 құрауышындағы кескін осы файлға жазылады.

procedure TForm1.Button2Click(Sender: TObject);

Begin

IF SavePictureDialog1.Execute THEN

Image1.Picture.SaveToFile(SavePictureDialog1.FileName);

end;

Тәжірибелік жұмыс №10 «Мәтіндік редактор»

Қадам 1. Пішінді TextEditor атпен атау және жобаны Editor.dpr атпен сақтау. (Пішін үшін фирмалық таңбашаны орнатуды, сонымен бірге тақырыбы мен қосымша үшін де таңбашаны, барлық батырмаларға көмекші кеңесті орнатуды ұмытпаңыздар.)

Қадам 2. Пішінге Panel1 құрауышын орналастырыңыздар және оның қасиеттерін орнатыңыздар (осы және басқа қасиеттердің не үшін тағайындалғанын міндетті түрде қарау.)

Align = alTop;

Caption = ’’;

Қадам 3. Пішіге Memo1 құрауышын орналастырыңыздар және оны қасиеттерін беріңіздер

Align = alClient;

Lines = ’’;

WordWrap = TRUE;

ScrolBars = ssBoth;

HideSelection = False; (фокус басқа құрауышқа өткенде ерекшеленген мәтіннің ерекшеленуі өшпейді).

Қадам 4. Пішінге келесі қасиеттері бар OpenDialog1 құрауышын орналастырыңыздар

DefaultExt = TXT;

Filter = ’Текстовые файлы | *.txt’ + ’Все файлы | *.*’;

Title = ’Открытие текстового файла’;

Options (TRUE – ні орнату)

ofHideReadOnly - диалог терезесінен “Открыть только для чтения” қосқышы жойылады ”;

ofFileMustExist - егер жоқ файл таңдап алынатын болса, онда қате туралы хабарлама генерацияланады;

ofNoReadOnlyReturn - егер ReadOnly типті файл таңдап алынса, онда қате туралы хабарлама шығады.

Қадам 5. Пішінге келесі қасиеттері бар SaveDialog1 құрауышын орналастырыңыздар

DefaultExt = TXT;

Filter = ’Текстовые файлы | *.txt’ + ’Все файлы | *.*’;

Title = ’Сохранение текстового файла’;

Options (установить в TRUE)

ofHideReadOnly

ofNoReadOnlyReturn

ofOverwritePrompt - бар файл таңдап алынған кезде қате туралы хабарлама генерацияланады.

Қадам 6. Панелге &Open атпен батырманы орналастырыңыздар және келесі OnClick оқиғасының өңдеуішін жазыңыздар (міндетті түрде әр команданың мағынасын түсініңіздер)

With OpenDialog1 do

if Execute then begin

Memo1.Lines.LoadFromFile(FileName);

Caption:='TextEditor - '+ExtractFileName(FileName);

SaveDialog1.FileName:=FileName;

FileName:='';

end;

Қадам 7. Панелге &Save атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

Қадам 8. Панелге Save&As атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

With SaveDialog1 do

if Execute then begin

Memo1.Lines.SaveToFile(FileName);

Caption:='TextEditor - '+ExtractFileName(FileName);

end;

Қадам 9. Панелге E&xit атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

Close;

Қадам 10. Пішінге OnApply оқиға өңдеуіші бар FontDialog1 құрауышын орналастырыңыздар

Memo1.Font:= FontDialog1.Font;

Қадам 11. Панелге &Font атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

With FontDialog1 do

if Execute then Memo1.Font:=Font;

Қадам 12. Пішінге PrinterSetupDialog1 құрауышын орналастырыңыздар.

Қадам 13. Панелге Printer Set&up атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

PrinterSetupDialog1.Execute;

Қадам 14. Пішінге PrintDialog1 құрауышын орналастырыңыздар

Қадам 15. Панелге &Print атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

var FileOut: TextFile;

k: Integer;

Begin

if PrintDialog1.Execute then begin

AssignPrn(FileOut);

Rewrite(FileOut);

Printer.Canvas.Font:=Memo1.Font;

for k:=0 to Memo1.Lines.Count-1 do

Writeln(FileOut,Memo1.Lines[k]);

CloseFile(FileOut)

end;

end;

Принтермен жұмыс істеу процедурасы Printers модулінде орналасқан. Оның атын Unit1 модулінің interface бөлімінің uses тізімінде белгілеңіздер.

Қадам 16. Панелге Fi&nd атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

FindDialog1.Execute;

Қадам 17. Панелге &Replace атпен батырманы орналастырыңыздар және OnClick оқиғасының өңдеуішін жазыңыздар:

ReplaceDialog1.Execute;

Қадам 18. Пішінге FindDialog1 және ReplaceDialog1 құрауыштарын орнатыңыздар және Options тобының жалпы қасиеттеріне TRUE мәнін орнатыңыздар

frHideMachCase - “С учетом регистра” қосқышын тығып қояды,

frHideWholeWord - “Только слово целиком” қосқышын тығып қояды,

frHideUpDown - іздеу бағытын таңдау батырмаларын тығып қояды.

Қадам 19. FindDialog1 құрауышының OnFind оқиға өңдегішін анықтау:

Өңдеуіштің мәтіні Түсініктеме
var Buff,FT,P: PChar; BuffLen: Integer; Көмекші айнымалылардың сипаттамасы.
Begin With Sender as TfindDialog do begin Процедураның басында төменде қолданылатын қасиеттер мен әдістер TFindDialog класының объектісі ретінде қарастырылатын Sender (оқиға көзі) объектісіне қатысты екені көрсетіледі.
BuffLen:=Memo1.GetTextLen+1; GetMem(Buff,BuffLen); Memo1.GetTextBuf(Buff,BuffLen); Memo1 – дегі мәтін динамикалық Buff айнымалысына көшіріледі. Ол үшін BuffLen - ге мәтіннің ұзындығы кіргізіледі, Buff айнымалысына жадыда орын бөлінеді және көшіру орындалады.
GetMem(FT,Length(FindText)+1); StrPCopy(FT,FindText); Аналогиялық түрде FT динамикалық айнымалысына іздеу жолындағы мәтін көшіріледі.
P:=Buff+Memo1.SelStart+ Memo1.SelLength; P айнымалысына іздеудің басқы адресі кіргізіледі.
P:=StrPos(P,FT); P айнымалысына іздеу үлгісіне сай келетін бағыныңқы жолдың адресі кіргізіледі.
If P=Nil then MessageBeep(0) Егерадрес ноөлдік болса (үлгі табылған жоқ), онда дыбыстық дабыл генерацияланады.
else begin Memo1.SelStart:=P-Buff; Memo1.SelLength:=Length(FindText) end; Әйтпесе, егер үлгі табылса, ол Memo1 – де ерекшеленеді.
FreeMem(FT); FreeMem(Buff,BuffLen); end; end; Процедура аяқталғанда динамикалық айнымалылар бүлінеді.

Қадам 20. ReplaceDialog1 құрауышы үшін OnFind өңдеуішін FindDialog1 құрауышының оқиғасы ретінде (Object Inspector терезесінде) көрсету керек (сондықтан бұл процедурада FindText іздеу жолы нақты FindDialog1 немесе ReplaceDialog1 құрауыштарынан емес, оқиға көзі Sender – ден алынады.).

Date: 2015-07-01; view: 537; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию