Дәріс №7. Мәтіндік ақпаратты енгізу және бейнелеу компоненттері Жоспар Мәтіндерді шығару



бет3/3
Дата06.04.2022
өлшемі73,62 Kb.
#30090
1   2   3
Байланысты:
Лекция-1642410070486

MessageDlg формасы

Айнымалы:= MessageDlg (хабар,хабар типі, батырма, контекст_ анықтама)

Мысалы: айнымалы қандай да бір айнымалы


Хабар типі


Тұрақты

Хабар типіне түсініктеме

Белгі


mtWаrning

Назар аударыңыз







mtError

Қате





mtInformation

Информация






mtConfirmation

Дәлелдеу





mtCustom

Әдеттегі түрі


Белгі болмайды




Батырма тұрақтылары


Тұрақты

Батырма

mbYes

Yes

mbNo

No

mbOK

OK

mbCancel

Cancel

mbHelp

Help

mbAbort

Abort

mbRetry

Retry

mbIgnrore

Igrore

mbAll

All


Контекст анықтамасы – анықтамалық жүйенің бөлімін анықтайтын параметр. Ол экранда қолданушы батырмасын басса ғана пайда болады. Егер анықтаманы шығару қажет болмаса, онда параметрдің мәні 0-ге тең болу керек.
Мысалы: r:= MessageDlg (‘санды 0 –ге бөлуге болмайды' , mtError,[ mbOK, mbCancel],ø);

Memo және RichEdit- компоненттері көпжолдық редакторлар болып табылады. Бұл компоненттер көмегімен бірнеше жолдан тұратын мәліметтер өңделеді.

Көпжолды редактор мәтіндермен жұмыс жасау үшін Delphi-да MEMO компоненті қызмет атқарады. Memo компоненті үлкен көлемді мәтінді енгізуге рұқсат береді, сондықтан оны символдық массивтерді енгізу үшін қолдану тиімді. Memo компоненті формаға басқа компоненттер сияқты қойылады. Memo компонентінің белгішесі Standard парақшасында орналасқан.

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

String типті Text қасиетін пайдаланамыз.

Бұл жағдайда MEMO – компонентінің барлық мазмұны бір жол түрінде көрсетеді.



MEMO – компонентінің жеке жолдарымен жұмыс жасау үшін Tsring типті Lines қасиетін пайдаланамыз. Жолдық массивтің реті 0-ден басталады

Мысалы: Көп жолды редактормен және оның жолдарымен әрекеттер орындау.
MEMO 1. Lines [2]:=“мысал”;

MEMO1.Clear

MEMO1.Lines.Add(‘жол қосу’);- жол қосады.
Memo компонентінің қасиеттері

Қасиеті

Анықтамасы

Name

Компонент атауы. Программада компоненттің кейбір қасиеттеріне рұқсат ретінде пайдаланылады.

Text

Memo өрісінде орналасқан мәтін. Бүтін ретінде қарастырылады.

Lines

Memo өрісінде орналасқан мәтін. Жолдар жиынтығы ретінде қарастырылады. Жолға өту жолдың номері арқылы жүзеге асады.

Lines.Count

Memo өрісіндегі жолдар саны

Left

Өрістің сол жақ шетінен форманың сол жақ шетіне дейінгі ара қашықтығы

Top

Өрістің жоғарғы жақ шетінен форманың жоғарғы жақ шетіне дейінгі ара қашықтығы

Height

Өрістің биіктігі

Width

Өрістің ені

Font

Енгізілген мәтін мазмұнын көрсету қарібі

ParentFont

Форма қарібінің мінездемесін мұрат ету белгісі

Memo компонентін қолдану кезінде массив элементтерінің мәндерін енгізген кезде әр жолға енгізу қажет және массив элементтерін енгізгеннен кейін пернесін басу керек.

Memo өрісінің мәтін жолына өту үшін тік жақшада керек жол нөмірін (нөмірлеу 0-дан басталады) көрсету арқылы Lines қасиеті көмегімен жүзеге асырылады.

Төменде 5.5 листингта көрсетілген программа Memo компоненті көмегімен символдық массивті енгізудің мысалын көрсетеді.

Символдық массивті Memo компоненті көмегімен енгізу процедурасының негізгі циклы мынандай түрде болуы мүмкін:
For i:=1 to SIZE do

a[i] := Memo1.Lines[i];



мұндағы:

  • SIZE – массив өлшемін көрсететін атаулы тұрақты;

  • a – массив;

  • Memo1 – Memo компонентінің аты;

  • Lines – әр элементі Memo компонентінің бір жолынан тұратын, массив болатын Memo компонентінің қасиеті.

Программа формасы 5.1- суретте көрсетілген. Memo өрісінен басқа онда, шерткен кезде Memo өрісіне массив элементтері мәндері жазылатын, командалық батырма (Button1) орналасқан.


Мысал. Memo компонентінен массив жолдарын енгізу
Unitfr_memo_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls;



type

TForm1 = class (TForm)

Label1: Tlabel;

Button1: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

{Private declarations}

public

{Public declarations}



end;

var

Form1: TForm1;


implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);

const


SIZE=5; // массив өлшемі

var

a :array [1..SIZE] of string; //массив

n: integer; // Memo өрісіне енгізілген жолдар саны

st: integer; //массив элементінің индексі

i: integer;

begin

n:=Memo1.Lines.Count;

if n = 0 then

begin

ShowMessage(‘Бастапқы мәліметтер енгізілмеген!’);

