Lazarus 1.6, обсудим изменения...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Lazarus 1.6, обсудим изменения...

Сообщение Лекс Айрин » 04.02.2016 15:58:12

ogorodov, в снапшотной версии уже давно работает.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Lazarus 1.6, обсудим изменения...

Сообщение SSerge » 05.02.2016 07:10:15

ogorodov писал(а):В этой версии перестала работать функция UTF8ToSys() ... при сборке под винду ... или это только у меня так


Вы в курсе, что лазарус с компиляторами 3х собирается с опцией, когда кодовая страница RTL по умолчанию - UTF8?
Ну и... UTf8 в UTF8... Что должно получаться при преобразовании?
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Lazarus 1.6, обсудим изменения...

Сообщение Лекс Айрин » 05.02.2016 16:03:19

SSerge, я кстати, долго не мог понять почему у меня не работает прога под линуксом... а дело было, судя по всему, как раз в использовании UTF8 версий некоторых функций.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Lazarus 1.6, обсудим изменения...

Сообщение Xenar » 05.02.2016 18:06:22

McLion писал(а):
Alexx2000 писал(а):Я сам три бага нашел, надеялся исправят. Но прошел месяц и без изменений. Зарепортил на багтрекер, два уже исправили. Иногда складывается ощущение, что никто кроме меня этими функциями не пользуется :? .....


У меня тоже самое... MessageDlg();, как будто кроме меня о ней никто не знает. Было дело если закрыть ее нажав на X, результат был True. Но уже исправили к счастью.

Хм, а я думал это фича :D
Нарвался на это когда пользователи просто закрывали окно MessageDlg вполне логично считая это равносильно Нет.
Результат был фееричен и стоил мне "пару" седых волос.
Аватара пользователя
Xenar
постоялец
 
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Re: Lazarus 1.6, обсудим изменения...

Сообщение resident » 17.02.2016 19:08:21

vada писал(а):Бросил это дело. Ждем релиза.
Да! На 1.4.4 64 собирается и работает нормально.

У меня на 1.4.4. одно не работает, а на 1.6RC2 другое, что работало раньше.
Вот из последних сюрпризов:
Код: Выделить всё
if (OfferBinding[i] in ['ю', 'я']) then Str := Str + OfferBinding[i];

in с кириллицей не компилируется, заменяю на латинские буквы
Код: Выделить всё
if (OfferBinding[i] in ['a', 'b']) then Str := Str + OfferBinding[i];

- компилируется.
Не знаю уж чего там ждать от релиза.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Lazarus 1.6, обсудим изменения...

Сообщение zub » 17.02.2016 19:21:03

>>Не знаю уж чего там ждать от релиза.
fpc 3.0 уже давно релизнулся, ждать ничего ненадо))
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Lazarus 1.6, обсудим изменения...

Сообщение resident » 17.02.2016 20:26:13

Жаль, что он перешел в такую стадию, что и ждать нечего.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Lazarus 1.6, обсудим изменения...

Сообщение zub » 17.02.2016 20:35:04

>>Вот из последних сюрпризов:
"сюрприз" это вполне логичного поведение компилятора в новых реалиях.
Ждать тут нечего - в смысле надо переделать код так чтобы он работал в старых и новых версиях.
И недопускать подобные скользкие моменты вдальнейшем
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Lazarus 1.6, обсудим изменения...

Сообщение SSerge » 17.02.2016 20:39:21

resident писал(а):Жаль, что он перешел в такую стадию, что и ждать нечего.


А вот не надо код то такой писать:

resident писал(а): if (OfferBinding[i] in ['ю', 'я']) then Str := Str + OfferBinding[i];


...ибо давно уж известно - работаем с UTF8 - никакой больше индексной адресации элементов строк, никакого типа char, никаких in. - все из особенностей, что вы больше не знаете, сколько байт составляет каждый символ вашей строки.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Lazarus 1.6, обсудим изменения...

Сообщение sts » 17.02.2016 21:32:57

