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

Вниз

Текст через Канвас   Найти похожие ветки 

 
Boyza ©   (2004-04-15 00:14) [0]

Добрый вечер всем!
Подскажите, пожалуйста. Как задать угол вывода текста (через Canvas.TextOut)? Например вертикальный?


 
Anatoly Podgoretsky ©   (2004-04-15 00:52) [1]

procedure CanvasTextOutAngle (OutputCanvas: TCanvas; X,Y: integer;
   Angle: Word; St: string);
var
   LogRec:        TLogFont;
   NewFontHandle: HFONT;
   OldFontHandle: HFONT;
begin
   GetObject (OutputCanvas.Font.Handle, SizeOf (LogRec), Addr (LogRec));
   LogRec.lfEscapement := Angle;
   NewFontHandle := CreateFontIndirect (LogRec);
   OldFontHandle := SelectObject (OutputCanvas.Handle, NewFontHandle);
   OutputCanvas.TextOut (x, y, St);
   NewFontHandle := SelectObject (OutputCanvas.Handle, OldFontHandle);
   DeleteObject (NewFontHandle);
end;


 
tytus ©   (2004-04-15 01:00) [2]

Тут правда речь о шрифте, но пример думаю, более чем выразительнее и доходчивее (Валерий Фаронов Делфи6).
Нужна голая форма, а остальное - зри в корень:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
 TForm1 = class(TForm)
   procedure FormPaint(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormPaint(Sender: TObject);
var
 X: Integer;
 LF: TLogFont;
 Fnt: HFont;
const
 Text = "Лучшая в мире система программирования!";
begin
 // Определяем параметры нового шрифта
 FillChar(LF, SizeOf(LF), 0);
 with LF do
 begin
   lfHeight := 20;
   lfWeight := fw_Medium;
   lfUnderline := 1;
   lfEscapement := 450;
   StrPCopy(lfFaceName, "Courier New Cyr");
 end;
 with Form1.Canvas do
 begin
   // Создаем шрифт
   Fnt := CreateFontIndirect(LF);
   // присваиваем его дискриптор шрифту канвы
   Font.Handle := Fnt;
   // выводим текст под углом +45 градусов
   TextOut(0, 300, Text);
   X := TextWidth(Text);
   DeleteObject(Fnt);  // Удаляем ненужный шрифт
   // Изменяем параметры шрифта
   with LF do
   begin
     lfHeight := 120;
     lfEscapement := -900;
     lfWeight := fw_Heavy;
     StrPCopy(LF.lfFaceName, "Arial Cyr");
   end;
   Fnt := CreateFontIndirect(LF); // Создаем новый шрифт
   Font.Handle := Fnt;
   Font.Color := clRed;
   // выводим с наклоном -90 градусов
   TextOut(X+10, 10, "Delphi");
   DeleteObject(Fnt); // Удаляем ненужный шрифт
 end;
end;

end.


 
Boyza ©   (2004-04-15 01:06) [3]

Процедура текст выводит, но угол не изменяется :(


 
Boyza ©   (2004-04-15 01:11) [4]

(Это было написано Анатолию Подгорецкому)


 
Boyza ©   (2004-04-15 01:16) [5]

tytus

Спасибо, помогло:)



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
14-1081517953
***ghost***
2004-04-09 17:39
2004.05.02
Какой лучший хостинг?


1-1081945120
siriusP
2004-04-14 16:18
2004.05.02
Почему сбрасываются свойства в компоненте?


1-1081936939
cvg
2004-04-14 14:02
2004.05.02
Как вкл/выкл видимость графиков в TChart?


1-1082046811
white dove
2004-04-15 20:33
2004.05.02
Подключение к AutoCAD по OLEAutomation


6-1077853402
Delpher_Gray
2004-02-27 06:43
2004.05.02
WinSock сервер, события