Имя файла с картинкой
|
№ (индекс) в наборе
|
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
|
|
|
Формаға оның 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
|
, DBImage2 және DBImage3 компоненттерінің PopupMenu қасиетіне MenuClip мағынасын беріңіз.
16-сурет – Тазарту командасы
2-қадам . Қалқып шығатын менюінің тосқауыл және рұқсат командалары.
Мүмкін болатын рұқсат етілген командалары:
«Открыть» командасына әрқашан рұқсат етіледі.
«Вставить» командасына рұқсат етіледі, егер графикалық сурет алмасу буферінде болған жағғдайда.
Ал қалған командаларға рұқсат етіледі, егер МҚ-ның сәйкес өрісінің құрамында сурет болған жағдайда.
Меню пайда болатынның алдындағы Онда МҚ-ның қай өрісінде тексерілетін берілгендер бар екенін міндетті түрде анықтау керек:
Қолданылатын модульдер құрамына clipbrd. Модульін қосыңыз.
Отметьте на Формада инспектора объект көмегімен OnPopup жағдайының төменде көрсетілген өңдеушісін құрыңыз:
procedure TfmMain.MenuClipPopup(Sender: TObject);
var j:integer;
dbIM:TDBImage; //Ссылка на компонент, из которого вызвано меню
nmField:string; //Имя поля БД, с которым связан компонент
tmf:TMemoField; //Ссылка на поле БД, с которым связан компонент
begin
nmField:=''; dbIM:=nil;
// Запрет – разрешение пунктов меню:
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;
Программаны жіберіп, оны тексеріңіз. Егер алмасу буферінде графикалық сурет бар болса, онда қою командасы рұқсат етілген болып есептеледі, ал басқа жағдайда тосқауыл қойылған болып есептеледі.
3-қадам. Қалқып шығатын меню командаларын программалау.
Формаға Dialogs терезесінен OpenPictureDialog және SavePictureDialog, компоненттерін орналастырыңыз, содан кейін олардың Name қасиетіне dlgOpenImage және dlgSaveImage мағыналарын меншіктеңіз..
Дизайнер менюінде щелкните по пункту «Открыть» пункті бойынша шертіп, төменде көрсетілген процедураны құрыңыз:
procedure TfmMain.mcOpenClick(Sender: TObject);
Достарыңызбен бөлісу: |