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

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

?? 019.htm

?? delphi編程
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
</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<font
face="宋體" 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<font
face="宋體" lang="ZH-CN">的消息循環機制直接把剪貼板消息發送過來。</p>
</font><p><font face="宋體" lang="ZH-CN">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建立一個剪貼板觀察程序,首先該程序必須能響應相應的</font>Windows<font
face="宋體" lang="ZH-CN">消息。對于那些熟悉</font>Microsoft<font face="宋體"
lang="ZH-CN">公司</font>Visual Basic<font face="宋體" lang="ZH-CN">的讀者來說,這是令他們頭疼而束手無策的地方。但</font>Delphi<font
face="宋體" lang="ZH-CN">在這方面卻有良好的表現:利用關鍵字</font>message<font
face="宋體" lang="ZH-CN">,用戶可以將一個過程定義為響應特定的</font>Windows<font
face="宋體" 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<font
face="宋體" lang="ZH-CN">消息。類</font>TWMDrawClipboard<font face="宋體"
lang="ZH-CN">是消息類</font>Message <font face="宋體" lang="ZH-CN">的子類。</font>Delphi<font
face="宋體" lang="ZH-CN">把所有的消息都重新進行了定義,使用戶在使用時可以直接引用其便于記憶的數據成員,而不必再自己動手去分解消息。雖然這并不能算作是一個重大的改進,但卻體現了</font>Delphi<font
face="宋體" 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<font
face="宋體" 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<font
face="宋體" lang="ZH-CN">派生類</font>TClipSaveForm<font face="宋體" lang="ZH-CN">的實例。</font>TClipSaveForm<font
face="宋體" lang="ZH-CN">通過定義一些私有數據成員和過程,使響應和處理</font>Windows<font
face="宋體" lang="ZH-CN">的相應消息成為可能。下面是</font>TClipSaveForm<font
face="宋體" 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>Windows
API<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<font
face="宋體" lang="ZH-CN">中,并激活一個文件保存對話框把位圖保存到文件中。如果</font>View=True<font
face="宋體" lang="ZH-CN">,則把窗口狀態</font>(WindowState)<font face="宋體"
lang="ZH-CN">設置為</font>wsNormal<font face="宋體" lang="ZH-CN">,并把</font>MyBitmap<font

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲精品久久久蜜桃| 国产在线不卡一区| 中文成人综合网| 欧美成人午夜电影| 91麻豆精品国产自产在线| 欧美三级一区二区| 色哟哟一区二区三区| 色老头久久综合| 欧美日韩高清一区二区三区| 欧美视频精品在线观看| 在线播放国产精品二区一二区四区 | 亚洲日本韩国一区| 亚洲一区二区三区在线播放| 亚洲一级电影视频| 蜜臀av一区二区| 国产成人高清视频| 色综合网色综合| 日韩欧美综合一区| 国产欧美日韩中文久久| 亚洲欧美激情在线| 免费在线观看不卡| av成人老司机| 在线播放国产精品二区一二区四区| 日韩一区二区三区高清免费看看| 久久久久久免费网| 亚洲丝袜自拍清纯另类| 日韩激情在线观看| 成人高清免费观看| 51久久夜色精品国产麻豆| 久久蜜桃av一区二区天堂| 亚洲精品视频在线观看网站| 免费在线观看日韩欧美| 成人av免费在线播放| 欧美色区777第一页| 国产色91在线| 首页亚洲欧美制服丝腿| 国产suv精品一区二区三区| 正在播放亚洲一区| 国产色产综合色产在线视频 | 在线不卡免费欧美| 国产精品入口麻豆原神| 日韩精品1区2区3区| 99vv1com这只有精品| 欧美电视剧在线观看完整版| 亚洲精品亚洲人成人网| 国产毛片精品一区| 欧美日韩国产首页在线观看| 国产精品久久久久久久久晋中 | 午夜久久久久久| 成人免费毛片app| 日韩一区二区三区电影在线观看| 亚洲精品第一国产综合野| 久久99热国产| 7777精品伊人久久久大香线蕉经典版下载 | 成人免费视频视频在线观看免费| 欧美精选在线播放| 亚洲男人的天堂在线aⅴ视频| 国产经典欧美精品| 日韩午夜激情视频| 性感美女极品91精品| 色域天天综合网| 日韩伦理免费电影| 豆国产96在线|亚洲| 久久青草欧美一区二区三区| 久久99精品久久久| 欧美电影免费观看高清完整版在 | 自拍偷拍亚洲激情| 国产成人午夜片在线观看高清观看| 91精品国产乱| 日本免费在线视频不卡一不卡二| 在线观看日韩av先锋影音电影院| 17c精品麻豆一区二区免费| 成人性生交大片免费看视频在线| 久久久精品综合| 国产中文字幕精品| 精品国产伦一区二区三区观看体验| 日本vs亚洲vs韩国一区三区二区 | 高清不卡一区二区在线| 久久久久久久久久久电影| 国产麻豆成人传媒免费观看| 久久久久久久久久久99999| 国产一区二区三区免费看| 久久精品人人做| 成人性生交大合| 亚洲精品伦理在线| 欧美无砖砖区免费| 日韩精品成人一区二区三区| 精品久久五月天| 国产高清精品久久久久| 1024亚洲合集| 欧美日精品一区视频| 三级欧美韩日大片在线看| 精品粉嫩aⅴ一区二区三区四区| 经典三级一区二区| 国产精品毛片大码女人| 91国在线观看| 免费在线成人网| 中文字幕va一区二区三区| 91精品1区2区| 精彩视频一区二区三区| 国产精品国产精品国产专区不片| 欧洲亚洲国产日韩| 免费视频一区二区| 日本一区二区三区在线观看| 色综合久久久网| 精品一二三四区| 亚洲欧美日韩在线| 日韩精品中文字幕在线不卡尤物| 国产精品亚洲午夜一区二区三区| 最好看的中文字幕久久| 日韩欧美亚洲国产精品字幕久久久| 国产成人精品三级麻豆| 一级女性全黄久久生活片免费| 日韩欧美一二区| 91丨九色丨国产丨porny| 日本不卡在线视频| 国产精品不卡一区| 日韩一区二区三区观看| 色综合久久中文字幕| 国产一区二区在线观看免费| 亚洲国产一二三| 国产日产亚洲精品系列| 欧美一区二区三区人| 色综合色综合色综合色综合色综合 | 伊人性伊人情综合网| 欧美xfplay| 欧美一区二区二区| 在线视频综合导航| 成人视屏免费看| 国产一区二区三区综合| 日本亚洲天堂网| 亚洲高清免费观看高清完整版在线观看 | 欧美老女人在线| 色综合天天视频在线观看 | 婷婷亚洲久悠悠色悠在线播放 | 亚洲va韩国va欧美va精品| 国产欧美综合在线| 26uuu色噜噜精品一区二区| 精品视频在线免费看| 91免费视频网址| 成人91在线观看| 成人av电影在线| 成人国产亚洲欧美成人综合网| 国产成人av网站| 九九视频精品免费| 伦理电影国产精品| 首页欧美精品中文字幕| 亚洲高清视频在线| 亚洲成a人片综合在线| 夜夜揉揉日日人人青青一国产精品 | 波多野结衣视频一区| 成人丝袜18视频在线观看| 国产精品一级二级三级| 国产乱色国产精品免费视频| 乱一区二区av| 国产成人综合亚洲网站| 国产成人一级电影| 高清免费成人av| 一本色道久久综合亚洲aⅴ蜜桃| 99久久伊人久久99| 色欧美日韩亚洲| 欧美影院精品一区| 日韩一区和二区| 国产亚洲欧美色| 综合自拍亚洲综合图不卡区| 亚洲影院久久精品| 免费成人在线网站| 国产白丝网站精品污在线入口 | 一区二区三区加勒比av| 亚洲国产综合人成综合网站| 亚洲va韩国va欧美va| 精品无人区卡一卡二卡三乱码免费卡 | 一区二区三区在线视频免费| 亚洲国产欧美在线| 蜜臂av日日欢夜夜爽一区| 国产精品一区专区| 99综合电影在线视频| 欧美日韩精品欧美日韩精品一综合| 欧美日韩国产综合视频在线观看| 337p日本欧洲亚洲大胆精品| 亚洲日本va午夜在线影院| 日韩影院在线观看| 成人免费高清在线| 欧美日本一区二区| 国产精品女人毛片| 日韩高清一级片| 成人黄色软件下载| 91精品国产综合久久久蜜臀图片 | 日韩一区和二区| 亚洲国产岛国毛片在线| 午夜精品福利视频网站| 国产成人啪午夜精品网站男同| 欧美三片在线视频观看| 久久精品一区二区| 婷婷国产在线综合| 色综合天天在线| 欧美成人三级在线| 亚洲国产精品一区二区久久恐怖片 | 欧美xxxxx裸体时装秀| 亚洲一区二区三区四区在线 |