Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > как изменить цвет текста в memo


Автор: c1ber 22.4.2010, 17:43
str := Nick +' '+ DateToStr(DateTimePicker1.Date)+ #13 + #10 + Edit1.Text;
надо Nick +' '+ DateToStr(DateTimePicker1.Date) сделать жирным и другим цветом, а Edit1.Text не трогать, и чтобы при изменении цвета в мемо с помощью memo1.Font:=fontdialog1.Font; менялся только Edit1.Text
помогите пожалуйста))

Автор: ~FoX~ 22.4.2010, 17:51
c1ber, Либо RichEdit, либо TextOut

Автор: c1ber 22.4.2010, 19:34
А можно пример?

Добавлено через 2 минуты и 54 секунды
а как в RichEdit это затолкать если оно должно быть в Memo

Автор: VahaC 22.4.2010, 23:21
Цитата(c1ber @  22.4.2010,  19:34 Найти цитируемый пост)
А можно пример?

Посмотрите в 
DRKB -> VCL -> TRichEdit

Автор: Snowy 23.4.2010, 10:26
Цитата(c1ber @  22.4.2010,  19:34 Найти цитируемый пост)
а как в RichEdit это затолкать если оно должно быть в Memo
Ты уж определись - либо красить, либо Memo.
Мемо не предназначено для форматированного текста - это банальный многострочный Edit.
Для форматированного текста как раз и существует RichEdit

Автор: c1ber 26.4.2010, 16:25
колдовал я с richedit так и не понял как вот эту часть кода str := Nick +' '+ DateToStr(DateTimePicker1.Date) сделать жирной и синего цвета(((

Автор: ~FoX~ 26.4.2010, 16:33
Цитата

%Program Files%\Borland\Delphi%Number%\Demos\RichEdit

Автор: c1ber 26.4.2010, 16:56
я этих примеров кучу видел,но сделать не получается(((не уж то я так туп?
может поможете кодом пещерному человеку?

Автор: Matematik 26.4.2010, 17:57

Код

procedure AddText(ARichEdit: TRichEdit; const AText: string; ABold: Boolean; AColor: TColor);
var sel: TCharRange;
begin
  sel.cpMin := ARichEdit.GetTextLen;
  sel.cpMax := sel.cpMin;
  // перейти в конец рича
  ARichEdit.Perform(EM_EXSETSEL, 0, Longint(@sel));
  // установить стиль
  if ABold then
    ARichEdit.SelAttributes.Style := [fsBold]
  else
    ARichEdit.SelAttributes.Style := [];
  ARichEdit.SelAttributes.Color := AColor;
  // добавить текст
  ARichEdit.Perform(EM_REPLACESEL, 0, Longint(PChar(AText)));
// прокрутить в конец  ARichEdit.Perform(EM_SCROLl, SB_PAGEDOWN , 0);
end;

procedure test;
begin
  RichEdit1.Clear;
  AddText(RichEdit1, '1234', False, clBlack);
  AddText(RichEdit1, 'abcd'#13#10, True, clRed);
  AddText(RichEdit1, 'qwerty', False, clBlack);
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)