Скачати 49.89 Kb.
|
Міністерство освіти і науки України Черкаський державний технологічний університет Кафедра спеціалізованих комп’ютерних систем Звіт З лабораторної роботи №5 З дисципліни «Комп’ютерні системи»
Черкаси 2010 Розробка додатків в універсальному середовищі Delphi Мета роботи - ознайомитись з універсальним середовищем Delphi, отримати навички у розробці програм з використанням мови Object Pascal та візуальних компонентів, навчитися створювати додатки для операційної системи Win 32, ознайомитися з властивостями додатка.
Лістинг програми unit mainUnit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtDlgs, StdCtrls, ComCtrls, ExtCtrls, Buttons, ToolWin, ImgList; type TForm1 = class(TForm) SavePictureDialog1: TSavePictureDialog; OpenPictureDialog1: TOpenPictureDialog; ScrollBox1: TScrollBox; Image1: TImage; ToolBar1: TToolBar; OpenBtn: TToolButton; SaveBtn: TToolButton; Panel2: TPanel; ProgressBar1: TProgressBar; ImageList1: TImageList; procedure SavePictureDialog1TypeChange(Sender: TObject); procedure Image1Progress(Sender: TObject; Stage: TProgressStage; PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: String); procedure SavePictureDialog1Close(Sender: TObject); procedure FormCreate(Sender: TObject); procedure OpenBitBtnClick(Sender: TObject); procedure SaveBitBtnClick(Sender: TObject); procedure ToolBar1Resize(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses jpeg; const DeltaH : Integer = 80; var Quality : TJpegQualityRange; ProgressiveEnc : Boolean; procedure TForm1.FormCreate(Sender: TObject); var s: string; begin s :=GraphicFilter(TBitmap)+'|'+GraphicFilter(TJpegImage); OpenPictureDialog1.Filter := s; SavePictureDialog1.Filter := s; end; procedure TForm1.OpenBitBtnClick(Sender: TObject); begin if OpenPictureDialog1.Execute then begin Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); SaveBtn.Enabled := True; end; end; procedure TForm1.SaveBitBtnClick(Sender: TObject); var ji : TJpegImage; begin with SavePictureDialog1 do begin FilterIndex := 1; FileName := ''; if not Execute then Exit; if Pos('.',FileName)=0 then if (FilterIndex=1) then FileName := FileName + '.bmp' else FileName := FileName + '.jpg'; if (FilterIndex=1) then Image1.Picture.Bitmap.SaveToFile(FileName) else begin ji := TJpegImage.Create; ji.CompressionQuality := Quality; ji.ProgressiveEncoding := ProgressiveEnc; ji.OnProgress := Image1Progress; ji.Assign(Image1.Picture.Bitmap); ji.SaveToFile(FileName); ji.Free; end; end; end; procedure TForm1.SavePictureDialog1TypeChange(Sender: TObject); var ParentHandle:THandle;wRect:TRect; PicPanel,PaintPanel:TPanel;QEdit : TEdit; begin With Sender as TSavePictureDialog do begin //родительская панель PicPanel := (FindComponent('PicturePanel') as TPanel); if not Assigned(PicPanel) then Exit; ParentHandle:=GetParent(Handle); //панель-сосед сверху PaintPanel:=(FindComponent('PaintPanel') as TPanel); PaintPanel.Align := alNone; if FilterIndex >1 then begin GetWindowRect(ParentHandle,WRect); SetWindowPos(ParentHandle,0,0,0,WRect.Right-WRect.Left, WRect.Bottom-WRect.Top+DeltaH,SWP_NOMOVE+SWP_NOZORDER); GetWindowRect(Handle,WRect); SetWindowPos(handle,0,0,0,WRect.Right-WRect.Left, WRect.Bottom-WRect.Top+DeltaH,SWP_NOMOVE+SWP_NOZORDER); PicPanel.Height := PicPanel.Height+DeltaH; if FindComponent('JLabel')=nil then with TLabel.Create(Sender as TSavePictureDialog) do begin Parent := PicPanel; Name := 'JLabel'; Caption := 'Quality'; Left := 5;//Width := PicPanel.Width - 10; Height := 25; Top := PaintPanel.Top+PaintPanel.Height+5; end; if FindComponent('JEdit')=nil then begin QEdit := TEdit.Create(Sender as TSavePictureDialog); with QEdit do begin Parent := PicPanel; Name:='JEdit'; Text := '75'; Left:=50;Width := 50; Height := 25; Top := PaintPanel.Top+PaintPanel.Height+5; end; end; if FindComponent('JUpDown')=nil then with TUpDown.Create(Sender as TSavePictureDialog) do begin Parent := PicPanel; Name:='JUpDown'; Associate := QEdit; Increment := 5; Min := 1; Max := 100; Position := 75; end; if FindComponent('JCheck')=nil then with TCheckBox.Create(Sender as TSavePictureDialog) do begin Name:='JCheck'; Caption:='Progressive Encoding'; Parent:=PicPanel; Left:=5;Width := PicPanel.Width - 10; Height:=25; Top := PaintPanel.Top+PaintPanel.Height+35; end; end else SavePictureDialog1Close(Sender); end; end; procedure TForm1.Image1Progress(Sender: TObject; Stage: TProgressStage; PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: String); begin case Stage of psStarting: begin Progressbar1.Position := 0; Progressbar1.Max := 100; end; psEnding: begin Progressbar1.Position := 0; end; psRunning: begin Progressbar1.Position := PercentDone; end; end; end; procedure TForm1.SavePictureDialog1Close(Sender: TObject); var PicPanel : TPanel; ParentHandle : THandle; WRect : TRect; begin With Sender as TSavePictureDialog do begin PicPanel := (FindComponent('PicturePanel') as TPanel); if not Assigned(PicPanel) then Exit; ParentHandle:=GetParent(Handle); if ParentHandle=0 then Exit; if FindComponent('JLabel')<>nil then try FindComponent('JLabel').Free; FindComponent('JEdit').Free; ProgressiveEnc := (FindComponent('JCheck') as TCheckBox).Checked; FindComponent('JCheck').Free; Quality := (FindComponent('JUpDown') as TUpDown).Position; FindComponent('JUpDown').Free; PicPanel.Height:=PicPanel.Height-DeltaH; GetWindowRect(Handle,WRect); SetWindowPos(Handle,0,0,0,WRect.Right-WRect.Left, WRect.Bottom-WRect.Top-DeltaH,SWP_NOMOVE+SWP_NOZORDER); GetWindowRect(ParentHandle,WRect); SetWindowPos(ParentHandle,0,0,0,WRect.Right-WRect.Left, WRect.Bottom-WRect.Top-DeltaH,SWP_NOMOVE+SWP_NOZORDER); FilterIndex := 1; except ShowMessage('Dialog resizing error'); end; end; end; procedure TForm1.ToolBar1Resize(Sender: TObject); begin Panel2.Width := ToolBar1.Width - Panel2.Left; end; end. Результат роботи програми ![]() ![]() Висновок: ми ознайомились з універсальним середовищем Delphi, отримали навички у розробці програм з використанням мови Object Pascal та візуальних компонентів, навчилися створювати додатки для операційної системи Win 32, зокрема створили програму для перегляду зображень. |
![]() | Крізвп 301. 813. 00. 00 Дана курсова робота була розроблена в середовищі Delphi 7 з базовою мовою програмування Delphi | ![]() | Урок №13. Тема Тема: Мова програмування Delphi та інтегроване середовище візуальної розробки проектів Turbo Delphi 2006. Принципи роботи у візуальному... |
![]() | 3. 1 Обґрунтування вибору середовища розробки системи Програмний продукт було розроблено у середовищі Borland Delphi на мові Object Pascal | ![]() | Засвоїти структуру програми із використанням циклічних алгоритмів,... Мета роботи: засвоїти структуру програми із використанням циклічних алгоритмів, особливості візуального проектування програм у середовищі... |
![]() | Вступ Розробка програмного забезпечення редактора бази даних мовою dBase III plus у середовищі Foxbase | ![]() | Реферат Пояснювальна записка до курсової роботи «Windows-додаток Інтернет-пейджера по типу icq» Розробка додатків з використанням різних бібліотек та технологій, орієнтованих на використання спеціальних (особливих) можливостей... |
![]() | 11-б клас Інформатика Дата 14. 11. 11 ... | ![]() | Тема: Розробка власних лінійних алгоритмів та їх реалізація І тестування... Одержання навиків організації введення/виведення значень стандартних типів даних |
![]() | Вступ 3 Розробка бази даних з архітектурою “клієнт-сервер”. Розробка серверної та клієнтської частини | ![]() | Введення у програмування на Delphi (верхній тиждень) |