Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.21;
Скачать: CL | DM;

Вниз

Не могу изменить направление шрифта дважды   Найти похожие ветки 

 
BMouradov   (2006-04-01 18:28) [0]

Уважаемые господа! Подскажите, почему не получается изменить направление шрифта дважды? Рисую на pb(PainBox):

type TMyFont = object(TGraphicTool)
    public
      procedure SetHandle(H: THandle);
    end;
    procedure TMyFont.SetHandle;
    begin
      fHandle := H;
    end;

procedure ...;
var LogRec: TLOGFONT;
begin
 pb.Canvas.Font.FontName := "Arial";
 GetObject(pb.Canvas.Font.Handle, SizeOf(LogRec), Addr(LogRec));

 LogRec.lfEscapement := 300;
 TMyFont(pb.Canvas.Font^).SetHandle(CreateFontIndirect(LogRec));
 pb.Canvas.TextOut(10, 10, "123");

 LogRec.lfEscapement := 900;
 TMyFont(pb.Canvas.Font^).SetHandle(CreateFontIndirect(LogRec));
 pb.Canvas.TextOut(20, 20, "123");

По идее, должны выйти две надписи, под углом 30 и 90. Но обе выходят под 30.

Пробовал и более развернуто, но не помогло:

var hNewFont, hOldFont: Cardinal;

 hOldFont := TMyFont(pb.Canvas.Font^).GetHandle;
 GetObject(pb.Canvas.Font.Handle, SizeOf(LogRec), Addr(LogRec));
 LogRec.lfEscapement := 300;
 hNewFont := CreateFontIndirect(LogRec);
 TMyFont(pb.Canvas.Font^).SetHandle(hNewFont);
 pb.Canvas.TextOut(10, 10, "123");
 TMyFont(pb.Canvas.Font^).SetHandle(hOldFont);
 DeleteObject(hNewFont);

//и то же самое для 900.

Помогите, пожалуйста! В VCL подобная конструкция работает, только там вспомогательный класс не нужен.


 
ECM ©   (2006-04-01 18:52) [1]

Всё получается...
Не надо  всё так усложнять..
:))

procedure TForm1.PaintBox1Paint(Sender: PControl; DC: HDC);
begin
 with Sender.Canvas^ do begin
   Brush.Color := clGray;
   FillRect(Sender.ClientRect);
   Font.FontOrientation := 300;
   TextOut(10,10,"123");
   Font.FontOrientation := 900;
   TextOut(30,30,"123");
 end;
end;


В результате видим две написи первая повернута на 30 гр. вторая на 90


 
BMouradov   (2006-04-01 18:56) [2]

Класс!! Спасибо большое!



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

Текущий архив: 2007.01.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
2-1166304928
coxxx
2006-12-17 00:35
2007.01.21
Как программно создать подключению к инету


2-1167135480
kuku
2006-12-26 15:18
2007.01.21
компонент для текста


15-1167402032
VirEx
2006-12-29 17:20
2007.01.21
Конкурс на "самую снежную" программку


4-1158071811
Ling
2006-09-12 18:36
2007.01.21
Отправить сообщения в службу


11-1144318313
Dodfr
2006-04-06 14:11
2007.01.21
MHFontDialog return bad font height