Лекциялар жинағы жинақтаған: Ражабова Аида 012-2013 оқу жылы мазмұНЫ мазмұны кіріспе 3



жүктеу 1.79 Mb.
бет17/21
Дата21.04.2019
өлшемі1.79 Mb.
түріЛекция
1   ...   13   14   15   16   17   18   19   20   21

Зертханалық жұмыс №9 "Экрандық объектілерді сүйреу"


Экрандық объектілерді сүйреу тышқанның көмегімен жеке құрауыштардың арасында ақпаратты тиімді тасымалдауға мүмкіндік береді. Жолды бір тізімнен екінші тізімге сүйреу тетігін мысалда қарастырайық. Жоғарғы жақта жазбасы бар ListBox1 және ListBox2 құрауыштарынан тұратын жоба құрыңыздар. Бірінші тізімді апта аттарының атымен толтырыңыздар. Келесі қадамдар сүйреудің төрт қадамынан тұратын хабарламаны өңдеу мысалдарынан тұрады.

1 этап. Сүйреудің басталуы. Тышқанды сол жақ батырмасына басып жылжытқанда өрбиді. ListBox1 құрауышының DragMode қасиетіне dmAutomatic орнатыңыздар, яғни құрауыш өзіне осы этаптың өңделуін алады. Егер осы қасиетке dmManual орнататын болсақ, онда бағдарлама құрушы сүйреудің басын (мысалы, MouseDown оқиғасы бойынша) және оның тетігін іске қосуды (BeginDrag әдісі) өзі қолмен анықтауы керек болады. Сүйреуді бастау сәтінде құрауыш OnStartDrag оқиғасын өрбітеді. Осы қасиетті өңдеу оқиғасына мына жолды жазыңыздар:

Color:=clRed;



2 этап. Құрауыштан объектіні сүйреу. Тышқанның көрсеткішін құрауыштың үстінен жылжытқанда болатын сүйреуде ол OnDragOver оқиғасын өрбітеді. Осы оқиғаны өңдеудің келесі параметрлерін қарастырайық: Source - объект — сүйреудің көзі, X,Y – тышқанның көрсеткішінің координаталары, Accept – құрауыш сүйреп әкелінген ақпаратты қабылдай ма? жоқ па?, соны анықтайтын буль типтес айнымалы. ListBox2 құрауышының осы оқиғасы үшін келесі жолды жазыңыздар, ол тек ListBox1 құрауышынан ғана сүйреуге рұқсат береді:

Accept := Source=ListBox1;



3 этап. Ақпаратты толық құрауышқа лақтыру. Құрауыштан тышқанның батырмасын босатқан сәтте орындалатын сүйреу OnDragDrop оқиғасын өрбітеді. Осы оқиғаның өңдеуішіне сүйреу сәйкес келетін қимыл жазылуы керек. Біздің жағдайда ол жолды сол жақ тізіменен оң жақ тізімге тасымалдау қимылы. ListBox2.OnDragDrop оқиғасының өңдеуішіне ListBox1 тізімінде ерекшеленген жолды ListBox2 тізіміне қосатын операторды жазыңыздар:

with ListBox1 do ListBox2.Items.Add(Items[ItemIndex]);

4 этап. Сүйреуді аяқтау. Құрауыш - сүйреудің көзі оны босатқан сәтте OnEndDrag оқиғасын өрбітеді, оның Target параметрі басқа толық құрауышқа сәйкес келеді (біздің жағдайда ListBox2). Бұл оқиғаның өңдеуішіне бірінші тізімнен таңдап алынған жолды жоятын операторды және пішіннің түсін өзгертетін операторды жазыңыздар:

if Target = ListBox2 then
with ListBox1 do Items.Delete(ItemIndex);

Color := clYellow;

Компиляцияны орындаңыздар және сүйреу тетігінің жұмысын тексеріңіздер.

