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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2008, 17:27   #1
Edo
 
Регистрация: 18.04.2008
Сообщений: 3
По умолчанию Редактирование текста в Delphi

Помогите пожалуйста с парой вопросов.
1) Дан текст в RichEdit.
Нужно привести его строки к заданной ширине: если строки длиннее - сделать перенос "лишнего", если короче - дополнить пробелами между слов.
2) В этой же задаче нужно сделать отступ текста (на заданное кол-во символов) начинающегося с новых строк (абзац).
Edo вне форума Ответить с цитированием
Старый 18.04.2008, 18:05   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Качайте исходник:
http://delphi.mtu-net.ru/zip/bywidthpr.zip
mihali4 вне форума Ответить с цитированием
Старый 18.04.2008, 19:37   #3
Edo
 
Регистрация: 18.04.2008
Сообщений: 3
По умолчанию

404 так сказать... =\ Пусто там.
Но все равно спасибо, по названию файла нашел

Однако вопрос с абзацем там не раскрыт. Помогите плз. Даже не знаю с какой стороны к этому подойти.

Подскажите еще 1 раз.
Распотрошил я вышеупомянутый исходник, на его основе написал код для Memo.
Но возникла проблема очень неприятного свойства.
Дело в том, что если подряд набраны две строчки текста, по 80 (к примеру) символов каждая, то это совсем не значит, что у них будет равная длина, т.к. ширина букв разная...

Можно как-то определить в memo, какова ширина строки в пикслях?

Последний раз редактировалось Stilet; 21.04.2008 в 13:14.
Edo вне форума Ответить с цитированием
Старый 21.04.2008, 13:11   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Попробуйте так:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:real;
begin
// выравнивание по ширине
a:=72/form1.RichEdit1.Font.PixelsPerInch;
b:=1/a;
with form1.RichEdit1.Paragraph do
begin
form1.RichEdit1.Paragraph.FirstInde nt:=round(20*b);//число отступа красной строки в пикселях
form1.RichEdit1.Paragraph.LeftInden t:=round((10*b)-FirstIndent); //отступ слева в пикселях
form1.RichEdit1.Paragraph.RightInde nt:=round(30*b);//отступ справа в писселях
end;
end;
где числа 20 10 30 любые в разумных пределах

Последний раз редактировалось SERG1980; 21.04.2008 в 13:26.
SERG1980 вне форума Ответить с цитированием
Старый 22.04.2008, 02:44   #5
Edo
 
Регистрация: 18.04.2008
Сообщений: 3
По умолчанию

Как заставить RichEdit использовать моноширинный шрифт (если есть вообще такое свойство)?
И как использовать сторонний шрифт в RichEdit, которого нет в папке с виндой, но который есть в папке программы?

Последний раз редактировалось Edo; 22.04.2008 в 02:50.
Edo вне форума Ответить с цитированием
Старый 22.04.2008, 08:18   #6
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Цитата:
Сообщение от Edo Посмотреть сообщение
Как заставить RichEdit использовать моноширинный шрифт (если есть вообще такое свойство)?
Такого свойства нет, но есть моноширинные шрифты, например
Код:
 RichEdit1.Font.Name:='Courier New';
Цитата:
Сообщение от Edo Посмотреть сообщение
И как использовать сторонний шрифт в RichEdit, которого нет в папке с виндой, но который есть в папке программы?
Код:
  AddFontResource('MyFont.ttf');
  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
  RichEdit1.Font.Name:='MyFontName';
_Dmitry вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
редактирование текста в блокноте. Kio Помощь студентам 16 21.07.2008 17:02
задачка на техническое редактирование текста Милено4ка Паскаль, Turbo Pascal, PascalABC.NET 10 14.04.2008 09:17
Редактирование текста. Нужна помощь! quf Паскаль, Turbo Pascal, PascalABC.NET 3 12.04.2008 08:53
Редактирование Excel книг через Delphi? DA-corp. БД в Delphi 3 01.03.2008 09:50
Delphi Редактирование текстового файла Starscream Общие вопросы Delphi 11 18.02.2008 17:15