Exit; // оқиғаны өңдеу продурасынан шығу

end;

// Memo өрісінде мәтін бар

if n> SIZE then

begin

ShowMessage(‘Жолдар саны массив өлшемінен артық.’);

n:=SIZE; тек бірінші SIZE жолдарды енгіземіз

end;

for i:=1 to ndo

a[i]:=Form1.Memo1.Lines[i-1]; // Memo жолдары 0-дан бастап нөмірленген

// массивті хабарлама терезесіне шығару

if n>0 then

begin

st:=’Енгізілген массив: ’+#13;

for i:=1 to ndo

st:=st+IntToStr(i)+’ ‘+a[i]+#13;

ShowMessage(st);

end;

end;

end.

Негізгі жұмысты, алдымен Memo1 өрісінде мәтін бар жоғын анықтайтын, TForm1.Button1Click процедурасы орындайды. Егер мәтін болатын болса (бұл жағдайда Lines.Count қасиетінің мәні 0-ден үлкен), онда процедура енгізілген жолдар мен массив өлшемін салыстырады. Егер енгізілген солдар саны массив өлшемінен үлкен болатын болса, онда программа n-нің мәнін өзгертеді, сонымен тек бірінші SIZE жолдарды ғана енгізеді.



6 суретте Массивті енгізу қосымшасының диалогтық терезесі көрсетілген. Енгізу командалық батырмасын шерткеннен кейін, Memo өрісінен алынған массив элементтері мәндерінен тұратын терезе пайда болады (7 сурет).


Memo-компоненттінің мазмұнын файлдан жүктеуге болады және Memo өрісіндегі мазмұнды файлға сақтауға болады.Ол үшін:

Жүктеу-LoadFromFile(constfilename:string)

Cақтау- SaveToFile(constfilename:string)

Бұл екі әдісіміз Tstring-класынан шығады.Filename параметрі текстік файлдың аты.

Memo1.LoadFromFile(‘C:\Мои дакументі\adves.txt’)

Memo1.SavetoFile (‘c:\odv5.txt’)

Memo-компонентінің өрісіндегі мәтінді әртүрлі тәсілмен түзеуге болады.

Taligament-типті aligamentқасиеті келесі мәндердін бірін қабылдайды.

1)taleftjujtify-сол жақ

2)taCenter-центр бойынша

3)taRidhtjujtifu-оң жақ

Memo-компанентіндегі ақпаратты қарауға ыңғайлы болу үшін, оған жылжыту жолағы орналастырады. Оның қабылдайтын мәндері:

Tscrollstyle – Scroll Bars


  • SSNone – айналдыру жолағы болмайды (үнсіз жолақ)

  • SSHorizontal – көлденең айдандыру жолағы

  • SSVertical – тік айналдыру жолағы

  • SSBoth – горизонтальды және вертикальды жылжыту жолағы пайда болады.

Бір жолды редактордан Memo компонентінің ерекшелігі Memo – Enter – клавишасын басуға реакция береді, яғни бұл жағдайда жаңа жолды енгізуді орындау үшін

Boolean - типті Wantrefurns қасиетіне True мәні меншіктелуі керек.

Көп жолды редактор RichEDIT – WIN32

Ақпаратты редактрлеуге арналған үшін барлық компоненттер бір-біріне ұқсас болады. Өстіп жалпы әдістерге оқиғаоарға, қасиеттерге ие болады. Редактрдің мазмұнын өзгерту кезінде

TNotifEvent – типті OnChang оқиғасы пайда болады.

Сонымен қатар редактордың мәліметтерін өзгертү үшін



Boolean -типті Modrfild қасиетті бар. Өзгеріс енгізілсе ол True мәнін қабылдайды.

Редактрлеу элементінде максималды қанша символ енгізуге рұқсатты, қамтамасыз ету үшін.



Integer – типті Maxlength қасиеті бар.

Seltext,Autoselect, Selstart,Selength – қасиеттері мәтінін ерекшеленген жеке бөліктерінен жұмыс жасауға мүмкіндік жасайды.

Boolean -типті Autoselectқасиеті мәтін енгізу фоксын қабылдаған кезеңде,редактрлау элементтерінің мәні автоматты түрде ерекшелетінін анықтайды.

String - типті seltext – қасиеті ерекшеленген мәтін бөлігін анықтайды.

Integer –типті sellength және бастапқы позициясын және ерекшеленген бөліктің ұзындығын анықтайды.

Егер де бөлігі программалық түрде ерекшеленетін болса, мысалы: х жолды іздеу жағдайда ол қандай да бір түспен ерекшеленуі керек болса онда



Boolean – типті HideSelection қасиетіне False мәнін орнату қажет.

Мәтіннің ерекшеленген бөліктерімен амалдар орындау үшін



Select All, CopyToClipBoard;

CutToClipBoard әдістер қолданады

SelectAll - әдісі редактрлеу өрісіндегі барлық мәтінді ерекшелейді.

CopyToClipBoard - әдістерді алмастыру буферіне мәтіннің ерекшеленген бөлігін көшіреді, ал CutToCipBoard әдісі.

Алмастыру буферімен жұмыс жасау үшін



PasteFromClipBoard - әдісін пайдаланамыз. Ол алмастыру буферіндегі мәтіннің бөлігін курсор тұрған қажетті орынға қояды.

Редакрлеу элементіне енгізілген мәтінді тексеру үшін OnExit – оқиғасын пайдалануға болады.

Достарыңызбен бөлісу:
1   2   3




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет