亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 019.htm

?? delphi教程
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
</font><p>7.1.3.2 <font face="宋體" lang="ZH-CN">剪切 </p><p>圖像的剪切是首先把圖像拷貝到剪貼板,而后在原位置用空白圖像進行覆蓋。</p><p>下面一段程序表示了圖像的剪切。   </p></font><p>procedure TForm1.Cut1Click(Sender: TObject);</p><p>var</p><p>ARect: TRect;</p><p>begin</p><p>Clipboard.Assign(Image1.Picture);</p><p>with Image.Canvas do</p><p>begin</p><p>CopyMode := cmWhiteness; </p><p>ARect := Rect(0, 0, Image.Width, Image.Height); </p><p>CopyRect(ARect, Image.Canvas, ARect); </p><p>CopyMode := cmSrcCopy; </p><p>end;</p><p>end;<font face="宋體" lang="ZH-CN"> </font></p><p>7.1.3.3 <font face="宋體" lang="ZH-CN">粘貼 </p><p>從剪貼板上粘貼圖像,首先檢測剪貼板上的數據格式。如果格式為</font>CF_BITMAP<fontface="宋體" lang="ZH-CN">,則調用目標位圖的</font>Assign <font face="宋體"lang="ZH-CN">方法粘貼圖像。</p><p>程序清單如下。</p></font><p>procedure TForm1.PasteButtonClick(Sender: TObject);</p><p>var</p><p>Bitmap: TBitmap;</p><p>begin</p><p>if Clipboard.HasFormat(CF_BITMAP) then </p><p>begin</p><p>Bitmap := TBitmap.Create; </p><p>try</p><p>Bitmap.Assign(Clipboard); </p><p>Image.Canvas.Draw(0, 0, Bitmap); </p><p>finally</p><p>Bitmap.Free;</p><p>end;</p><p>end;</p><p>end; </p><p>try...finally<font face="宋體" lang="ZH-CN">為資源保護塊,參第十二章。</p></font><p>7.1.4 <font face="宋體" lang="ZH-CN">建立自己的剪貼板觀察程序 </p></font><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在這一節中我們要建立一個自己的剪貼板觀察程序,用來保存截獲到剪貼板中的位圖。</p></font><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows<font face="宋體" lang="ZH-CN">允許用戶建立自己的剪貼板觀察程序,并把該程序添加到一個剪貼板觀察器鏈中。在鏈中,位置靠前的程序有義務把有關剪貼板的消息傳遞到緊隨其后的觀察程序。而處于鏈首的程序由</font>Windows<fontface="宋體" lang="ZH-CN">的消息循環機制直接把剪貼板消息發送過來。</p></font><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建立一個剪貼板觀察程序,首先該程序必須能響應相應的</font>Windows<fontface="宋體" lang="ZH-CN">消息。對于那些熟悉</font>Microsoft<font face="宋體"lang="ZH-CN">公司</font>Visual Basic<font face="宋體" lang="ZH-CN">的讀者來說,這是令他們頭疼而束手無策的地方。但</font>Delphi<fontface="宋體" lang="ZH-CN">在這方面卻有良好的表現:利用關鍵字</font>message<fontface="宋體" lang="ZH-CN">,用戶可以將一個過程定義為響應特定的</font>Windows<fontface="宋體" lang="ZH-CN">消息。如: </p></font><p>procedure WMDrawClipboard(var Msg:TWMDrawClipboard);</p><p>message WM_DRAWCLIPBOARD; </p><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以響應</font>WM_DRAWCLIPBOARD<fontface="宋體" lang="ZH-CN">消息。類</font>TWMDrawClipboard<font face="宋體"lang="ZH-CN">是消息類</font>Message <font face="宋體" lang="ZH-CN">的子類。</font>Delphi<fontface="宋體" lang="ZH-CN">把所有的消息都重新進行了定義,使用戶在使用時可以直接引用其便于記憶的數據成員,而不必再自己動手去分解消息。雖然這并不能算作是一個重大的改進,但卻體現了</font>Delphi<fontface="宋體" lang="ZH-CN">處處為用戶方便著想的特點。</p></font><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我們將要建立的程序目的是把截獲到剪貼板上的位圖保存下來。在本書的寫作過程中,這一工作是大量存在的。雖然利用</font>Windows<fontface="宋體" lang="ZH-CN">工具</font>PaintBrush(<font face="宋體" lang="ZH-CN">畫筆),通過粘貼、保存等操作可以實現這一功能,但卻存在以下一些問題:</p></font><p>1.<font face="宋體" lang="ZH-CN">程序頻繁切換影響效率,當有大量位圖存在時更是如此;</p></font><p>2.<font face="宋體" lang="ZH-CN">畫筆有一個很討厭的缺陷:當剪貼板上的位圖比畫筆界面的客戶區大時,客戶區外的位圖被截斷。因而往往需要根據所截獲位圖的大小來調整畫筆客戶區的大小,并重新進行粘貼。而如果開始就把畫筆客戶區調整到足夠大,又會覆蓋掉屏幕上一些有用的信息。</p></font><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 為解決這些問題,我開發了下面的程序。程序啟動時,以極小化方式運行。此時只要剪貼板中存入位圖,則自動彈出一個對話框請求用戶保存。如果用戶希望查看確認,則可以雙擊運行程序圖標,選擇相應按鈕,剪貼板中的位圖就會顯示在屏幕上。</font></p><font face="宋體" lang="ZH-CN"><p>部件關鍵屬性設計如下: </p></font><p>ClipSaveForm<font face="宋體" lang="ZH-CN">:</p></font><p>Caption<font face="宋體" lang="ZH-CN">=‘</font>Save Bitmap in Clipboard '</p><p>Panel1:</p><p>Align = ' Top '</p><p>Image1:</p><p>Align = ' Client '</p><p>SaveDialog1:</p><p>FileEditStyle = fsEdit</p><p>FileName = '*.bmp'</p><p>Filter = 'Bitmap Files(*.bmp)|*.bmp|Any Files(*.*)|*.*'</p><p>InitialDir = 'c:\bmp'</p><p>Title = 'Save Bitmap' </p><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 程序主窗口是</font>TForm<fontface="宋體" lang="ZH-CN">派生類</font>TClipSaveForm<font face="宋體" lang="ZH-CN">的實例。</font>TClipSaveForm<fontface="宋體" lang="ZH-CN">通過定義一些私有數據成員和過程,使響應和處理</font>Windows<fontface="宋體" lang="ZH-CN">的相應消息成為可能。下面是</font>TClipSaveForm<fontface="宋體" lang="ZH-CN">的類定義: </p></font><p>type</p><p>TClipSaveForm = class(TForm)</p><p>SaveDialog1: TSaveDialog;</p><p>Image1: TImage;</p><p>Panel1: TPanel;</p><p>Button1: TButton;</p><p>SpeedButton1: TSpeedButton;</p><p>SpeedButton2: TSpeedButton;</p><p>Button2: TButton;</p><p>procedure FormCreate(Sender: TObject);</p><p>procedure FormDestroy(Sender: TObject);</p><p>procedure Button1Click(Sender: TObject);</p><p>procedure Button2Click(Sender: TObject);</p><p>procedure SpeedButton1Click(Sender: TObject);</p><p>procedure SpeedButton2Click(Sender: TObject);</p><p>private</p><p>{ Private declarations }</p><p>MyBitmap: TBitmap; { <font face="宋體" lang="ZH-CN">保存截獲的位圖</font> }</p><p>View: Boolean; { <font face="宋體" lang="ZH-CN">判斷是否顯示</font> }</p><p>NextViewerHandle: HWND; { <font face="宋體" lang="ZH-CN">下一剪貼板觀察器的句柄</font>}</p><p>procedure WMDrawClipboard(var Msg:TWMDrawClipboard);</p><p>message WM_DRAWCLIPBOARD;</p><p>procedure WMChangeCBChain(var Msg:TWMChangeCBChain);</p><p>message WM_CHANGECBCHAIN; </p><p>{ <font face="宋體" lang="ZH-CN">響應</font>Windows<font face="宋體" lang="ZH-CN">的剪貼板消息</font>}</p><p>public</p><p>{ Public declarations }</p><p>end;</p><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 窗口創建時,把該窗口登錄為剪貼板觀察器,添加到剪貼板觀察器鏈中,同時進行變量、部件和剪貼板的初始化。 </p></font><p>procedure TClipSaveForm.FormCreate(Sender: TObject);</p><p>begin</p><p>View := False;</p><p>SpeedButton2.Down := True;</p><p>MyBitmap := TBitmap.create;</p><p>try</p><p>MyBitmap.Width := 0;</p><p>MyBitmap.Height := 0 ;</p><p>except</p><p>Application.terminate;</p><p>end;</p><p>Clipboard.Clear;</p><p>NextViewerHandle := SetClipboardViewer(Handle);</p><p>end; </p><p><font face="宋體" lang="ZH-CN">窗口關閉時,退出剪貼板觀察器鏈,并釋放內存: </p></font><p>procedure TClipSaveForm.FormDestroy(Sender: TObject);</p><p>begin</p><p>ChangeClipboardChain(Handle,NextViewerHandle);</p><p>MyBitmap.Free;</p><p>end; </p><p><font face="宋體" lang="ZH-CN">在以上兩段程序中用到的兩個</font>WindowsAPI<font face="宋體" lang="ZH-CN">函數</font>SetClipboardViewer<font face="宋體"lang="ZH-CN">和</font>ChangeClipboardChain<font face="宋體" lang="ZH-CN">分別用于登錄和退出剪貼板觀察器鏈。</p><p>程序保存位圖的功能是在消息響應過程WMDrawClipboard中實現的。該過程在剪貼板內容有變化時被調用。 </p></font><p>procedure TClipSaveForm.WMDrawClipboard(var Msg: TWMDrawClipboard);</p><p>var</p><p>FileName: String;</p><p>begin</p><p>If NextViewerHandle &lt;&gt; 0 then</p><p>SendMessage(NextViewerHandle,msg.Msg,0,0);</p><p>If ClipBoard.HasFormat(CF_BITMAP) then</p><p>begin</p><p>MyBitmap.Assign(Clipboard);</p><p>If SaveDialog1.Execute then</p><p>begin</p><p>FileName := SaveDialog1.FileName;</p><p>MyBitmap.SaveToFile(FileName);</p><p>end;</p><p>If View then</p><p>begin</p><p>WindowState := wsNormal;</p><p>Image1.Picture.Bitmap := MyBitmap;</p><p>end;</p><p>end;</p><p>Msg.Result := 0;</p><p>end; </p><p><font face="宋體" lang="ZH-CN">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 程序首先判斷在剪貼板觀察器鏈中是否還存在下一個觀察器。如果有,則把消息傳遞下去,這是剪貼板觀察器程序的義務。而后判斷剪貼板上內容的格式是否為位圖。如是,則首先把剪貼板上內容保存到數據成員</font>MyBitmap<fontface="宋體" lang="ZH-CN">中,并激活一個文件保存對話框把位圖保存到文件中。如果</font>View=True<fontface="宋體" lang="ZH-CN">,則把窗口狀態</font>(WindowState)<font face="宋體"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女视频一区二区在线观看| 国产乱国产乱300精品| 一本久久精品一区二区| 亚洲欧洲日产国码二区| 97久久超碰精品国产| 亚洲综合免费观看高清完整版在线 | 欧美日韩在线播放三区四区| 亚洲1区2区3区4区| 精品va天堂亚洲国产| 成人国产在线观看| 亚洲影院免费观看| 精品国产一区二区在线观看| 成人av一区二区三区| 亚洲午夜久久久久久久久电影网| 欧美裸体一区二区三区| 极品美女销魂一区二区三区免费| 中文字幕成人av| 欧美在线不卡视频| 极品瑜伽女神91| 一区二区在线观看免费视频播放| 91精品啪在线观看国产60岁| 国产福利一区在线| 亚洲成人中文在线| 久久九九影视网| 精品视频在线视频| 精品写真视频在线观看| 一区二区三区日韩在线观看| 日韩欧美综合一区| 色老汉av一区二区三区| 久久不见久久见免费视频1| 亚洲精品中文字幕乱码三区| 日韩免费视频线观看| 91美女片黄在线| 国模娜娜一区二区三区| 一区二区在线免费观看| 久久综合av免费| 欧美精品v日韩精品v韩国精品v| 国产成人精品一区二区三区四区| 亚洲电影一级黄| 国产精品大尺度| 欧美mv和日韩mv国产网站| 欧美在线制服丝袜| 99在线精品观看| 韩国一区二区视频| 香蕉久久一区二区不卡无毒影院| 国产精品成人午夜| 精品少妇一区二区三区在线播放 | 不卡视频在线看| 激情五月婷婷综合| 五月婷婷久久丁香| 最近日韩中文字幕| 国产亚洲精品超碰| 精品福利在线导航| 欧美另类久久久品| 色婷婷精品久久二区二区蜜臀av| 国产精品1区2区| 看片的网站亚洲| 日韩福利电影在线| 亚洲小少妇裸体bbw| 亚洲人成影院在线观看| 国产女人水真多18毛片18精品视频| 日韩一级在线观看| 91精品国产一区二区三区| 欧美午夜不卡视频| 欧美色大人视频| 欧美日韩国产一二三| 欧美亚洲综合网| 欧美日韩情趣电影| 欧美怡红院视频| 欧美亚洲国产bt| 欧美日韩一区二区三区视频| 欧美在线免费视屏| 欧美日韩中文字幕精品| 欧美日韩一区三区四区| 欧美自拍丝袜亚洲| 欧美日韩在线播放一区| 欧美精品第1页| 日韩一区二区免费视频| 欧美大片一区二区| 久久只精品国产| 国产精品丝袜久久久久久app| 国产欧美精品日韩区二区麻豆天美| 国产免费成人在线视频| 国产精品网站在线播放| 成人免费在线视频观看| 亚洲综合色网站| 五月激情丁香一区二区三区| 麻豆成人久久精品二区三区红| 蜜臀av性久久久久蜜臀aⅴ| 极品销魂美女一区二区三区| 国产传媒欧美日韩成人| 99久久伊人久久99| 欧美午夜视频网站| 欧美大片免费久久精品三p| 久久综合久久综合久久综合| 中文字幕免费不卡| 一区二区不卡在线播放 | 亚洲一卡二卡三卡四卡无卡久久| 玉足女爽爽91| 日韩精品免费专区| 美女脱光内衣内裤视频久久网站| 国产在线国偷精品产拍免费yy| 成人毛片视频在线观看| 色成人在线视频| 欧美一区三区四区| 国产视频亚洲色图| 亚洲最新在线观看| 韩国三级在线一区| 91一区二区在线| 日韩欧美亚洲另类制服综合在线| 国产免费久久精品| 日韩专区中文字幕一区二区| 国产99精品国产| 欧美日韩在线播放三区| 国产欧美一区二区精品性色| 亚洲福利一二三区| 国产.精品.日韩.另类.中文.在线.播放| 色综合色狠狠综合色| 日韩免费一区二区三区在线播放| 国产精品久久久久aaaa| 日本伊人精品一区二区三区观看方式 | 欧美精品一区二区三区四区| 亚洲色图另类专区| 国精品**一区二区三区在线蜜桃| 91麻豆产精品久久久久久| 日韩欧美国产一区二区三区| 亚洲麻豆国产自偷在线| 激情六月婷婷综合| 欧美日韩一级片网站| 国产精品久99| 国内精品免费**视频| 欧美伊人精品成人久久综合97| 国产欧美一区二区精品仙草咪| 日韩国产欧美在线观看| 91农村精品一区二区在线| 26uuu亚洲婷婷狠狠天堂| 亚洲一区av在线| 99久久精品国产一区二区三区| 久久综合五月天婷婷伊人| 亚洲va国产va欧美va观看| 91丝袜美腿高跟国产极品老师| 久久先锋影音av| 麻豆精品视频在线| 91精品久久久久久蜜臀| 亚洲黄色性网站| 91视频精品在这里| 亚洲欧洲日韩在线| 国产成人午夜99999| 欧美精品一区二区久久婷婷| 天堂成人国产精品一区| 欧美视频精品在线观看| 亚洲精品v日韩精品| 91麻豆成人久久精品二区三区| 国产欧美日韩三区| 国产91丝袜在线18| 久久九九全国免费| 国产露脸91国语对白| 精品免费99久久| 免费观看在线综合色| 91精品综合久久久久久| 五月综合激情网| 4438x亚洲最大成人网| 午夜视频在线观看一区| 欧美妇女性影城| 日日夜夜一区二区| 日韩欧美高清dvd碟片| 另类小说视频一区二区| 2欧美一区二区三区在线观看视频| 蜜桃一区二区三区在线观看| 日韩你懂的在线播放| 极品销魂美女一区二区三区| 久久久亚洲精品石原莉奈| 国产精品一二三四| 中文字幕一区二区三区四区不卡| 成人黄色av网站在线| 亚洲免费观看高清完整版在线观看 | 精品一区二区三区在线视频| 精品精品欲导航| 国产成人一级电影| 中文字幕一区二区三区蜜月| 色天天综合久久久久综合片| 亚洲二区在线观看| 91精品国产美女浴室洗澡无遮挡| 日韩电影在线观看电影| 久久人人超碰精品| 99视频精品在线| 亚洲午夜在线电影| 日韩欧美成人午夜| 国产成人午夜99999| 亚洲精品视频一区| 欧美精品一二三| 国产呦萝稀缺另类资源| 国产精品久久久久久久裸模| 色又黄又爽网站www久久| 天涯成人国产亚洲精品一区av| 精品欧美黑人一区二区三区| 成人av在线看| 日韩高清一区二区| 欧美激情在线看| 欧美高清视频在线高清观看mv色露露十八 |