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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2016, 00:27   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию Длина строки TRichEdit

Всем привет. Сейчас пробую создать компонент на основе TRichEdit, но столкнулся с такой проблемой:

1. Длина строки. Создаю экземпляр от TRichEdit, задаю ширину размером с форму, а результат следующий:


Код:
procedure TRichMemoEditor.WMPaint(var Message: TWMPaint);
var
  DC : HDC;
  Brush : TBrush;
  i: Integer;
  Info: TPaintStruct;
begin
  DC := BeginPaint(Handle,Info);

  try
    Brush := TBrush.Create;
    Brush.Color := clLime;
    //SetBkMode(dc, TRANSPARENT);

    SelectObject(dc, Font.Handle);

    for i:=0 to Lines.Count-1 do
      begin
        TextOut(DC, 1, iStep*i+1, PWideChar(Lines[i]), length(Lines[i]));
      end;

  finally
    Brush.Free;
  end;

end;

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  Editor:= TRichMemoEditor.Create(Form1);
  Editor.Parent:= Form1;
  Editor.Left:=0;
  Editor.Top:=0;
  Editor.Width:= Width;
  Editor.Height:= Height;
end;
С одной стороны - действительно задается максимальная ширина, но с другой стороны - напечатать строку длиной во всю форму - не удается ...


2. И корректно вообще вот таким образом текст выводить ? Или есть какие нибудь более грамотные способы ?
Изображения
Тип файла: png Безимени-2.png (6.9 Кб, 96 просмотров)
-Jack- вне форума Ответить с цитированием
Старый 27.12.2016, 11:29   #2
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Я что-то не пойму что не удовлетворяет вас?Какая задача стоит я понял. Вам перенос текста надо отключить? Если да, то у компонента есть свойство ScrollBars ставите его в ssBoth и перенос будет отключен.
Или вам надо максимальную длину текста зафиксировать? Есть свойство MaxLength. Поподробнее пжалста.
Пишу много и развернуто
Heneken87 вне форума Ответить с цитированием
Старый 27.12.2016, 12:08   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Или есть какие нибудь более грамотные способы ?
Конечно есть. Не делать ерунду с RichEdit, он и сам грамотно, в соответствии с форматированием выведет текст )) Вопрос в чем - какой фокус хочешь сделать с отображением текста, который он сам не может сделать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.12.2016 в 12:13.
Аватар вне форума Ответить с цитированием
Старый 29.12.2016, 00:42   #4
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от Heneken87 Посмотреть сообщение
Я что-то не пойму что не удовлетворяет вас?Какая задача стоит я понял. Вам перенос текста надо отключить? Если да, то у компонента есть свойство ScrollBars ставите его в ssBoth и перенос будет отключен.
Или вам надо максимальную длину текста зафиксировать? Есть свойство MaxLength. Поподробнее пжалста.
Сейчас возможности пока нет проверить ScrollBars, как проверю - отпишусь

Цитата:
Сообщение от Аватар Посмотреть сообщение
Конечно есть. Не делать ерунду с RichEdit, он и сам грамотно, в соответствии с форматированием выведет текст )) Вопрос в чем - какой фокус хочешь сделать с отображением текста, который он сам не может сделать?
По сути дела хочу сделать текстовый редактор, и для начала добавить подсветку строки, где расположен курсор, потом добавить нумерацию строк и подсветку синтаксиса ...

Пока решил начать с малого - мучаюсь с подсветкой строки и нумерацией строк.
-Jack- вне форума Ответить с цитированием
Старый 29.12.2016, 04:32   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от -Jack- Посмотреть сообщение
Пока решил начать с малого
SynEdit тебе в помощь. И не изобретай велосипед с квадратными колесами.
Разве что тебе больше делать нечего.
northener вне форума Ответить с цитированием
Старый 31.12.2016, 03:32   #6
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Не сказать, что совсем делать нечего ))) Но хочется попробовать это реализовать с нуля )
-Jack- вне форума Ответить с цитированием
Старый 01.01.2017, 02:33   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от -Jack- Посмотреть сообщение
Но хочется попробовать это реализовать с нуля )
Странная реализация "с нуля", учитывая что Дельфийский TRichEdit всего лишь "оболочка" для стандартного класса Windows RICHEDIT. Что естественно очень ограничивает возможности произвольной его модификации.
northener вне форума Ответить с цитированием
Старый 03.01.2017, 19:31   #8
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
SynEdit тебе в помощь. И не изобретай велосипед с квадратными колесами.
Разве что тебе больше делать нечего.
Всё же прислушался к вашему совету и воспользовался SynEdit. Настроить подсветку строки, нумерацию строк, синтаксис удалось ...


Но во время поиска информации по SynEdit наткнулся на такое видео:

https://www.youtube.com/watch?v=sPNC0EHXOyE

Вопрос вот в чем, это уже реализовано в SynEdit и если да, то как SynEdit настроить, чтобы подсветка так же работала ?
-Jack- вне форума Ответить с цитированием
Старый 04.01.2017, 01:51   #9
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от -Jack- Посмотреть сообщение
Вопрос вот в чем, это уже реализовано в SynEdit
А я не автор SynEdit.
northener вне форума Ответить с цитированием
Старый 04.01.2017, 15:59   #10
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
А я не автор SynEdit.
Если ты пишешь про SynEdit, выходит ты с ним работал. А причем здесь тогда автор - не автор ??? не тупи ...
-Jack- вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TRichEdit почему то портит строку (добавляет перенос строки) Pcrepair Общие вопросы Delphi 1 17.03.2015 19:14
Укзатели. Длина строки. Chelovekpredel Помощь студентам 5 07.07.2012 19:25
Assembler длина строки Vitalii Помощь студентам 6 22.11.2011 23:14
Использовани компонента TRichEdit. Использовать компонент TRichEdit. Лелич Компоненты Delphi 4 05.03.2011 18:25
Длина строки С++ ArniLand Общие вопросы C/C++ 7 25.03.2010 10:59