2012-11-21 10 views
5

Mam projekt, aby zrobić cyfrową tablicę. Zrobiłem to zwykłym piórem i muszę symulować pracę pióra kulkowego.Symulowanie pióra z podkreśleniem na płótnie delphi

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

Brak ustawień przezroczystości w delphi. Znalazłem funkcję AlphaBlend w GDI http://msdn.microsoft.com/en-us/library/dd183351.aspx

Ale nie mam pojęcia, jak tego użyć do symulacji pióra zaznaczenia. Następnie, jak wykorzystać tę funkcję do symulacji pióra do zaznaczania?

+3

Co masz na myśli przez "pióra Highlight"? –

+0

podświetlany długopis to pióro zapalające wymienione tutaj http://en.wikipedia.org/wiki/Highlighter –

+0

Jako sidenote, dlaczego piszesz 'if drawingNow = True then' zamiast' if drawingNow then'? To tak, jakby zapytać kogoś: "Czy stwierdzenie" jesteś głodny "oceniasz jako prawdziwe? zamiast po prostu "Jesteś głodny?". –

Odpowiedz

6

Coś

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

może?

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

Spróbuj to sam:

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: Dzięki za naprawienie sznurowania dla mnie! Wygląda świetnie! –