2009-10-14 8 views
11

यहां मेरी समस्या है, मैं टेक्स्ट की वास्तविक लंबाई पिक्सेल में जानना चाहता हूं (ध्यान दें कि विभिन्न अक्षरों में कुछ फोंट में अलग-अलग लंबाई होती है)। मैं डीबीजीड में बेहतर कॉलम चौड़ाई समायोजन के लिए इसका उपयोग करने जा रहा हूं।डेल्फी में एक पाठ/कैप्शन के पिक्सेल में चौड़ाई 7

उत्तर

24

आप Canvas.TextWidth और Canvas.TextHeight फ़ंक्शंस का उपयोग कर सकते हैं।

विकल्प 1,, नियंत्रण

WidthInPixels := Label1.Canvas.TextWidth('My Text'); 

विकल्प 2 के कैनवास का उपयोग कर एक अस्थायी कैनवास (एक Tbitmap का उपयोग कर)

Function GetWidthText(const Text:String; Font:TFont) : Integer; 
var 
    LBmp: TBitmap; 
begin 
    LBmp := TBitmap.Create; 
    try 
    LBmp.Canvas.Font := Font; 
    Result := LBmp.Canvas.TextWidth(Text); 
    finally 
    LBmp.Free; 
    end; 
end; 
+0

मुझे भी यह शर्त 10 सेकेंड से:

DBGrid1.Canvas.TextWidth('Stack'); 

यहाँ आप इस मुद्दे के बारे में पूरी संदर्भ पा सकते हैं! –

5

बनाने यदि आप एक डेल्फी घटक एक "कैनवास" है है संपत्ति, तो आप Component.Canvas.TextWidth का उपयोग कर सकते हैं। उदाहरण के लिए: DBGrid के पाठ की चौड़ाई प्राप्त करने के लिए आप का उपयोग कर सकते हैं: Length of Delphi string in pixels

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