Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "KOL";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.041 c
2-1167416624
heaven
2006-12-29 21:23
2007.01.21
Скрыть процес с панели задач (это не то о чём думаете)))


8-1148319518
igp
2006-05-22 21:38
2007.01.21
Помогите разобраться с PNG, использование вместо формы.


2-1167829548
dstrogiy
2007-01-03 16:05
2007.01.21
Background-музыка


8-1148563758
MetalFan
2006-05-25 17:29
2007.01.21
Пережать видео...


15-1167050719
Expell
2006-12-25 15:45
2007.01.21
Блокнот





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский