再學 GDI 42 文字輸出 字型大小單位

2021-09-08 06:31:43 字數 3337 閱讀 7524

本例效果圖:

**檔案:

unit unit1;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, stdctrls, extctrls, comctrls;

type

tform1 = class(tform)

radiogroup1: tradiogroup;

trackbar1: ttrackbar;

procedure formcreate(sender: tobject);

procedure formpaint(sender: tobject);

procedure radiogroup1click(sender: tobject);

procedure trackbar1change(sender: tobject);

end;

var form1: tform1;

implementation

uses gdipobj,gdipapi,typinfo;

procedure tform1.formcreate(sender: tobject);

var i: integer;

begin

for i := 0 to 6 do

radiogroup1.items.add(getenumname(typeinfo(tunit), i));

radiogroup1.itemindex := 2;

radiogroup1.buttons[0].enabled := false;

radiogroup1.buttons[1].enabled := false;

radiogroup1.buttons[4].enabled := false;

radiogroup1.buttons[5].enabled := false;

trackbar1.showselrange := false;

trackbar1.min := 1;

trackbar1.max := 100;

trackbar1.position := 22;

end;

procedure tform1.formpaint(sender: tobject);

var g: tgpgraphics;

b: tgpbrush;

font: tgpfont;

begin

g := tgpgraphics.create(canvas.handle);

b := tgpsolidbrush.create(acldarkorange);

font := tgpfont.create('arial black',

trackbar1.position,

fontstylebolditalic,

tunit(radiogroup1.itemindex)

);g.drawstring('delphi', -1, font, makepoint(5.0, 5), b);

b.free;

font.free;

g.free;

end;

procedure tform1.radiogroup1click(sender: tobject);

begin

repaint;

end;

procedure tform1.trackbar1change(sender: tobject);

begin

repaint;

text := inttostr(trackbar1.position);

trackbar1.refresh;

end;

end.

窗體檔案:

object form1: tform1

left = 0

top = 0

caption = 'form1'

clientheight = 147

clientwidth = 336

color = clbtnface

font.charset = default_charset

font.color = clwindowtext

font.height = -11

font.name = 'tahoma'

font.style =

oldcreateorder = false

position = podesktopcenter

oncreate = formcreate

onpaint = formpaint

pixelsperinch = 96

textheight = 13

object radiogroup1: tradiogroup

left = 237

top = 0

width = 99

height = 147

align = alright

caption = 'radiogroup1'

taborder = 0

onclick = radiogroup1click

explicitleft = 240

endobject trackbar1: ttrackbar

left = 0

top = 126

width = 241

height = 45

taborder = 1

onchange = trackbar1change

endend

座標單位型別表:

delphi

微軟說明

unitworld

world

將世界座標系單位指定為度量單位。

unitdisplay

display

unitpixel

pixel

將裝置畫素指定為度量單位。

unitpoint

point

將印表機點(1/72 英吋)指定為度量單位。

unitinch

inch

將英吋指定為度量單位。

unitdocument 

document 

將文件單位(1/300 英吋)指定為度量單位。

unitmillimeter

millimeter

將公釐指定為度量單位。

再學 GDI 57 路徑 Widen

路徑的 widen 方法可以把路徑中的線,根據指定畫筆的寬度與樣式,轉換為乙個範圍 有點類似區域 但轉換後再描繪路徑就只能使用 fillpath 而不是 drawpath 了.本例沒有測試它的兩個預設引數,因為前面已多次提到了.本例效果圖 檔案 unit unit1 inte ce uses win...

4 2 檔案的壓縮與打包

compress compress命令用於將檔案壓縮為 z 格式的壓縮檔案。語法 compress 選項 檔案 選項 d 解壓縮,相當於uncompress c 結果輸出至標準輸出,不刪除原檔案 v 顯示詳情 gzip gzip命令用於將檔案壓縮為 gz 格式的壓縮檔案。語法 gzip 選項 檔案 ...

Fcitx4 2英文輸入切換的改造

使用時,發現其還是沒有將中途輸入大寫字母的情況切換到英文輸入狀態,於是,我又開始嘗試修改源 按照前文 boolean switchtoeng fcitxautoengstate autoengstate,char str return false 其中,printf語句為便於分析該函式作用而寫的除錯...