Өздік жұмысқа тапсырма №9_1

Екі ListBox тізімінен, Edit құрауышынан, Panel құрауышынан, екі батырмадан және төрт жазбадан тұратын жоба құрыңыздар. Берілген жоба келесі функциялардың жұмысын қамтамасыз етуі керек:



  • жолды Edit құрауышынан екі тізімге тасымалдау;

  • жолды бірінші тізімнен екінші тізімге тасымалдау және керісінше;

  • жолды қара панельге сүйреу арқылы жою;

  • файлдағы жолды бірінші тізімде оқу;

  • екінші тізімнің жолдарын файлға сақтау.

Көп таңдау жасалғанда барлық таңдап алынған жолдарды тасымалдау.

Edit - тен <Ctrl> пернесі басылған тасымал жасалғанда, көшірме алынады (тышқанның көрсеткішінің түрі – crCross).

Өздік жұмысқа тапсырма №9_2

Екі ListBox тізімдерінен, Edit құрауышынан және екі батырмадан тұратын жоба құрыңыздар. Ерекшеленген сөзді тасымал жасағанда орындалатын функцияларды іске асыратын бағдарлама құрыңыздар:



  • ListBox1пішін: ListBox1 – дегі сөз қосарланады;

  • ListBox2пішін: ListBox2 – дегі сөз жойылады;

  • ListBox1 ListBox2: сөздердің қарапайым тасымалдануы;

  • ListBox1 Edit1, ListBox2  Edit1: сөздердің орынмен ауысуы;

  • Edit1 ListBox1, Edit1 ListBox2: тышқанның сол жақ пернесі – тасымал, оң жағы – сөздің көшірмесі.

  • ListBox1 (ListBox2) Button1: файлдан барлық тізімді оқу;

  • ListBox1 (ListBox2) Button2: барлық тізімді файлға сақтау.

Көп таңдау жасалғанда барлық таңдап алынған жолдарды тасымалдау.

Edit1 – ден көшірмесін алғанда тышқанның көрсеткішінің түрі – crCross.

Ұсыныс :

Edit1 – ден сүйреудің бастамасын өңдеуді қолмен ұймдастырыңыздар, яғни Edit1.DragMode=dmManual орнатыңыздар және Edit1.OnMouseDown өңдеуішіне келесіні жазыңыздар (бұл толық емес):

if (Button=mbLeft) and (Edit1.Text<>'') then
Edit1.BeginDrag(False);

3.5 Диалог терезелері. Dialogs парағындағы Delphi құрауыштары (Open Dialog, Save Dialog, Font Dialog және т.б.)


Windows жанұясының операциялық жүйелері файлды ашуға және сақтауға, қаріпті, түсті, принтерді және басқаларды таңдауға және баптауға тағайындалған стандартты диалог терезелерінен тұрады. Delphi ортасы да стандартты диалог терезелерінен тұрады. Ол үшін Delphi – дің құрауыштар кітапханасында өз кезегінде тікелей TComponent класының ұрпақ класы болып келетін TCommonDialog (Жалпы диалог) бір ата – тек класына қатысты арнайы кластар анықталған. Диалог терезелері көрнекілік емес құрауыштардың мысалы болып табылады. Бұны мынадан байқауға болады, конструктірлеу кезеңінде пішінге орналастырылатын құрауыштың сыртқы көрінісі бағдарламаның орындалу барысындағы диалог терезесінің сыртқы көрінісімен сай келмейді.

Delphi - дің диалог терезелерін жүзеге асыру ерекшелігі олардың Windows жанұясының операциялық жүйесіндегі стандартты мүмкіншіліктерді қолдануы болады. Мысалы, Delphi - дің диалог терезелері операциялық жүйеде қолданылатын тілдегі ақпараттан тұрады.



Dialogs – Құрауыштар Палитрасындағы стандартты диалогтардың парағы.

