熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:Delphi圖形圖像編程(一)[2]

2022-06-13   來源: Delphi編程 

   Tpen Object(畫筆對象)

  應用程序常用TPen對象在畫布上繪制各種線段筆的顏色在Color屬性中定義線段寬度在Width屬性中定義

  Style屬性定義了線段的各種類型如表:

  表 Styled的取值及含義

  ━━━━━━━━━━━━━━━━━━━━━━

   Style                  含義

  ──────────────────────

  PSolod          畫固定線段

  PSDash        畫由下劃線組成的線段

  PSDot           畫由點組成的線段

  PsDashDot   畫點劃線

  PsClear        畫雙點劃線

  PsClear        畫看不見的線段

  PsInsideFrame 畫邊界的矩形線框

  ━━━━━━━━━━━━━━━━━━━━━━━

  Mode屬性定義線段的顏色可結合當前的顏色屏幕顏色或它們反轉值對線段的顏色重新定義但不改變Color屬性詳見表

  表 Mode的取值及含義

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Mode                       象素顏色

  ──────────────────────────

  PmBlack                    黑色

  PmWhite                   白色

  PmNop                      不變

  PmCopy                使用Color屬性中的顏色

  PmNotCopy           筆顏色的反轉值

  PmMergePenNot  筆的顏色與屏幕顏色反轉值的結合

  PmNaskNotPen    屏幕顏色與筆顏色

  PmMergeNotPen  屏幕顏色與筆顏色反轉值的結合

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━

   TBrush OBject(畫刷對象)

  畫刷對象用以填充圖形如用畫刷顏色或圖案對矩形或橢圓進行填充TBrush擁有一個畫刷句柄(HBrush)

  畫刷的顏色定義在Color屬性中畫刷還有一個Bitmap屬性該屬性只能在運行時得到畫刷可使用位圖填充圖形以產生特殊效果位圖大小為個象素點個象素點寬

  Style屬性定義了畫刷填充圖形的風格

   TColor類型

  TColor類型用於定義一個對象的顏色很多部件的顏色屬性就是TColor 類型 在Graphics單元中TColor定義如下

  TColor = (COLOR_ENDCOLORS + )$FFFFF;

  這是一個位二進制數據Graphic單元中還定義了一些常用的顏色常量這些常量或直接映射成系統調色板中最相近的顏色或映射成Wondows 控制面板中顏色部分的系統視頻顏色

  直接映射成系統調色板中的顏色有

  ClAquaCLBlackClBlueClbkGrrayClFuchsoa……ClYellow

  映射程序用字節的二進制碼來定義顏色 位字節代表RGB 相應的顏色如$FF表示純藍$FF表示純綠$FF表示純紅$表示黑色$FFFFFF表示白色如果最高位字節是$則表示用系統調色板中最相近的顏色最高位字節是$則表示用當前調色板中最相近的顏色匹配最高位字節是$則用當前設備描述表中邏輯調色板的次相近顏色匹配

  用Windows API的SelectPalette函數可創建邏輯調色板要實現邏輯調色板到硬件調色板的映射需用函數RealizePalett

   圖形程序的開發

  Graphexdpr是一個簡單的圖形圖像應用程序運行狀態如圖該程序可用鼠標繪制多種圖形可設置畫筆顏色畫刷填充方式另外還可以浏覽位圖元文件圖標改變它們的大小並打印本節結合例程講述以下問題

  ● 在工具條中添加加速按鈕

  ● 響應鼠標事件

  ● 設置畫筆和畫刷

  ● 實現繪圖的橡皮擦功能

  ● 加入狀態條

   在工具條中添加加速按鈕

  加速按鈕是應用程序常用的部件它是替代菜單的快捷形式通常把多個加速按鈕集中在一個工具條中以方便使用Graphex中有三個工具條它們是TPancel部件面板上有幾組加速按鈕用以設置繪圖方式畫筆畫刷

  每個加速按鈕的glyph屬性是圖像對象位圖對象用來指示該按鈕是否被使用glyph 通常需要四幅圖像分別表示按下不按選擇失效四種狀態程序員可根據個人喜好來選擇圖像

  加速按鈕使用圖像來告訴用戶其狀態和目的因為按鈕上無標題 因此應給用戶正確的提示

  ● 把Down屬性設置成真值使加速按鈕呈按下狀態

  ● 把Enable屬性設置成假值使加速按鈕呈失效狀態

  例程中缺省的繪圖工具是畫線因此應用程序開始時畫線按鈕呈按下狀態

  在應用程序中常把一些功能相似的按鈕放在一起用戶在同一時刻只能選擇其中的一個按鈕當其它按鈕按下時原來被按下的按鈕自動彈起這些選擇排它的按鈕稱為一組加速按鈕

  要使多個加速按鈕成為一組將這些按鈕的GraphIndex屬性設成相同的值最簡單的辦法是在設計狀態時用鼠標選中各個加速按鈕然後設置GraphIndex值

  有時用戶按一個已經按下的按鈕希望該按鈕能夠彈起這樣沒有任何按鈕被按下使用AllowAllup 屬性可實現上述功能對於一組加速按鈕來講設置該組中任一按鈕的AllowAllup可使這組的每一個按鈕具有這種功能

  Graphex程序中設計了三組加速按鈕和兩個單獨的加速按鈕 第一組加速按鈕用來選擇繪圖工具它與兩個單獨的按鈕處在同一面板中這個面板是缺省可見的另外兩個按鈕分別代表畫筆畫刷第二組與第三組加速按鈕處在兩個缺省不可見的面板中它們分別代表不同風格的畫筆和畫刷只有按下第一個面板中的畫筆(或畫刷)按鈕第二(或第三) 個面板才會顯示這樣用戶就可以選擇畫筆畫刷了

[]  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25248.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.