Вверх ↑
Разработчик
Ответов: 26209
Рейтинг: 2138
#1: 2008-01-09 14:05:24 ЛС | профиль | цитата
Galkov писал(а):
значит есть вероятность что и у нас есть бага
Возможно и есть, вот только где, если повторить не получается?

------------ Дoбавленo:


Что-то я вот эти телодвижения со шрифтом не очень понял



#pas
procedure THIImg_Text.Handle;
var
dc:HDC;
Wnd:HWND;
hf:HFONT;
x,y:integer;
s:string;
fnt:TLogFont;
dt:TData;
begin
dt := _Data;
Wnd := ReadInteger(_Data,_data_Bitmap,0);
s := ReadString(_Data,_data_Text,_prop_Text);
x := ReadInteger(_Data,_data_X,_prop_X);
y := ReadInteger(_Data,_data_Y,_prop_Y);
dc := GetDC(wnd);
SetBkMode(DC,TRANSPARENT);
SetTextColor(DC,_prop_Font.Color);
ZeroMemory(@fnt,sizeof(fnt));
fnt.lfHeight := _hi_SizeFnt(_prop_Font.Size);
fnt.lfWidth := fnt.lfHeight div 2 + 1;
fnt.lfCharset := _prop_Font.Charset;
{$ifdef F_P}
{$else}
if fsUnderline in TFontStyle(pointer(@_prop_Font.Style)^) then
fnt.lfUnderline := 1;
if fsItalic in TFontStyle(pointer(@_prop_Font.Style)^) then
fnt.lfItalic := 1;
if fsStrikeOut in TFontStyle(pointer(@_prop_Font.Style)^) then
fnt.lfStrikeOut := 1;
if fsBold in TFontStyle(pointer(@_prop_Font.Style)^) then
fnt.lfWeight := FW_BOLD;
{$endif}

StrPCopy(fnt.lfFaceName,_prop_Font.Name);
hf := CreateFontIndirect(fnt);
SelectObject(DC,hf);
TextOut(DC,x,y,PChar(s),length(s));
DeleteObject(hf);
ReleaseDC(Wnd,DC);
//_hi_OnEvent(_event_onDraw);
_hi_CreateEvent(_Data,@_event_onDraw,dt);
end;
А что проще никак нельзя?
------------ Дoбавленo:

И еще непонятно, зачем работать напрямую с переменной свойств _prop_Font, не в этом ли косяк?
карма: 22

0