Open Dialog – ашылатын файлдың атын таңдауға тағайындалған диалог терезелері.

Иерархиясы:



TObjectTPersistentTComponentTCommonDialog.

Ашылатын файлдың атын таңдауға арналған диалог терезелері TOpenDialog класының данасы болып табылады. Ол компьютердің файлдық жүйесін көруге және керекті файлдың атын таңдауға тағайындалған (3.5.1 суретін қараңыздар).

Байқағандарыңыздай Open Dialog құрауышы файлды автоматы түрде ашуға тағайындалмаған. Ол тек қолданушының таңдаған файлының атын ғана алуға мүмкіндік береді. Файлды тікелей ашу Object Pascal тілінің стандартты процедураларының көмегімен немесе арнайы әдістермен жүзеге асырылады. Мұндай әдістер мысалы TStrings класында анықталған.

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

property DefaultExt: String – егер файлдың кеңейткіші көрсетілмесе оның атына қосылып жазылатын кеңейткіштен тұрады. Бөлетін нүктені қоспағанда үш символдан тұруы мүмкін.

property FileName: TFileName;

type

TFileName = String;

Ол таңдап алынған файлдың атынан тұрады. Ол ат диалог терезесінің Имя файла: (File Name:) жолына орналастырылады.

property Files: TStrings – ерекшеленген файлдардың аттарының тізімінен тұрады. Қасиет тек оқуға ғана тағайындалған.

property Filter: String – бір немесе бірнеше файлдық сүзгілердің сипаттамасынан тұрады. Файлдық сүзгі – арнайы символдардан тұратын файлдың атының (файлдың қалқасы) бір немесе бірнеше шаблоны. Мысалы, *.pas қалқасы қолданушыға диалог терезесінде тек қана .pas кеңейткіші бар файлдарды ғана бейнелеуге көмектеседі. Filter қасиетінде көлбеу сызықтармен бөлінген бірнеше символдар тізбегінің жұбы болуы мүмкін. Әрбір осындай жұп бір файлдық сүзгіге сай келеді және өз кезегінде көлбеу сызықпен бөлінген екі бөліктен тұрады. Бірінші бөлік берілген сүзгі үшін диалог терезесінің Тип файлов: (Files of type:) аралас жолында шығатын мәтінді береді, ал екінші бөлім сүзгінің өзінен тұрады. Сүзгі үтір мен нүкте арқылы аударылған файл қалқасын береді. Мысалы, оператордың орындалуының нәтижесінде

OpenDialog1.Filter := Delphi модульдерінің файлдары(*.pas)|*.pas|' +

'Мәтіндік құжаттар (*.txt, *.doc)|*.txt;*.doc';

диалог терезесінің Тип файлов: аралас жолы екі жолдан тұратын болады:

Delphi модульдерінің файлдары (*.pas)

және


Мәтіндік құжаттар (*.txt, *.doc)

Бірінші жолға *.pas файлдық сүзгі, ал екінші жолға *.txt; *.doc файлдық сүзгі сай келеді. Сәйкес бірінші сүзгіні таңдағанда файлды ашу диалог терезесінде .pas кеңейткіші бар файлдар ғана бейнеленеді, ал екінші сүзгіні таңдағанда - .txt немесе .doc кеңейткіші бар файлдар бейнеленеді.

Пішінді конструктірлеу кезеңінде Объект Инспектірінен осы қасиетті таңдағанда көмекші терезе ашылады, оның көмегімен көлденең бөлгіш сызықтарды жазбай – ақ сүзгінің мәтінін және сүзгінің өзін беруге болады. property FilterIndex: Integer – диалог терезесі ашылғанда үнсіздікпен сүзгінің қандай элементі көрсетілетінін анықталады. Элементтерді нөмірлеу бір санынан басталады. Әдетте сүзгінің бірінші элементі қолданылады.