т.е. в фп не сделали полноценную поддержку UTF8 строк?
sts
постоялец
 
Сообщения: 411
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Lazarus 1.6, обсудим изменения...

Сообщение zub » 17.02.2016 21:42:11

Поддержка вполне полноценная.
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Lazarus 1.6, обсудим изменения...

Сообщение resident » 17.02.2016 22:13:41

zub писал(а):в смысле надо переделать код так чтобы он работал в старых и новых версиях.

Если бы я знал, как его переделать.

SSerge писал(а):никакой больше индексной адресации элементов строк

А что ж делать, если я, к примеру, хочу заменить третью букву, если она "ы"?

SSerge писал(а):никакого типа char, никаких in

Я ж не против. Только почему весь этот треш не выпилили? Я трачу время на то, чтобы узнать какие же из заявленных в документации инструментов больше не работают. Причем я не сразу могу понять - не работает ли инструмент или это я ошибся. Компилятор теперь может вобще ничего толком и не подсказать - просто ошибка и всё. Мазохизм с моей стороны, хамство со стороны разработчиков.

Возьмем, к примеру, StringReplace, который тоже не работает, только что её вспомнил и проверил. В ими называемой "документации" даже не указан тип, с которым должна работать функция. Что я должен нафантазировать насчет этого? Правильно, что все будет хорошо, а в итоге тратить свое время на эти пустые эксперименты и сопли на форуме. Руки надо отрывать за такие релизы.
Код: Выделить всё
program project1;

uses SysUtils;

{$R *.res}

begin
  WriteLn(StringReplace('aAbBcC', 'a', 'c', [rfReplaceAll, rfIgnoreCase]));
  ReadLn;
  WriteLn(StringReplace('эЭяЯюЮ', 'я', 'ы', [rfReplaceAll, rfIgnoreCase]));
  ReadLn;
end.


Это я еще знаком с их дьявольским зоопарком различных функций, где нет единообразия. Одна будет работать с Ansi, а другой с таким же названием в другом классе придется подсовывать AnsiToUTF. Чтобы это выяснить ушло достаточно времени. А придет человек с улицы чисто из любопытства: дай посмотрю, что же это за Лазарус такой? И что? Кровь, кишки.

Благодарю за внимание.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Lazarus 1.6, обсудим изменения...

Сообщение pupsik » 17.02.2016 22:35:01

resident у меня там string "отрисовалось".
Есть ещё отличие: Source position: sysstrh.inc line 218
http://www.freepascal.org/docs-html/rtl/sysutils/stringreplace.html

А придет человек с улицы чисто из любопытства
- А улица не сишка, джавка и т.п. случаем :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Lazarus 1.6, обсудим изменения...

Сообщение resident » 17.02.2016 23:00:50

pupsik
1.6RC2
Допустим, там я увижу string. Чтобы это значило "в новых реалиях"?
Вот пример StringReplace чуть выше вобще без переменных - не работает с кириллицей.
Да н_я она нужна, если она не работает. Что и где я должен здесь преобразовать, чтобы она заработала?
Вместо 'ы' писать AnsiToUTF8('ы')?

pupsik писал(а):- А улица не сишка, джавка и т.п. случаем

Разве такой даунгрейд возможен? :)
Может наоборот на жаву страссе придется свернуть, а если там с документацией нормуль, то и задерживаться не стоит.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Lazarus 1.6, обсудим изменения...

Сообщение zub » 17.02.2016 23:09:22

StringReplace работает, возможно не отработает с rfIgnoreCase, но в общем случае подстроки заменяются.
Если вы возметесь поддерживать документацию в актуальном состоянии - всё будет ок)), а пока лучше для уточнения поглядывать не только доки но и исходники.

>>А что ж делать, если я, к примеру, хочу заменить третью букву, если она "ы"?
Давайте какуюнить более жизненную задачу, требующую именно посимвольной адресации. У меня ниразу небыло нужды посимвольно рассматривать строки, всегда хватало отношения к символу как к подстроке и соотвенных приемов работы.
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61

Рейтинг@Mail.ru