Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: отображение непечатаемых символов в TEdit / 25 сообщений из 31, страница 1 из 2
08.11.2017, 16:59:21
    #39549749
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
Натолкнулся на такую вещь: если многострочный текст из любого наследника стринглиста присвоить тексту 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
08.11.2017, 17:03:42
    #39549756
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
Andy_OLAPв Linux 0xD вырезается, а 0xA идет в отображение
интересно, можно штатными средствами IDE "вырезать" 0xA вручную или забить, и заменить перевод каретки каким-нибудь мало используемым символом, типа тильды?
...
Рейтинг: 0 / 0
08.11.2017, 17:07:15
    #39549758
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
Док
Код: pascal
1.
LineEnding


Посмотри, что в линуксе тут?
...
Рейтинг: 0 / 0
08.11.2017, 17:17:15
    #39549765
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
wadmanПосмотри, что в линуксе тут?
что и должно быть, если ты это имел ввиду (fpc_trunk/rtl/unix/sysunixh.inc)
Код: pascal
1.
2.
const
 LineEnding = #10;
...
Рейтинг: 0 / 0
08.11.2017, 17:20:44
    #39549769
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
Док, а, всё нормально. Считай это фичей. :) сам же добавляешь...
...
Рейтинг: 0 / 0
08.11.2017, 17:32:23
    #39549773
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
wadmanСчитай это фичей. :) сам же добавляешь...
значит, придется тильду рисовать для единообразия :(
...
Рейтинг: 0 / 0
08.11.2017, 18:32:06
    #39549825
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
wadmanДок, а, всё нормально. Считай это фичей. :) сам же добавляешь...
Раз добавляет, то может и не добавлять, например вместо "Edit1.Text:= Edit1.Text + Memo1.Lines.Strings[i] + LineEnding" делать "Edit1.Text:= Edit1.Text + Memo1.Lines.Strings[i] + "; " ".
...
Рейтинг: 0 / 0
08.11.2017, 18:54:19
    #39549834
_Док_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
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
09.11.2017, 10:06:16
    #39550042
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
_Док_,

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

Тогда уж

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

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

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

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

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

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

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

Код: pascal
1.
Edit1.Text := StringReplace(Memo1.Text, #10, #13, [rfReplaceAll]);
...
Рейтинг: 0 / 0
09.11.2017, 23:32:24
    #39550604
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
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
10.11.2017, 06:01:03
    #39550644
ain-2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
Док
Код: 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
10.11.2017, 07:24:53
    #39550649
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: отображение непечатаемых символов в TEdit
ain-2,

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

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

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

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

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

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


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