property InitialDir: String – құрамы диалог терезесі ашылғанда пайда болатын қапшықты анықтайды. Егер осы қасиеттің мәні тағайындалмаса, онда ағымды қапшық немесе қолданушының диалог терезесіне соңғы рет қатынағанда ашылған қапшық ашылады.

property Title: String – диалог терезесінің тақырыбын береді.

property Options: TOpenOptions;

type

TOpenOption = (ofReadOnly, ofOverwritePrompt, ofHideReadOnly, ofNoChangeDir, ofShowHelp, ofNoValidate, ofAllowMultiSelect, ofExtensionDifferent, ofPathMustExist, ofFileMustExist, ofCreatePrompt, ofShareAware, ofNoReadOnlyReturn, ofNoTestFileCreate, ofNoNetworkButton, ofNoLongNames, ofOldStyleDialog, ofNoDereferenceLinks);

TOpenOptions = set of TOpenOption;

Ол диалог терезесінің сипаттамасын орнатады және мән ретінде келесі шамалардың кез – келгенін ала алады:



ofReadOnly Только для чтения файлының ашылуының қосқышын береді (орнатады),

ofOverwritePrompt – файлды сақтағанда хабарлама шығады, егер мұндай файл бар болатын болса, онда файлды ауыстыруға растауды сұрайды,

ofHideReadOnlyТолько для чтения файлының ашылуының қосқышын тығып қояды (үнсіздікпен беріледі),

ofFileMustExist – бұл мән берілгенде тек бар файлдарды ғана беруге болады, қарсы жағдайда файл жоқ деген хабарлама шығады,

ofNoReadOnlyReturn – бұл параметр берілгенде Только для чтения файлын таңдағанда файлды ашуға болмайды деген хабарлама шығады,

ofAllowMultiSelect – бірден көп файлдарды ерекшелеуге мүмкіндік береді.

Файлды ашу диалог терезесін қолданғанда ерекше орынды TOpenDialog класында анықталған Execute әдісі алады.



function Execute: Boolean; override;

Диалог терезесін экранға модальды режимде орналастырады. Модальды режим дегеніміз - қосымшаның орындалуы қолданушы модальды терезені жаппағанша тоқтамайды. Функция True мәнін қайтарады, егер терезе Открыть батырмасы арқылы жабылса, және False, егер Отмена батырмасы арқылы жабылса.



TOpenDialog класында OnFolderChange, OnSelectionChange және OnTypeChange оқиғалары анықталған:

property OnFolderChange: TNotifyEvent;

Диалог терезесінің көмегімен қандай да бір қапшық ашылғанда немесе жабылғанда өрбиді.



property OnSelectionChange: TNotifyEvent;

Ерекшеленген файл өзгергенде өрбиді.



property OnTypeChange: TNotifyEvent;

Берілген сүзгі бойынша анықталған, диалог терезесінде бейнеленетін файлдардың типі өзгергенде өрбиді.



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

procedure TForm1.Button1Click(Sender: TObject);

var F: TextFile;

S: String;



begin

IF OpenDialog1.Execute THEN {Экранға файлды ашу диалог терезесін шығару}

BEGIN {Егер терезе Открыть батырмасы арқылы жабылған болса, онда ...}

{Диалог терезесінің файл атында таңдап алынған атты файлдық айнымалымен байланыстыру}

AssignFile(F,OpenDialog1.FileName);

Reset(F); {Файлды ашу}

Readln(F,S); {Файлдан бірінші жолды S жолдық айнымалысына есептеу }

Edit1.Text:=S; { Edit1құрауышындағы S жолын шығару}

CloseFile(F); {Файлды жабу}

END;

end;

Мысал 3.5.2 Button2 құрауышы үшін OnClick оқиға өңдеуіші ашылатын файлдың атын таңдауға арналған диалог терезесін ашады және файлдың мәтінін Memo1 құрауышына орналастырады.

procedure TForm1.Button2Click(Sender: TObject);

