powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: отображение непечатаемых символов в TEdit
25 сообщений из 31, страница 1 из 2
Lazarus: отображение непечатаемых символов в TEdit
    #39549749
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Натолкнулся на такую вещь: если многострочный текст из любого наследника стринглиста присвоить тексту TEdit
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
//например так
Edit.Text:= Memo1.Text;

//или так
var i: integer;

  Edit1.Clear;
  if Memo1.Lines.Count > 0 then
  begin
    for i := 0 to Pred(Memo1.Lines.Count) do
      if i < Pred(Memo1.Lines.Count)
        then
          Edit1.Text:= Edit1.Text + Memo1.Lines.Strings[i] + LineEnding
        else
          Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]);
  end;  



то на винде символы перевода каретки не видны, а вот на Линуксе отображаются





Что это, баг лазаревского виджетсета? Или особенности Оси?
=================
Док.

Win7 Ultim x64/Deb 9.1(GNOME, MATE; gtk2) i386:
FB 3.0.2.32703, диалект 3, SS,
Lazarus 1.9(r.56145); FPC 3.1.1 (r.36290), IBX by -Rik-; IBE 2017.4.19.2
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39549756
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAPв Linux 0xD вырезается, а 0xA идет в отображение
интересно, можно штатными средствами IDE "вырезать" 0xA вручную или забить, и заменить перевод каретки каким-нибудь мало используемым символом, типа тильды?
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39549758
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док
Код: pascal
1.
LineEnding


Посмотри, что в линуксе тут?
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39549765
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanПосмотри, что в линуксе тут?
что и должно быть, если ты это имел ввиду (fpc_trunk/rtl/unix/sysunixh.inc)
Код: pascal
1.
2.
const
 LineEnding = #10;
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39549769
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док, а, всё нормально. Считай это фичей. :) сам же добавляешь...
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39549773
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanСчитай это фичей. :) сам же добавляешь...
значит, придется тильду рисовать для единообразия :(
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39549825
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanДок, а, всё нормально. Считай это фичей. :) сам же добавляешь...
Раз добавляет, то может и не добавлять, например вместо "Edit1.Text:= Edit1.Text + Memo1.Lines.Strings[i] + LineEnding" делать "Edit1.Text:= Edit1.Text + Memo1.Lines.Strings[i] + "; " ".
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39549834
_Док_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAPРаз добавляет, то может и не добавлять, например вместо "Edit1.Text:= Edit1.Text + Memo1.Lines.Strings[i] + LineEnding" делать "Edit1.Text:= Edit1.Text + Memo1.Lines.Strings[i] + "; " ".
Это не я добавляю, Лазарь так делает при
Код: pascal
1.
Edit1.Text:= Memo1.Text.


Отсюда и эксперименты. А разделитель, как костыльное решение, можно любой использовать...
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550042
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Док_,

Код: pascal
1.
Edit1.Text := StringReplace(Memo1.Text, #10, #13, [rfReplaceAll]);
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550285
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alex,

Тогда уж

Код: pascal
1.
Edit1.Text := StringReplace(Memo1.Text, #10, '', [rfReplaceAll]);
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550319
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

а если потом обратно в Memo? переносы накроются
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550347
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alex,

Код: pascal
1.
Memo1.Text := StringReplace(Edit1.Text, #13, #10#13, [rfReplaceAll]);
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550387
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

на Linux пробовал? :-)
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550395
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alex,

зачем второй раз делать Replace?
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550409
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alex,

в линухе байты другие? :)
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550410
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

в линукс будет работать именно так

Код: pascal
1.
Edit1.Text := StringReplace(Memo1.Text, #10, #13, [rfReplaceAll]);
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550604
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alexв линукс будет работать именно так

маладца, спасибо! И правда, работает
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  Edit1.Clear;
  if Memo1.Lines.Count > 0 then
  begin
    for i := 0 to Pred(Memo1.Lines.Count) do
      if i < Pred(Memo1.Lines.Count)
        then
          {$IFDEF UNIX}
          Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]) + #13
          {$ELSE}
          Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]) + #10#13
          {$ENDIF}
        else
          Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]);
  end;




...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550644
ain-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  Edit1.Clear;
  if Memo1.Lines.Count > 0 then
  begin
    for i := 0 to Pred(Memo1.Lines.Count) do
      if i < Pred(Memo1.Lines.Count)
        then
          {$IFDEF UNIX}
          Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]) + #13
          {$ELSE}
          Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]) + #10#13
          {$ENDIF}
        else
          Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]);
  end;



Для удобств в модуле System есть константа sLineBreak.

Код: pascal
1.
2.
3.
      if i < Pred(Memo1.Lines.Count)
        then Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]) + sLineBreak
        else Edit1.Text:= Edit1.Text + UTF8Trim(Memo1.Lines.Strings[i]);
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550649
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ain-2,

садись, два. За невнимательность ;)

sLineBreak - это псевдоним LineEnding, на линуксе дает #10 и выводит непечатаемый символ.
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550650
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

это что за подстрока?
#10#13
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550699
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxэто что за подстрока?
#10#13
эта часть кода под винду, верхняя - под линь. Обычная практика в Лазаре при кроссплатформе
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39550903
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докandreymxэто что за подстрока?
#10#13
эта часть кода под винду, верхняя - под линь. Обычная практика в Лазаре при кроссплатформепод винду наоборот?
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39551000
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

читай ветку с первого поста, долго объяснять :)
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39551012
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

я нащёт того, что нет в винде такой комбинации
#10#13
есть наоборотная
...
Рейтинг: 0 / 0
Lazarus: отображение непечатаемых символов в TEdit
    #39551104
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

вот ты о чем :) А какая разница?
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: отображение непечатаемых символов в TEdit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]