2012-11-21 22 views
5

मेरे पास डिजिटल व्हाइटबोर्ड बनाने की एक परियोजना है। मैंने सामान्य कलम के साथ किया है, और मुझे हाइलाइट कलम के काम को अनुकरण करना होगा।डेल्फी कैनवास पर हाइलाइट पेन सिम्युलेटिंग

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

डेल्फी में कोई पारदर्शिता सेटिंग नहीं है। मुझे AlphaBlend जीडीआई http://msdn.microsoft.com/en-us/library/dd183351.aspx

पर फ़ंक्शन मिला लेकिन मुझे कोई संकेत नहीं है कि हाइलाइट पेन अनुकरण करने के लिए इसका उपयोग कैसे किया जाए। फिर, हाइलाइट कलम अनुकरण करने के लिए इस फ़ंक्शन का उपयोग कैसे करें?

+3

आप "मुख्य आकर्षण कलम" से क्या मतलब है? –

+0

हाइलाइट पेन यहां उल्लिखित हाइटलाइटर कलम है http://en.wikipedia.org/wiki/Highlighter –

+0

एक साइडेनोट के रूप में, यदि आप ड्राइंग करते हैं तो 'ड्राइंग नाउ = ट्रू फिर' अगर आप 'लिखते हैं तो' क्यों लिखते हैं? यह किसी से पूछने जैसा है "क्या कथन है 'क्या आप भूखे हैं' सत्य का मूल्यांकन?" बस "क्या आप भूखे हैं?" के बजाय। –

उत्तर

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 का उपयोग कर सकता है: मेरे लिए स्ट्रिंग फोमेटिंग को ठीक करने के लिए धन्यवाद! अच्छा लग रहा है! –

संबंधित मुद्दे