Зертханалық жұмыс №1 «Қойма» деректер қорын басқару жүйесін құру



бет62/100
Дата06.02.2022
өлшемі1,89 Mb.
#53051
1   ...   58   59   60   61   62   63   64   65   ...   100
Байланысты:
БД-зертханалық жұмыс

Имя файла с картинкой

(индекс) в наборе

penEnabled.bmp

0

OpenDisabled.bmp

1

PasteEnabled.bmp

2

PasteDisabled.bmp

3

CopyEnabled.bmp

4

CopyDisabled.bmp

5

CutEnabled.bmp

6

CutDisabled.bmp

7

SaveEnabled.bmp

8

SaveDisabled.bmp

9

ClearEnabled.bmp

10

ClearDisabled.bmp

11







Формаға PopupMenu компонентін орналастырыңыз және оның Name қасиетіне MenuClip мағынасын беріңіз. Кейін оған екі рет шертіп, дизайнер менюінде төменде көрсетілген пункттерді формалап оған төмендегі кестеде көрсетілген қасиеттерді беріңіз:


Кесте 7


Name

Caption

ImageIndex

ShortCut

cmOpen

Открыть

0

F3

cmPaste

Вставить

2

Ctrl+V

cmCopy

Копировать

4

Ctrl+C

cmCut

Вырезать

6

Ctrl+X

cmSave

Сохранить как …

8

Shift+F2

cmClear

Очистить

10

Ctrl+Del



DBImage1, DBImage2 және DBImage3 компоненттерінің PopupMenu қасиетіне MenuClip мағынасын беріңіз.

16-сурет – Тазарту командасы




2-қадам . Қалқып шығатын менюінің тосқауыл және рұқсат командалары.
Мүмкін болатын рұқсат етілген командалары:

  • «Открыть» командасына әрқашан рұқсат етіледі.

  • «Вставить» командасына рұқсат етіледі, егер графикалық сурет алмасу буферінде болған жағғдайда.

  • Ал қалған командаларға рұқсат етіледі, егер МҚ-ның сәйкес өрісінің құрамында сурет болған жағдайда.

Меню пайда болатынның алдындағы OnPopup жағдайын қолданамыз. Онда МҚ-ның қай өрісінде тексерілетін берілгендер бар екенін міндетті түрде анықтау керек:

  1. Қолданылатын модульдер құрамына clipbrd. Модульін қосыңыз.

  2. Отметьте на Формада ClipMenu компонентін белгілеңіз және инспектора объект көмегімен OnPopup жағдайының төменде көрсетілген өңдеушісін құрыңыз:

procedure TfmMain.MenuClipPopup(Sender: TObject);
var j:integer;
dbIM:TDBImage; //Ссылка на компонент, из которого вызвано меню
nmField:string; //Имя поля БД, с которым связан компонент
tmf:TMemoField; //Ссылка на поле БД, с которым связан компонент
begin
nmField:=''; dbIM:=nil;
// Запрет – разрешение пунктов меню:
With MenuClip do begin
Items[1].Enabled := Clipboard.HasFormat(CF_PICTURE); //Вставка
if PopupComponent is TDBImage then dbIM:=(PopupComponent as TDBImage);
if dbIm<>nil then begin
nmField:=dbIM.DataField;
tmf:=dbIM.DataSource.DataSet.FieldByName(nmField) as TMemoField;
if tmf<>nil then begin
if tmf.BlobSize>0 then Items[2].Enabled :=True
else Items[2].Enabled :=False; //Копирование
Items[3].Enabled :=Items[2].Enabled; //Вырезка
Items[4].Enabled :=Items[2].Enabled; //Сохранение
Items[5].Enabled :=Items[2].Enabled; //Очистка
end;
end;
//Присвоить номера картинок для пунктов меню:
for j:=0 to Items.Count -1 do
if Items[j].Enabled then Items[j].ImageIndex:=2*j
else Items[j].ImageIndex:=2*j+1;
end;
end;



  1. Программаны жіберіп, оны тексеріңіз. Егер алмасу буферінде графикалық сурет бар болса, онда қою командасы рұқсат етілген болып есептеледі, ал басқа жағдайда тосқауыл қойылған болып есептеледі.

3-қадам. Қалқып шығатын меню командаларын программалау.

  1. Формаға Dialogs терезесінен OpenPictureDialog және SavePictureDialog, компоненттерін орналастырыңыз, содан кейін олардың Name қасиетіне dlgOpenImage және dlgSaveImage мағыналарын меншіктеңіз..

  2. Дизайнер менюінде щелкните по пункту «Открыть» пункті бойынша шертіп, төменде көрсетілген процедураны құрыңыз:

  3. procedure TfmMain.mcOpenClick(Sender: TObject);



Достарыңызбен бөлісу:
1   ...   58   59   60   61   62   63   64   65   ...   100




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

    Басты бет