Форум: "Основная";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
ВнизВопрос по RichEdit, очень срочно Найти похожие ветки
← →
Danila j. Bagrov (2002-07-07 22:47) [0]Прощу помощи у мастеров.
Вопрос тупой, но все же. Есть RichEdit.
Есть
RichEdit.Lines.Add("Типа текст 1-ого абзаца");
RichEdit.Lines.Add("Типа текст 2-ого абзаца");
получим на выходе:
"Типа текст 1-ого абзаца
Типа текст 2-ого абзаца"
,а если мне нужно сделать на выходе, к примеру:
"Типа текст 1-ого абзаца и ЭТО ТОЖЕ 1-ый абзац"
И в два оператора, нужно это постольку-поскольку Add"om только до 255 символов можно вставить (обычный стринг), а абзац куда больше чем 255 сим. И от этого не уйти. К тому же в тексте абзаца, по ходу нужно будет изменять Атрибуты всякие: подчеркивание и тэпэ.
← →
SerVS (2002-07-07 23:52) [1]2обычный стринг
Кто тебе сказал? String=AnsiString, мне пока длинны хватало ;))
← →
Danila j. Bagrov (2002-07-08 00:01) [2]Дело в том, что я просто объяснил задачу, пример у меня соверешенно другой. Мне нужно записать след:
Мастера Делфи delphi.mastak.ru. Форум
Как сделать такое? В ОДНУ строчку.
← →
Anatoly Podgoretsky (2002-07-08 00:43) [3]Lines имеет string, это тебе никак не поможет?
← →
Danila j. Bagrov (2002-07-08 00:51) [4]плохо объясняю значит, никто понять не может :)
Вот реальный текст, где -ИЗ БАЗЫ- значение берется из базы, длина его неизвестна, поэтому string не поможет.
2. “Работник” -ИЗ БАЗЫ- принимается на работу в "..." на должность -ИЗ БАЗЫ- ... квалификации -ИЗ БАЗЫ-
3. Договор является: -ИЗ БАЗЫ-
4. Вид договора: -ИЗ БАЗЫ-
трудность в том, что им кровь из носа нужно, то что "-ИЗ БАЗЫ-", жирным курсивом, или просто курсивом, или подчеркнутым ...
Если делать так
-Вставляем строку "2. "Работник"" ...Lines.Add();
-Теперь пишем курсивом
-Вставляем строку -ИЗ БАЗЫ-
-Теперь пишем обычным шрифтом
-Вставляем строку ...
то получится, что-то вроде:
"2. "Работник""
"-ИЗ БАЗЫ-"
"..."
а нужно в один абзац,
может сейчас хоть нормально объяснил ...
← →
Anatoly Podgoretsky (2002-07-08 00:59) [5]Так ты понял намек насчет строк или нет. Если не понял то посмотри в хелпе строковые операции, в первую очередь конкатенацию, если термин непонятен, то это объединение строк
← →
Danila j. Bagrov (2002-07-08 01:22) [6]Намек понял, но проблема не в этом, точнее не только в этом. Конкатенация знаем что такое.
Должно на выходе получится:
"1. Закрытое акционерное общество ... "Работодатель""
Код проги:
qrep_form.RichText.Lines.Strings[0] := " 1. Закрытое акционерное общество ...";
//Переключаемся на жирный
qrep_form.RichText.Font.Style := [fsBold];
//Прибавляем "Работодателя"
qrep_form.RichText.Lines.Strings[0]:=qrep_form.RichText.Lines.Strings[0]+"Работодатель";
НО, естественно штука в том, что жирным будет все. Вот в чем проблема ...
2Anatoly, можно тебе в аську постучаться ? А то осталось 6 часов для того чтобы это все сделать ... горю.
← →
Oleg_Gashev (2002-07-08 01:50) [7]Посмотри PlainText property и вставляй строки в виде RTF текста.
← →
int64 (2002-07-08 03:27) [8]Я когда-то давно делал так:
При формировании стринга, который должен был выводиться, запоминал позиции и длины тех мест, которые нужно изменить.
Потом, то, что запомнил выделял с помощью SelStart и SelLength, и менял стиль, как хотел.
Может есть и другие способы, но меня это тогда устраивало.
Вот пример:
procedure TForm1.Button1Click(Sender: TObject);
var s1, s2, RedString: string;
RedLength, RedStartPos: integer;
begin
s1:= "Закрытое акционерное общество ... ";
RedString:= "Работодатель";
RedLength:= Length(RedString);
RedStartPos:= Length(RichEdit1.Text)+Length(s1);
s2:= " Открытое акционерное общество ... ";
RichEdit1.Lines.add(s1+RedString+s2);
RichEdit1.SelStart:= RedStartPos;
RichEdit1.SelLength:= RedLength;
RichEdit1.SelAttributes.Color := clRed;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c