Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2015, 14:32   #1
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию Приостановка вывода текста на канву

Здравствуйте, в процессе создания курсовой работы, возникли некие сложности, а именно:
Можно ли как - то приостановить процесс вывода текста на канву, совершаемый функцией
Код:
Canvas.TextOut(x,y,str)
Или другой путь, можно ли написать на канве текст, и в слове, например, 4 буквы, написанные 2умя разными шрифтами. Надеюсь на вашу помощь =)
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492
sanji2010 вне форума Ответить с цитированием
Старый 18.07.2015, 15:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Можно ли как - то приостановить процесс вывода текста на канву
Можно - переопредели эту функцию на свою, и в ней создай свой управляемый механизм вывода.
Цитата:
можно ли написать на канве текст, и в слове, например, 4 буквы, написанные 2умя разными шрифтами.
Ну почему нет?
Несколько разных вызовов. Можно откатать процедурку для такого вывода:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
      Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

			{ TForm1 }

      TForm1 = class(TForm)
						Button1: TButton;
						procedure Button1Click(Sender: TObject);
      private
            { private declarations }
        procedure drawText(s,FontName:String;var cBeg,cLen,x,y:integer);
      public
            { public declarations }
      end;

var
      Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var TextBegin,TextLen,x,y:integer;s:string;
begin
 s:='Almost dead guy';
 TextBegin:=1; TextLen:=5; x:=100; y:=100;

 drawText(s,'Ametist',TextBegin,TextLen,x,y); TextLen:=5;
 drawText(s,'Arial',TextBegin,TextLen,x,y);
 drawText(s,'Bodoni Initials',TextBegin,TextLen,x,y);
end;

procedure TForm1.drawText(s, FontName: String; var cBeg, cLen,x,
			y: integer);
begin
 with Canvas do begin
  Font.Name:=FontName;
  if cLen=0 then cLen:=Length(s);
  s:=copy(s,cBeg,cLen);
  Brush.Style:=bsClear;
  TextOut(x,y,s);
  x:=x+TextWidth(s);
  cBeg:=cBeg+cLen; cLen:=0;
 end;
end;

end.
Проверял. Пост отредактировал.
I'm learning to live...

Последний раз редактировалось Stilet; 18.07.2015 в 15:44.
Stilet вне форума Ответить с цитированием
Старый 18.07.2015, 15:33   #3
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию

Спасибо большое, я кажется знаю как это организовать.
Отличная идея! Ещё раз спасибо)
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492
sanji2010 вне форума Ответить с цитированием
Старый 18.07.2015, 15:45   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста. Я пост свой поправил, вставив полностью код, там первоначально кое-какие ошибки были.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.07.2015, 19:03   #5
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Пожалуйста. Я пост свой поправил, вставив полностью код, там первоначально кое-какие ошибки были.
Да, я теперь вспомнил в чём была проблема, ибо я делал почти тот же подход, что и предъявили вы. Проблема заключается в том, что шрифты рукописные, то есть, каждые буквы соединены с друг другом (кроме пробелов и знаков припинаний, естественно). Так что, к сожалению, так не получится
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492
sanji2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Единая функция вывода текста на печать ScrappyCoco C++ Builder 0 26.01.2012 22:47
бзик вывода текста danzel1 Общие вопросы C/C++ 3 10.04.2011 01:34
Бзик вывода текста danzel1 Visual C++ 0 06.04.2011 08:54
Проблема вывода текста. Bilargo Помощь студентам 4 26.10.2009 15:31
Вывод текста на канву предварительного просмотра печати. Moly Общие вопросы Delphi 0 29.09.2009 17:31