мо обробник OnKeyPress для форми:
if key = # 27 thenimage1.Canvas do (cliprect, oldbitmap.Canvas, cliprect);
Тепер будь-яку графічну операцію можна скасувати відразу після її виконання, натиснувши клавішу Esc.
. Додамо нашому редактору ще кілька функціональних можливостей. Реалізуємо можливість використання додаткових кольорів. p align="justify"> Розмістимо на формі компоненти StaticText1 (Caption = FG ), StaticText2 (Caption = BG ) (панель Additional) і ColorDialog1. Для компонентів StaticText1 і StaticText2 задамо наступні характеристики:
Alignment = taCenter; AutoSize = False; BorderStyle = sbsSunken; Font.Color = cllnactiveCaption.
У секцію imlementation додайте наступну процедуру:
procedure NewColor (sender: TObject; Acolor: TColor); Form1 dosender = StaticText1 then.ForegroundIndex: = -1 else.BackgroundIndex: = -1;// приховування підписів FG і BG на компоненті ColorGrid1
(sender as TStaticText). Color: = AColor;
(sender as TStaticText). Font.Color: = AColor xor $ FFFFFF;// колір тексту на компонентах StaticText буде інверсним до фону компонентаChange (Sender);;;
. Напишемо обробник OnMouseDown для StaticText1: ColorDialog1 doSender = StaticText1 then: = Shape1.Pen.ColorColor: = Shape1.Brush.Color; execute then// виклик діалогового вікна ColorDialog1, якщо воно було закрите кнопкою В«ОКВ», Execute = true (sender, color);;
Для OnMouseDown StaticText2 виберемо StaticText1MouseDown
Оброблювач OnChange для Colorgrid1 змінимо таким чином:
with colorgrid1 doForegroundIndex <> -1 then.Color: = clBtnFace;. Font.Color: = clInactiveCaption;; BackGroundIndex <> -1
end;
Для вибору кольору лінії або кольору фону, що не входить в палітру ColorGrid1, потрібно клацнути мишкою по компонентах StaticText1 або StaticText2 відповідно, в діалоговому вікні В«КолірВ» вказати новий колір і натиснути ОК. При цьому компонент StaticText забарвиться у відповідний текст, а мітка В«FGВ» (В«BGВ») з палітри ColorGrid1 зникне. p align="justify">. Реалізуємо завдання квітів за допомогою В«піпеткиВ». Внесемо зміни в обробник OnMouseDown для Image1:
with image1.Canvas do.Canvas.CopyRect (cliprect, image1.Canvas, cliprect); ssAlt in Shift thenButton
Тепер новий колір лінії і фону можна отримати безпосередньо із зображення, клацнувши відповідної лівої чи правої клавішею мишки в потрібному місці, утримуючи клавішу Alt.
. Розмістимо на формі додаткові компоненти. br/>В
Компоненти SpeedButton4 (Cuption =