var fFileName: TfileName;

begin

WITH OpenDialog1 DO

BEGIN

Filter := 'All files|*.*'+'Text files|*.txt,*.doc';

FilterIndex := 2;

IF Execute THEN

BEGIN

{Таңдап алынған файлды Memo1 құрауышында ашады}

Memo1.Lines.LoadFromFile(FileName);



{ fFileName айнымалысына таңдап алынған файлдың толық атын жазу}

fFileName := OpenDialog1.FileName;



{Файлдың толық атын пішіннің тақырыбына шығару}

Form1.Caption := fFileName;



{Label1 құрауышына толық атынан бөліп алып, дискі және каталогтың атынсыз файлдың атын шығару}

Label1.Caption := ExtractFileName(fFileName);



END;

END;

end;

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

Иерархиясы:



TObjectTPersistentTComponentTCommonDialogTOpenDialog.

Save Dialog диалог терезесі Open Dialog терезесіне өте ұқсас, бірақ одан айырмашылығы ол файлды сақтауда қолданылады (сурет 3.5.2 көріңіздер).

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

TSaveDialog класында TOpenDialog класының аналогиялық функциясы атқаратын іс - әрекетті орындайтын өзінің Execute функциясы анықталған.

Өздерінің құрылымдары және сыртқы бейнесі бойынша Save Dialog және Open Dialog диалог терезелерінің айырмашылықтары аз ғана.



Мысал 3.5.3 Button2 құрауышы үшін OnClick оқиға өңдеуіші сақталатын файлдың атын таңдауға арналған диалог терезесін ашады және Memo1 құрауышындағы мәтінді осы файлға сақтайды.

procedure TForm1.Button2Click(Sender: TObject);

begin

IF SaveDialog1.Execute THEN

BEGIN

Form1.Caption := SaveDialog1.FileName;

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

END;

end;

Font Dialog – қаріпті таңдау диалог терезесі.

Иерархиясы:



TObjectTPersistentTComponentTCommonDialog.

Қаріпті таңдау Font Dialog диалог терезесі қолданушыға қаріпті таңдауға және оның сипаттамаларын орнатуға мүмкіндік береді (сурет 3.5.3 қараңыздар).

Font Dialog құрауышы тікелей TCommonDialog класынан туындаған TFontDialog класының данасы болып табылады.

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

property Device: TFontDialogDevice;

type

TFontDialogDevice = (fdScreen, fdPrinter, fdBoth);

Ол қандай құрылғы үшін қаріп тағайындалатынын анықтайды. Келесі мәндерді қабылдауы мүмкін:



fdScreen – экран үшін қаріп,

fdPrinter – принтер үшін қаріп,

fdBoth – экран және принтер үшін қаріп.

Үнсіздікпен қаріп экран үшін беріледі.



property Font: TFont – қаріптің сипаттамаларын береді. Мәтінді бейнелеу үшін Windows операциялық жүйесінде тіркелген көптікке тиісті қаріп қолданылады.

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

type

TFontDialogOption = (fdAnsiOnly, fdTrueTypeOnly, fdEffects, fdFixedPitchOnly, fdForceFontExist, fdNoFaceSel, fdNoOEMFonts, fdNoSimulations, fdNoSizeSel, fdNoStyleSel, fdNoVectorFonts, fdShowHelp, fdWysiwyg, fdLimitSize, fdScalableOnly, fdApplyButton);

TFontDialogOptions = set of TFontDialogOption;

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



fdAnsiOnly – бұл параметр тағайындалғанда символдары Windows операциялық жүйесінің көптік символдарына кіретін қаріпті ғана таңдауға болады,

fdEffects – бұл параметр тағайындалғанда диалог терезесі қаріптің астын сызуды және қайта сызуды анықтайтын Effects терезесінен және қаріптің түсін анықтайтын Color терезесінен тұрады,

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

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;


Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   21


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

    Басты бет