Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10   вперед  Ctrl      все
 Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Программа компилируется без ошибок.

Но почему при попытке сделать Find Declaration вываливает ошибку:

К сообщению приложен файл. Размер - 66Kb
14 окт 19, 17:29    [21993970]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Любой Find Declaration.
14 окт 19, 17:29    [21993971]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Лазарь 2.1.0 с транка.
14 окт 19, 17:31    [21993974]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Прописать в юните {$mode delphiunicode} помогло, но не понятна причина.
14 окт 19, 17:33    [21993975]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
rgreat
Прописать в юните {$mode delphiunicode} помогло, но не понятна причина.

Свойства с названием "Buffer" нет случайно?
14 окт 19, 17:53    [21993988]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Kazantsev Alexey,

Нету.
14 окт 19, 17:56    [21993991]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Можно ли сделать что бы Undo в редакторе лазаря работало как в дельфях?

Т.е. что бы при нажатии Ctrl+Z не выполняло откат сразу же а сначала переходило на позицию где будет сделан откат, если ее не видно на экране?

Такое поведение было очень удобно для навигации.
14 окт 19, 18:04    [21993998]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
rgreat
Такое поведение было очень удобно для навигации.

Для навигации назад там Ctrl+H;
14 окт 19, 18:10    [21994001]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Kazantsev Alexey,

Блин, почти максимально удаленные друг от друга кнопки на клавиатуре.
Я себе пальцы сломаю. :)
14 окт 19, 18:22    [21994007]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
rgreat,

Перенастрой хоткей, там можно.
14 окт 19, 18:39    [21994017]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Kazantsev Alexey,

А в SysUtils в FPC принципиально неюникодный?
14 окт 19, 18:43    [21994019]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
rgreat
А в SysUtils в FPC принципиально неюникодный?

Что ты имеешь ввиду?
14 окт 19, 18:48    [21994023]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Kazantsev Alexey,

unit SysUtils;
interface

{$MODE objfpc}
{$MODESWITCH OUT}
{ force ansistrings }
{$H+}
14 окт 19, 18:49    [21994024]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
Как я понял {$H+} приводит к String = AnsiString;
14 окт 19, 18:51    [21994028]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
А {$MODE objfpc} оверрайдит {$mode delphiunicode} который я выставил в проекте.
14 окт 19, 18:52    [21994030]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
rgreat,

H+, как и в дельфях, это переключение с дефолтных shortstring на т.н. longstrings, т.е. со статических строк на динамические. В дельфях это сейчас по дефолту и дефолтные строки UnicodeString, в фпц всё несколько сложнее. UnicodeString там пока не дефолтные, и вообще, в разных юнитах дефолтные строки могут быть разными. То есть, в одном юните string может означать AnsiString, а в другом UnicodeString. Насколько я помню, в RTL все эти приколы разруливаются благодаря использованию RawByteString.
14 окт 19, 18:57    [21994036]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
rgreat
Member

Откуда:
Сообщений: 5448
А как там вообще реализовано использование строк в RTL?

Какая кодовая страница будет использована при переходе с юникода к анси?
14 окт 19, 19:37    [21994071]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3882
rgreat,

https://wiki.freepascal.org/FPC_Unicode_support#Code_page_settings
14 окт 19, 21:51    [21994161]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Док
Member

Откуда: Казань
Сообщений: 6460
rgreat,

ощущение, что фпц усиленно пилят в сторону макс. совместимости с юникодными дельфями. Отсюда и эти прыжки в сторону (уход от нативной в никсах UTF8 в UTF16 с кучей "конвертирующих" функций), и обещания разделения редакций Лазаря отдельно на utf8 и utf16, и тупое копирование дельфей (тот же TEncoding), и проч. "трихомундия"©.

Сейчас же все просто: в винде строки (если не уверен в кодировке) гоняешь туда-сюда при помощи WinCpToUTF8/UTF8ToWinCP, в никсах - все нативное. Красота :)
15 окт 19, 08:21    [21994254]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
alekcvp
Member

Откуда:
Сообщений: 1626
Док,

UTF8 так-то не особо удобная кодировка. Например, есть у тебя произвольная строка в UTF8 - как быстро узнать её длину в *символах*? А никак, тупо распарсить полностью.
Плюс операции вроде if s[10] = 'a' {lat} then s[10] := 'a' {cyr}; - это ад для UTF8.

Так что UTF16 самое оно. Где его не хватает - UTF32.
15 окт 19, 10:16    [21994325]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
alekcvp
Member

Откуда:
Сообщений: 1626
ИМХО где UTF8 может быть оправдана - это каналы передачи данных, БД и прочие места, где критично занимаемое место, а сами строки почти никогда не изменяются.
15 окт 19, 10:18    [21994328]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Док
Member

Откуда: Казань
Сообщений: 6460
alekcvp
Док,

UTF8 так-то не особо удобная кодировка. Например, есть у тебя произвольная строка в UTF8 - как быстро узнать её длину в *символах*? А никак, тупо распарсить полностью.

Это не так :) С утф8 как раз все просто и понятно. И обычно достаточно для большинства языков, если ты не пишешь программы на тайском или суахили
15 окт 19, 12:17    [21994473]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30553

15.10.2019 10:16, alekcvp пишет:
>
> Так что UTF16 самое оно.

нихера ни разу.
в UTF16 тоже есть суррогатные пары.

Posted via ActualForum NNTP Server 1.5

15 окт 19, 12:58    [21994520]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
alekcvp
Member

Откуда:
Сообщений: 1626
Мимопроходящий
нихера ни разу.
в UTF16 тоже есть суррогатные пары.

Суррогатные пары есть даже в AnsiString, насколько я помню. Но речь-то не про них.
15 окт 19, 13:03    [21994531]     Ответить | Цитировать Сообщить модератору
 Re: Lazarus  [new]
alekcvp
Member

Откуда:
Сообщений: 1626
Док
Это не так :) С утф8 как раз все просто и понятно. И обычно достаточно для большинства языков, если ты не пишешь программы на тайском или суахили

Что не так? Вот есть у тебя дельфийская строка - у неё длина в символах равна длине в байтах/размер символа. А как определить длину строки UTF8 с латиницей и кириллицей вперемешку?
15 окт 19, 13:05    [21994534]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10   вперед  Ctrl      все
Все форумы / Delphi Ответить