2012-11-21 28 views
5

我有一個製作數字白板的項目。我用普通筆完成了,我必須模擬高亮筆的工作。在delphi畫布上模擬高光筆

if drawingNow then 
    Image1.Canvas.LineTo(x, y); 

delphi沒有透明設置。我發現AlphaBlend函數GDI http://msdn.microsoft.com/en-us/library/dd183351.aspx

但我不知道如何使用它來模擬突出顯示筆。 那麼,如何利用這個功能來模擬突出筆?

+3

你是什麼意思的 「熒光筆」 嗎? –

+0

突出顯示筆是hightlighter筆這裏提到http://en.wikipedia.org/wiki/Highlighter –

+0

作爲一個旁註,爲什麼你寫'如果drawingNow = True然後'而不是'如果drawingNow然後'?這就像問一個人:「這個陳述'你餓了嗎?'評價爲真實?」而不是簡單的「你餓嗎?」。 –

回答

6

喜歡的東西

Canvas.Pen.Color := clYellow; 
Canvas.Pen.Width := 12; 
Canvas.Pen.Mode := pmMask; 
Canvas.LineTo(sth, sth); 

吧?

Screenshot http://privat.rejbrand.se/canvaspenmask.png

自己嘗試一下:

procedure TForm4.FormPaint(Sender: TObject); 
const 
    S = 'Jag heter Andreas Rejbrand och bor ' 
    + 'i Katrineholm, 119 kilometer från Stockholm. Jag studerar för närvarande på ' 
    +'masterprogrammet i fysik (med lika mycket matematik) ' 
    + 'vid Linköpings universitet, där jag också arbetar som lärare i matematik vid ' 
    +'Matematiska institutionen (MAI). Bland mina största intressen återfinnes också ' 
    +'just matematiken och fysiken. Matematiken är ' 
    +'kanske människans viktigaste vetenskap, ty alla andra vetenskaper använder den. ' 
    +'I själva verket använder man matematik varje ' 
    +'gång man drar en slutsats. Mer abstrakt matematik än vad man finner i ' 
    +'vardagslivet har också möjliggjort all vår tekniska (och kulturella!) ' 
    +'utveckling. Naturvetenskapen, å sin sida, med fysiken i ' 
    +'spetsen, erbjuder en unik förståelse av hela universums natur - allt från ' 
    +'universums födelse, struktur och moderna innehåll i form av bl.' 
    +'a. stjärnor, planeter och asteroider, ända ner till utvecklingen och funktionen ' 
    +'hos jordens alla organismer - från de allra första mikroorganismerna till ' 
    +'den mer komplexa ' 
    +'människokroppen. Naturvetenskapen ger, förutom förståelsens intellektuella ' 
    +'stimulans i sig, vardagsapplikationer till både nytta och nöje likväl som en ' 
    +'korrekt bild av hur allt i naturen förhåller sig, ' 
    +'vilket kan ge rationaliserade värderingar i samhället.'; 
var 
    R: TRect; 
    St: string; 
begin 
    St := S; 
    R := ClientRect; 
    Canvas.TextRect(R, St, [tfWordBreak]); 
    Canvas.Pen.Color := clYellow; 
    Canvas.Pen.Width := 12; 
    Canvas.Pen.Mode := pmMask; 
    Canvas.MoveTo(0, 20); 
    Canvas.LineTo(ClientWidth - 8, 20); 
end; 
+3

@jachguate:感謝您爲我固定字串!看起來很棒! –