Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа с многострочным текстом

13K
21 марта 2006 года
batvin1
16 / / 21.03.2006
Подскажите, пожалуйста,
как в дочернее окно вставить многострочный текст
да так, чтобы размер тестового блока пропорционально изменялся при изменении размеров самого окна

Заранее всем спасибо
303
22 марта 2006 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by batvin1
Подскажите, пожалуйста,
как в дочернее окно вставить многострочный текст
да так, чтобы размер тестового блока пропорционально изменялся при изменении размеров самого окна

Заранее всем спасибо


Что-то не совсем понятно... Можно подробнее?

13K
22 марта 2006 года
batvin1
16 / / 21.03.2006
При выборе пункта меню должно открываться новое окно.
В окне будет текст.
Несколько абзацев.
Можно ли сделать так, чтобы при изменении размеров окна менялся и размер текстового блока.
(пропорционально размерам окна).
Т.е. при уменьшении окна строки, которые вылезают за пределы окна автоматически переносились на новую строку.
303
22 марта 2006 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by batvin1
При выборе пункта меню должно открываться новое окно.
В окне будет текст.
Несколько абзацев.
Можно ли сделать так, чтобы при изменении размеров окна менялся и размер текстового блока.
(пропорционально размерам окна).
Т.е. при уменьшении окна строки, которые вылезают за пределы окна автоматически переносились на новую строку.


Если текст будет выводиться в Label, то на форму кинуть TLabel, у него AutoSize:=false, Align:=alClient, WordWrap:=true
Для Memo - аналогично - WordWrap:=true
Вообще WordWrap отвечает за перенос текста по словам.

3.6K
22 марта 2006 года
CrazyTimon
125 / / 13.02.2006
Цитата:
Originally posted by makbeth
Если текст будет выводиться в Label, то на форму кинуть TLabel, у него AutoSize:=false, Align:=alClient, WordWrap:=true
Для Memo - аналогично - WordWrap:=true
Вообще WordWrap отвечает за перенос текста по словам.


А мона узнать как енто реализовать програмно??:)

303
22 марта 2006 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by CrazyTimon
А мона узнать как енто реализовать програмно??:)


Вот полезная ссылочка ;)

13K
24 марта 2006 года
batvin1
16 / / 21.03.2006
Цитата:
Originally posted by makbeth
Если текст будет выводиться в Label, то на форму кинуть TLabel, у него AutoSize:=false, Align:=alClient, WordWrap:=true
Для Memo - аналогично - WordWrap:=true
Вообще WordWrap отвечает за перенос текста по словам.



Спасибо, все работает.
Можно еще вопросик.
TLabel позволяет работать только с одним абзацем, а в Memo строки получаются обрубленные. Как этого избежать?

1.8K
24 марта 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by batvin1
Спасибо, все работает.
Можно еще вопросик.
TLabel позволяет работать только с одним абзацем, а в Memo строки получаются обрубленные. Как этого избежать?


Чтобы строки небыли обрубленные Memo.WordWrap поставь False;
Но тогда у тебя горизонтальный скролбар появляться будет...

303
29 марта 2006 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by batvin1
Спасибо, все работает.
Можно еще вопросик.
TLabel позволяет работать только с одним абзацем, а в Memo строки получаются обрубленные. Как этого избежать?


Это происходит потому, что у тебя все строки текста разделены CRLF - перевод строки, и когда он встречается, мемо начинает вывод с новой строки. Надо убрать лишние CRLF (оставить только те, которые разделяют абзацы, заголовкм, etc.) и все будет нормально.
ЗЫ: Кстати насчет label - все нормально, он может работать с несколькими обзацами, просто в design time он не позволяет указать строку, разделенную CRLF, а в runtime - пожалуйста ;)

13K
04 апреля 2006 года
batvin1
16 / / 21.03.2006
Цитата:
Originally posted by makbeth
Это происходит потому, что у тебя все строки текста разделены CRLF - перевод строки, и когда он встречается, мемо начинает вывод с новой строки. Надо убрать лишние CRLF (оставить только те, которые разделяют абзацы, заголовкм, etc.) и все будет нормально.
ЗЫ: Кстати насчет label - все нормально, он может работать с несколькими обзацами, просто в design time он не позволяет указать строку, разделенную CRLF, а в runtime - пожалуйста ;)



Объясните, плиз:
А как их убирать и runtime - это где.

10
04 апреля 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by makbeth
просто в design time он не позволяет указать строку, разделенную CRLF


В последних версиях IDE достаточно нажать на "три точки" в свойстве Caption, чтобы вызвать многострочный редактор.

303
05 апреля 2006 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by batvin1
Объясните, плиз:
А как их убирать и runtime - это где.


Runtime - это время, когда запущена программа. CRLF - проще говоря нажатие enter в конце строки и как его убрать - это тебе решать. Можно просто грубо вырезать символы #13#10 из текста, но тогда не будет разделения на абзацы. Можно заняться этим ручками - но это, видимо, гемор страшный. Ну или найти нормально оформленные текст...

13K
06 апреля 2006 года
batvin1
16 / / 21.03.2006
Спасибо, все заработало.только вот с какой проблемой столкнулся:
Есть две формы (родительская и дочерняя), при выборе пункта меню должна открываться дочерняя форма, в которую в RichEdit загружается RTF-овский файл.
Так вот. Если дочерняя форма загружается сразу с родительской, то при выборе пункта меню открывается новая форма (пустая), а текст загружается в ту дочернюю форму, которая была загружена в самом начале.

Если же форму убрать из загрузки с родительской формой, то при выборе меню выдается ошибка
Что надо изменить?

Листинг родительской формы:
uses Richforma2;
{$R *.dfm}
procedure TForm1.asd1Click(Sender: TObject);
begin
TForm_rich.Create(Self);
Form_rich.RichEdit1.Lines.LoadFromFile('\vvedenie.rtf');
end;
end.
303
07 апреля 2006 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by batvin1
Спасибо, все заработало.только вот с какой проблемой столкнулся:
Есть две формы (родительская и дочерняя), при выборе пункта меню должна открываться дочерняя форма, в которую в RichEdit загружается RTF-овский файл.
Так вот. Если дочерняя форма загружается сразу с родительской, то при выборе пункта меню открывается новая форма (пустая), а текст загружается в ту дочернюю форму, которая была загружена в самом начале.

Если же форму убрать из загрузки с родительской формой, то при выборе меню выдается ошибка
Что надо изменить?

Листинг родительской формы:
uses Richforma2;
{$R *.dfm}
procedure TForm1.asd1Click(Sender: TObject);
begin
TForm_rich.Create(Self);
Form_rich.RichEdit1.Lines.LoadFromFile('\vvedenie.rtf');
end;
end.


Убираешь форму из автозагрузки, далее:

 
Код:
procedure TForm1.asd1Click(Sender: TObject);
begin
with TForm_rich.Create(Self) do
  RichEdit1.Lines.LoadFromFile('\vvedenie.rtf');
end;
13K
10 апреля 2006 года
batvin1
16 / / 21.03.2006
Цитата:
Originally posted by makbeth
Убираешь форму из автозагрузки, далее:
 
Код:
procedure TForm1.asd1Click(Sender: TObject);
begin
with TForm_rich.Create(Self) do
  RichEdit1.Lines.LoadFromFile('\vvedenie.rtf');
end;




Спасибо, makbeth, Ваши ответы очень помогают

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог