Вниз
Скачать: 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.013 c
2-1193291606
Sergl
2007-10-25 09:53
2007.11.18
Как убрать перевод строки при работе с memo?


2-1193317094
timekiller
2007-10-25 16:58
2007.11.18
XML, TComboBox


1-1188216598
временный Чайник
2007-08-27 16:09
2007.11.18
Как в Viste удалить файл в Program Files


11-1177518640
vofk
2007-04-25 20:30
2007.11.18
Unicode, RichEdit


9-1163591702
Radagast
2006-11-15 14:55
2007.11.18
Sin и cos, табличные значения




   Наверх