Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Вниздлина строки в пикселях Найти похожие ветки
← →
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;
Если с VCLCanvas.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 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.071 c