程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi實戰圖片放大查看器-思路及步驟

Delphi實戰圖片放大查看器-思路及步驟

編輯:Delphi

本例制作一個浏覽器,用來查看放大的圖像。運行後光標將自動隱藏,當用戶將鼠標移到圖像上時,窗體上會自動顯示光標所在位置的圖像的放大圖,隨著光標的移動,放大圖像的位置也隨之變化。運行程序時,窗體沒有顯示最大化、最小化和關閉等按鈕,當用戶在圖片區域雙擊鼠標左鍵時,會顯示三個按鈕“打開”、“退出”和“關於”。點擊“打開”按鈕,可以導入新的圖像文件到窗體中,點擊“退出”按鈕,可以退出該程序;點擊“關於”按鈕,給出程序的相關信息。下面來看下運行圖:

Delphi實戰圖片放大器

Delphi圖片放大器設計思想:

本例用到的控件主要是Image 控件、BitBtn 控件、OpenPictureDialog 控件等。這是一個使用Delphi 6.0 畫布繪圖函數編制的程序,其中用到了許多常用的繪圖函數。如Canvas.CopyRect()用於復制圖像,LoadFromFile()用於導入圖像。

Delphi圖片放大器設計步驟:

這個程序首先需要隱藏鼠標,控制相關按鈕的可見性,這需要用到ShowCursor()函數,並控制各個按鈕的Visible 屬性;程序的關鍵是如何實現局部圖像的放大,我們利用OnMouseMove 事件可以獲得鼠標所在位置的坐標,使用CopyRect 函數對相關位置圖像進行拷貝,然後對該坐標值進行適當的算法處理,即可達到目的。

1.新建工程文件:

(1)啟動Delphi 6.0 程序。選擇“文件”菜單下的“新建”命令,從彈出的子菜單中選擇Application 選項,則出現新建工程的Form1 窗口。

(2)選擇“文件”菜單下的“工程另存為”命令,彈出Save Unit1 As 對話框。在“保存在”列表框中選擇需要存放該窗口文件所在的目錄名;在“文件名”編輯框中填寫文件名,這裡填寫“Unit1”,點擊“保存”按鈕,保存上面的選項。

(3)執行上一步後,將彈出“工程另存為”對話框。在“保存在”列表框中選擇需要存放該工程的目錄名,最好和第(2)步選取相同的目錄;在“文件名”編輯框中填寫保存處理該工程的源代碼的文件名,這裡填寫“Project1”,點擊“保存”按鈕,保存上面的選項。

2.修改參數:

(1)激活Unit1 窗口,在“屬性”面板中設置該窗體的Caption 屬性為“圖片放大浏覽器”,Name 屬性為“MainForm”。

(2)選擇“標准”頁上的Panel 選項,在窗體中添加1 個Panel 控件。在“屬性”面板中設置其Name 屬性為“FramePanel”,BevelInner 屬性為“bvLowerd”,BevelOuter屬性為“bvRaised”,BevelWidth 為1,BorderStyle 屬性為“bsSingle”。

(3)選擇“附加”頁上的Image 選項,在窗體中FramePanel 控件上添加Image 控件,在“屬性”面板中設置其Align 屬性為“alClIEnt”,使其充滿整個FramePanel 控件。用鼠標點擊Picture 屬性右邊的按鈕,從彈出的對話框中選擇合適的圖像文件,設置Stretch 屬性為“True”。

(4)選擇“對話框”頁上的OpenPictureDialog 選項,在窗體中添加OpenPictureDialog控件,在“屬性”面板中設置其Name 屬性為“OpenPictureDialog1”,Options 屬性為“ [ofHideReadOnly,ofEnableSizing] ” , Filter 屬性為“ All (*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)|*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf|JPEG Image File (*.jpg)|*.jpg|JPEG ImageFile (*.jpeg)|*.jpeg|Bitmaps(*.bmp)|*.bmp|Icons (*.ico)|*.ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf”。

(5)選擇“附加”頁上的BitBtn 選項,在窗體中的下方添加三個BitBtn 控件,在“屬性”面板中設置其Caption 屬性分別為“打開”、“退出”和“關於”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved