Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизТекст через Канвас Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 1.648 c