Вниз
Скачать: CL | DM;

длина строки в пикселях   Найти похожие ветки 

 
Sergey2 ©   (2007-10-23 11:57) [0]

Так как же всё таки это сделать в дельфи ?

ALogFont.lfHeight := 12;
ALogFont.lfWidth := 5;
ALogFont.lfOrientation := 0;
ALogFont.lfEscapement := 0;
ALogFont.lfWeight := FW_MEDIUM;
ALogFont.lfItalic := 0;
ALogFont.lfUnderline := 0;
ALogFont.lfStrikeOut := 0;
ALogFont.lfCharSet := RUSSIAN_CHARSET;
ALogFont.lfOutPrecision := 0;
ALogFont.lfClipPrecision := 0;
ALogFont.lfQuality := 0;
ALogFont.lfPitchAndFamily := FF_SCRIPT;
ALogFont.lfFaceName := "Verdana";
Font := CreateFontIndirect(ALogFont);

....

s :=  "длина строки";

_length := ??


 
Desdechado ©   (2007-10-23 11:58) [1]

DrawText ( DT_CALCRECT )


 
Однокамушкин   (2007-10-23 12:06) [2]

Если без VCL
var
 Sz: TSize;

SelctObject(DC, Font);
GetTextExtentPoint32(DS, s, Length(s), Sz);
_length := Sz.cx;


Если с VCL
Canvas.Font.Handle := Font;
_length := Canvas.TextWidth(s);


Если сосем точно надо, вызывайте ещё функцию GetCharABCWidths для учёта выступающих за знакоместо частей первого и последнего символа


 
Игорь Шевченко ©   (2007-10-23 12:08) [3]

Если с VCL, то

function GetTextWidthInPixels(AText: string; AControl: TControl): integer;
var
 propInfo: PPropInfo;
 thisFont: TFont;
begin
 Result := 0;

 propInfo := GetPropInfo(AControl.ClassInfo, "Font");

 if propInfo <> nil then begin
   thisFont := TFont(GetObjectProp(AControl, "Font"));

   if Assigned(thisFont) then
     with TControlCanvas.Create do
       try
         Control := AControl;
         Font.Assign(thisFont);
         Result  := TextWidth(AText);
       finally
         Free;
       end;
 end;
end;


 
Sergey2 ©   (2007-10-23 12:10) [4]

>>Однокамушкин
спасибо! исчерпывающе.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
2-1193141280
qwert_leonid
2007-10-23 16:08
2007.11.18
Почему не удаляется все объекты на форме?


15-1192042472
Galinka
2007-10-10 22:54
2007.11.18
Когда "кило" это 2 в 10-ой, а когда - в 10 в 3-ей?


2-1193612598
Dmitry_177
2007-10-29 02:03
2007.11.18
перевести TTime в количество секунд


15-1192257156
Kostafey
2007-10-13 10:32
2007.11.18
С днем рождения ! 13 октября


2-1193485128
Zong_Zong
2007-10-27 15:38
2007.11.18
Граница цвета.




   Наверх