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

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

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

Ответить
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

zub писал(а):Откуда ожидания что для utf8 строк должна быть посимвольная индексация в компиляторе? кто когда это декларировал?

на второй круг пошли?

Добавлено спустя 6 минут 34 секунды:
вот отсюда viewtopic.php?p=93519#p93519
и далее по кругу
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

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

Сообщение Лекс Айрин »

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


то есть, то, что внутри хлам, лично Вы не отрицаете...
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

Лекс Айрин писал(а):
sts писал(а):в том то и дело, ручки есть, колесики на чемодане хотелось бы сохранить.


то есть, то, что внутри хлам, лично Вы не отрицаете...


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

Сообщение Лекс Айрин »

sts, не паскаль... возможности, которые уже мало кто использует (а то и не использует вовсе). Которые, кстати, являются особенностью конкретной реализации.
sts
энтузиаст
Сообщения: 519
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

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

Сообщение SSerge »

sts писал(а): даже классы в паскале менее фундаментальны чем тип строка


В базовом стандарте языка паскаль нет строковых типов. Вообще нет. Только array of char. Видите ли, в те времена никто не рассматривал компьютер как средство обработки текстовой информации. :D
String есть порождение Borland, введенное в в обход всех действующих на то время стандартов. На какой фундаментализм то намекаете? :D

Эти самые "строки", кстати, являются первопричиной множества проблем, связанных с быстродействием и оптимизацией использования памяти. Есть такой total commander, знаете надеюсь. :D Если взглянуть history, на чем и когда оно было написано - возникает любопытный факт: язык написания - delphi версии 2 (!!!) с полностью переписанными на ассемблере нестандартным механизмом распределения памяти и собственными строковыми типами. Это на момент, когда delphi фигурировал в текущей версии много старшей 7-ки.

sts писал(а):она единственная на которую стоит ориентироваться


Вы что имеете в виду: синтаксическую модель 1992 года с указателями "^" и object? Или дальнейшее порождение мудрой мысли "э... как бы не дать всяким программистам создавать объекты в стеке... А давайте сделаем "class", и пусть "class" будет строго динамическим указателем, а это все замаскируем заботой о программере, чтобы ему не приходилось печатать лишние неудобные значки "^", тем более все в них постоянно путаются" :twisted:
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

Кстати, вчера объявлено о выходе релиза 1.6
http://forum.lazarus.freepascal.org/ind ... 575.0.html
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

vada писал(а):Кстати, вчера объявлено о выходе релиза 1.6

Никто бы и не заметил :mrgreen:
Обсуждение 1.6 здесь и на забугорной ветке сводится к единственному вопросу: А не поломает ли новая версия мои разработки?
Что там что здесь я не вижу, чтобы от новой версии хоть чего-то ждали. Не вижу возгласов типа "Ну наконец-то они сделали то-то и то-то.". Меня и может еще кого обновится заставляет только исправление багов в новой версии, а не новые возможности (да и есть ли они?).

Лекс Айрин писал(а):возможности, которые уже мало кто использует (а то и не использует вовсе)

А что сейчас происходит нужно чтоль? Вот этот Юникод. Всем без него очень плохо жилось?

There are wrapper functions around LCL, CodeTools and LazUtils for some string functions defined in LazUtils. The wrappers are now deprecated. They can be compeletely disabled by defining "DisableWrapperFunctions". They will be removed in the next release (after 1.6).

Как включить эту опцию?
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

resident писал(а):Как включить эту опцию?


Ну наверно {$DisableWrapperFunctions}

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

Сообщение Лекс Айрин »

resident писал(а):Вот этот Юникод. Всем без него очень плохо жилось?


Если честно, то пофиг на юникод... главное чтобы поменьше было разного рода перекодировок в программе... мне хватило войны кодировок в 90х.

Я говорил о других вещах... из дельфи берут все, что можно, но вот гонка за лидером это неблагодарное дело. Особенно, если лидер бежит не туда.
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

zub писал(а):Т.е. есть строка, есть разделители, есть нужный текст между разделителями...
ищем позиции раделителей в строке (функция pos)

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

Сообщение Лекс Айрин »

resident, вообще-то, есть функция UTF8Pos...

Добавлено спустя 3 минуты 47 секунд:
процедура

Код: Выделить всё

procedure TMainForm.FindDialog1Find(Sender: TObject);
begin

  FindTxt := FindDialog1.FindText;
  MainEditor.SelStart := UTF8Pos(FindTxt,
    UTF8Copy(MainForm.MainEditor.Lines.Text, PosEditor + 1,
    UTF8Length(MainForm.MainEditor.Lines.Text))) + PosEditor - 1;
  if MainEditor.SelStart >= PosEditor then
  begin
    {выделение найденного текста}
    MainEditor.SelLength := UTF8Length(FindTxt);
    {изменение начальной позиции поиска}
    PosEditor := MainEditor.SelStart + MainEditor.SelLength + 1;
  end
  else
  begin
    ShowMessage('Текст "' + FindTxt + '" не найден.');
    FindDialog1.CloseDialog;
  end;
  MainEditor.SetFocus;
end;

пережила не изменяясь с лазаря 1.1
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

Лекс Айрин писал(а):вообще-то, есть функция UTF8Pos...

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

Если это все работает, то тогда действительно тот чемодан без ручки можно выкинуть. Но возникает вопрос: а что если после выкидывания тех функций переименовать эти, чтоб были без префикса "UTF8"? И все были бы довольны, и код бы читался лучше, да и писать меньше?

з.ы. Почему пишут, что функция устарела? Я еще испробовать не успел, а она уже устарела. :) А что теперь в тренде?
Deprecated, see #LazUtils.LazUTF8 for replacements.

http://lazarus-ccr.sourceforge.net/docs ... f8pos.html
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

resident Вам пишут что функцию перенесли. Т.е. она теперь не там где лежала ранее, а в модуле...
Я несколько страниц пытался узнать эту тайну.
эта тайна в вики описана. Лежит и вас дожидается :twisted:
Начать можно отсюда: http://wiki.lazarus.freepascal.org/LCL_Unicode_Support . Тут, кстати, точнее описано о Deprecated..
п.с.
http://wiki.lazarus.freepascal.org/LCL_ ... characters - если быть точнее.
Ответить