Главная страница
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.031 c
2-1167135480
kuku
2006-12-26 15:18
2007.01.21
компонент для текста


15-1167805315
vidiv
2007-01-03 09:21
2007.01.21
ADO + Access


15-1167581182
ArtemESC
2006-12-31 19:06
2007.01.21
-∞ =>... => 1 => 2 => ... => 2006 => !! => 2007 => .... => +∞


11-1144151482
BaryVetaL
2006-04-04 15:51
2007.01.21
Новый компонент BVLedNumber


15-1167220696
Ega23
2006-12-27 14:58
2007.01.21
К вопросу о наличии рыбы в Волге