МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет «Львівська політехніка»
Кафедра АСУ
Звіт
до лабораторної роботи №3
з курсу “Об'єктно орієнтоване програмування”
Варіант 11
Бунь І.П.
Тема : Створення проекту з використанням технології Drag&Drop та контекстних підказок
Мета роботи: навчитися використовувати можливості технології Drag&Drop у прикладних програмах, додавати до програм контекстні підказки.
Порядок виконання роботи:
Порядок роботи:
Користуючись рекомендованою літературою до лабораторної роботи створити проект відповідно до індивідуального завдання.
Оформити звіт для захисту лабораторної роботи за зразком
назва роботи
мета роботи
порядок роботи
короткі теоретичні відомості
алгоритм розв’язку задачі
тексти відповідних модулів проекту
аналіз отриманих результатів та висновки
Завдання.
Написати програму, яка показує можливості технології Drag&Drop для заданих об'єктів - джерела та приймача. Необхідну інформацію для користувача програми оформити у вигляді контекстної підказки.
11. Image – Image
Тексти програм:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtDlgs, Menus, ExtCtrls,ShellAPI, StdCtrls, jpeg;
type
TMainForm = class(TForm)
Image_Left: TImage;
MainMenu: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
OpenPict: TOpenPictureDialog;
Image_Right: TImage;
Label_Left: TLabel;
Label_Right: TLabel;
N5: TMenuItem;
ImageBuf: TImage;
ImageBuf2: TImage;
Image1: TImage;
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Image_LeftMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image_RightDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Image_RightDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure Image_LeftDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Image_LeftDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure Image_RightMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.N3Click(Sender: TObject);
begin
if OpenPict.Execute() then
Image_Left.Picture.LoadFromFile(OpenPict.FileName);
end;
procedure TMainForm.N4Click(Sender: TObject);
begin
Close;
end;
procedure TMainForm.N5Click(Sender: TObject);
begin
if OpenPict.Execute() then
Image_Right.Picture.LoadFromFile(OpenPict.FileName);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
Image_Left.Canvas.Brush.Color:=$999999;
Image_Left.Canvas.Rectangle(Image_Left.ClientRect);
Image_Right.Canvas.Brush.Color:=$999999;
Image_Right.Canvas.Rectangle(Image_Right.ClientRect);
end;
procedure TMainForm.N2Click(Sender: TObject);
begin
Application.MessageBox(Pchar('Програма створена за підтримки фірми "Славутич"'),Pchar('Про програму'),MB_OK);
end;
procedure TMainForm.Image_LeftMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
IF(Button=mbLeft)then (Sender as TControl).BeginDrag(False);
end;
procedure TMainForm.Image_RightDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if(Sender as TControl<>Source)then Accept:=Sender is TImage else Accept:=False;
end;
procedure TMainForm.Image_RightDragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
(Sender as TImage).Picture:=(Source as TImage).Picture;
end;
procedure TMainForm.Image_LeftDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if(Sender as TControl<>Source)then Accept:=Sender is TImage else Accept:=False;
end;
procedure TMainForm.Image_LeftDragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
(Sender as TImage).Picture:=(Source as TImage).Picture;
end;
procedure TMainForm.Image_RightMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then (Sender as TControl).BeginDrag(FALSE);
end;
end.
Висновок: На даній лабораторній роботі я навчився парацювати з технологією Drag&Drop та її використовувати при переміщенні інформації перетягуванням миші між різними елементами програми.