عرض بكسل من النص/التسمية التوضيحية في دلفي 7
-
21-09-2019 - |
سؤال
إليكم مشكلتي ، أريد أن أعرف الطول الفعلي للنص بالبكسل (لاحظ أن الحروف المختلفة لها طول مختلف في بعض الخطوط). سأستخدم هذا لتعديل عرض العمود الأفضل في DBGRID.
المحلول
يمكنك استعمال ال 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;
نصائح أخرى
إذا كان لديك مكون Delphi يحتوي على خاصية "قماش" ، فيمكنك استخدام Component.Canvas.textWidth. على سبيل المثال: للحصول على عرض نص DBGrid الذي يمكنك استخدامه:
DBGrid1.Canvas.TextWidth('Stack');
هنا يمكنك العثور على إشارة كاملة حول هذه المشكلة:طول سلسلة دلفي بالبكسل
لا تنتمي إلى StackOverflow