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

Вниз

Вертикальный текст в TCanvas   Найти похожие ветки 

 
Vcoder   (2002-11-28 22:02) [0]

Вопрос конечно ламерский, но прошу не оставить без ответа. Можно ли процедурой TCanvas.TextOut вывести текст не слева направо, а снизу вверх?
Если да, то как?
Если нет, то как можно на TImage вывести текст в вертикальном направлении?


 
konstantinov   (2002-11-28 23:10) [1]

Загляни в кладовку. Я недавно туда свой RotateLabel скинул. Ничего кроме как вращать текст он не умеет. Код простенький, разберешся. А вот ПОЧЕМУ текст выводится под углом я так и не разобрался до конца. Был в FAQ пример, на его основе и смастерил компонент.


 
Fantasist   (2002-11-29 03:27) [2]

Самый известный способ это CreateFont(чаще CreateFontIndirect это значит еще GetLogFont), и SelectObject(<созданный фонт>), и можешь рисовать текст под любым углом. Сам так делал.


 
mukha   (2002-11-29 07:30) [3]

А может так?

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
Var
lf: TLogFont;
x, y: Integer;
begin
Image1.Transparent:=true;
With Image1 Do
With Canvas Do
Begin
FillRect( ClientRect );
Font.Name := "Arial";
Font.Size := 20;
Font.Style := [fsBold];
Font.Color:=clLime;
x:= 40;
y:= Height - 10;
GetObject( Font.Handle, Sizeof(lf), @lf );
lf.lfEscapement := 900; // Угол наклона в десятых градуса
Font.Handle := CreateFontIndirect( lf );
TextOut(x-TextHeight("A")-5, y,"Текст по вертикали" );
DeleteObject( Font.Handle );
Font.Handle := 0;
End;
end;


 
Fantasist   (2002-11-29 18:57) [4]


> mukha © (29.11.02 07:30)
> А может так?


Именно про это я и говорил, только с ипользованием VCL-ных оберток.


 
Vcoder   (2002-11-29 21:37) [5]


> Fantasist © (29.11.02 18:57)

Что ты понимаешь под VCL-ными обертками? Поясни please...


 
Fantasist   (2002-11-30 21:34) [6]


> Что ты понимаешь под VCL-ными обертками


Ну, можно сказать, то же, что и все. :)
TFont - класс, который инкапсулирует Win API для работы со шрифтами, TCanvas - инкапсулирует Device Context и т. д. Вместо "класс который инкапсулирует" говорят "класс-враппер" или просто "враппер", что по русски - "обертка"




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

Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-36117
qwertXX
2002-12-03 10:53
2002.12.12
переход с Delphi5 на Delphi6


1-36134
Manulo
2002-12-03 14:33
2002.12.12
RichEdit


1-36216
Tankist
2002-12-01 15:33
2002.12.12
Размер массива


14-36330
andrek
2002-11-20 11:54
2002.12.12
Желаю узнать ваше мнение


1-36232
Vcoder
2002-12-01 16:51
2002.12.12
TStream.WriteComponent





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский