2012-11-21 32 views
5

Tôi có một dự án để tạo bảng trắng kỹ thuật số. Tôi đã làm với bút thông thường, và tôi phải mô phỏng công việc của bút nổi bật.Mô phỏng bút đánh dấu trên vải delphi

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

Không có thiết lập độ trong suốt trong delphi. Tôi đã tìm thấy chức năng AlphaBlend trong GDI http://msdn.microsoft.com/en-us/library/dd183351.aspx

Nhưng tôi không biết cách sử dụng điều này để mô phỏng bút đánh dấu. Sau đó, cách sử dụng chức năng này để mô phỏng bút đánh dấu?

+3

Ý anh là gì bởi "điểm nhấn bút"? –

+0

bút đánh dấu là bút hightlighter được đề cập ở đây http://en.wikipedia.org/wiki/Highlighter –

+0

Là một sidenote, tại sao bạn viết 'if drawingNow = True rồi' thay vì' if drawingNow rồi'? Nó giống như yêu cầu một người nào đó "Có tuyên bố" là bạn đói "đánh giá đúng?" thay vì chỉ đơn giản là "Bạn có đói không?" –

Trả lời

6

Something như

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

lẽ?

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

Hãy thử nó cho mình:

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: Cảm ơn bạn đã sửa chuỗi fomatting cho tôi! Trông rất tuyệt! –