Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование текста DrawText, под углом... 
V
    Опции темы
VICTAR
Дата 8.12.2006, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: нет
Всего: 80



Возможна ли отрисовка текста фун-ей DrawText под углом? С выводом фун-ей TextOut никаких проблем, а с DrawText вообще ничего не отрисовывается... 


M
Girder
http://forum.vingrad.ru/act-Search/f-2.html

PM MAIL   Вверх
BsRu
Дата 8.12.2006, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.12.2006

Репутация: нет
Всего: нет



А зачем тебе DrawText обьясни поконкретнее, чем тебя TextOut не устраивает?
PM MAIL   Вверх
VICTAR
Дата 8.12.2006, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: нет
Всего: 80



У DrawText много полезных флагов (например DT_WORDBREAK) и еще, мне надо выводить текст, ограниченный TRect. По-моему DrawText для этого подходит лучше. Хотя, я могу ошибатся.
PM MAIL   Вверх
BsRu
Дата 8.12.2006, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.12.2006

Репутация: нет
Всего: нет



Код

procedure TForm1.Button1Click(Sender: TObject); 
var 
  logfont: TLogFont; 
  font: Thandle; 
  count: integer; 
begin 
  LogFont.lfheight := 20; 
  logfont.lfwidth := 20; 
  logfont.lfweight := 750; 
  LogFont.lfEscapement := -200; 
  logfont.lfcharset := 1; 
  logfont.lfoutprecision := out_tt_precis; 
  logfont.lfquality := draft_quality; 
  logfont.lfpitchandfamily := FF_Modern; 
  font := createfontindirect(logfont); 
  Selectobject(Form1.canvas.handle, font); 
  SetTextColor(Form1.canvas.handle, rgb(0, 0, 200)); 
  SetBKmode(Form1.canvas.handle, transparent); 
  for count := 1 to 100 do 
  begin 
    canvas.textout(Random(form1.width), Random(form1.height), 'Привет от Bs_Ru'); 
    SetTextColor(form1.canvas.handle, rgb(Random(255), Random(255), Random 
      (255))); 
  end; 
  Deleteobject(font); 
end; 


Попробуй так может это то что тебе надо, я так юзаю например, там все по рандому стоит
но разобраться оч легко!
Вот основные возможности LogFont..
Код

procedure TForm1.FormPaint(Sender: TObject); 
var 
  lf: TLogFont; 
begin 
  FillChar(lf, SizeOf(lf), 0); 
  with lf do begin 
    // Высота буквы 
    lfHeight := 15; 

    // Ширина буквы 
    lfWidth := 20; 

    // Угол наклона в десятых градуса 
    lfEscapement := 100; 

     // Жирность 0..1000, 0 - по умолчанию 
    lfWeight := 1000; 

    // Курсив 
    lfItalic := 0; 

    // Подчеркнут 
    lfUnderline := 1; 

    // Зачеркнут 
    lfStrikeOut := 1; 

    // CharSet 
    lfCharSet := RUSSIAN_CharSet; 

    // Название шрифта 
    StrCopy(lfFaceName, 'Arial'); 
  end; 
  with Form1.Canvas do begin 
    FillRect(ClipRect); 
    Font.Handle := CreateFontIndirect(lf); 
    TextOut(0, 100, 'This is Text'); 
  end; 
end; 




Это сообщение отредактировал(а) BsRu - 8.12.2006, 02:12
PM MAIL   Вверх
VICTAR
Дата 8.12.2006, 03:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: нет
Всего: 80



BsRu, конечно спасибо, все эти примеры я уже видел. Возможно ты не заметил: мне нужно выводить текст, ограниченный TRect. Причем при изменении угла вывода (станндарт 90, 180 и 270 гр) соответственно меняется и его ограничивающий TRect
PM MAIL   Вверх
bems
Дата 8.12.2006, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Код

const angle=pi*0.25;//45
var mode:integer;xfrmOriginal,xfrm:XFORM;
begin
mode:=GetGraphicsMode(canvas.handle);
SetGraphicsMode(canvas.Handle,GM_ADVANCED);
GetWorldTransform(canvas.Handle,xfrmOriginal);
xfrm:=xfrmOriginal;
xfrm.eM11:=cos(angle);
xfrm.eM12:=sin(angle);
xfrm.eM21:=-sin(angle);
xfrm.eM22:=cos(angle);
SetWorldTransform(canvas.handle,xfrm);

//DrawText

SetWorldTransform(canvas.Handle,xfrmOriginal);
SetGraphicsMode(canvas.Handle,mode);


Это сообщение отредактировал(а) bems - 8.12.2006, 05:52


--------------------
Обижено школьников: 8
PM MAIL   Вверх
VICTAR
Дата 8.12.2006, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: нет
Всего: 80



Всё, вопрос закрыт, последний топик попал в самую точку. Всем огромное спасибо за внимание и помощь!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0731 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.