Lazarus 0.9.30.20 и глюки

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

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

Ответить
Vadimus
новенький
Сообщения: 19
Зарегистрирован: 11.02.2011 15:56:16

Lazarus 0.9.30.20 и глюки

Сообщение Vadimus »

Добрый день!

У меня следующие глюки в Lazarus 0.9.30.20 (Win7 32):

1) Сконвертировал проект из Delphi. При запуске приложения открывается сначала консоль, затем главная форма. Это баг или так должно быть?

2) При отлаживании открываются те же исходники, что уже открыты в IDE, только с надписью (2). Пример, открыт debugunit.pas, будет открыт еще и "debugunit.pas (2)" и в нем уже будет трассировка.

3) При отладке зачастую дебаггер показывает не те строки, которые реально сейчас выполняются. Связано с 4).

4) Файлы сохраненные, оказыватся не сохраненными. Начинается глюк 3) - закрываю IDE, открываю заново - последние изменения не сохранены. Мистика.

Помогите понять, или я что-то сделал не так, или это версия Lazarus такая глючная?

Добавлено спустя 18 минут 54 секунды:
Еще такой нюанс. Не знаю, фича или что это:

Пример: считываю текстовый файл в кодировке UTF-8 в строку. Ищу подстроку на русском языке "тест". В тексте она есть. Но Pos(str, 'тест') не её находит. Проверил, пишу строки в текст writeln(f, 'тест');, получается на выходе текст в кодировке CP1251. Т.е. кодировка в программах Lazarus получается не UTF-8?
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

1. Так и должно быть, исправляется галкой в настройках проекта "графическое приложение Win32"

Для поиска в UTF8 строке используйте UTF8Pos

по остальным вопросам нужны либо примеры, либо пояснения.
Откуда брался дистрибутив Lazarus? Какая версия fpc?
P.S. версии 0.9.30.20 не существует, есть версия 0.9.30.2
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

И ещё - посмотрите в какой кодировке сам исходник. Делается так - Контекстное меню редактора с открытым исходником -> File Setting -> Encoding.
Если там cp1251, то и writeln(f, 'тест'); даст cp1251
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Vadimus писал(а):Но Pos(str, 'тест') не её находит


По поводу работы с UTF-8 в lazarus, хоть сюда что ли взгляните: http://sirserge.altai.info/articles/?id=41

В первую очередь, для программиста это означает стальные рамки поведения: для вас больше не должно существовать переменных и констант типа char и нет никакой возможности выбрать символ по индексу в строке как в массиве символов. И вы не имеете права применять никакие функции для типов String/AnsiString с указанием позиции символа в строке, задаваемого вами «вручную», если хотите корректных результатов.


И да, текст исходника в редакторе надо вручную переключить в UTF8, если проект перегонялся из delphi, то файлы так и остались в cp1251.
Vadimus
новенький
Сообщения: 19
Зарегистрирован: 11.02.2011 15:56:16

Сообщение Vadimus »

Спасибо большое всем откликнувшимся!

Со строками разобрался, переключил кодировку файлов на utf-8 и всё поперло. :)
С багами отладчика и редактора не стал бороться, установил версию 0.9.30 и глюки пропали.

Padre_Mortius писал(а):1. Так и должно быть, исправляется галкой в настройках проекта "графическое приложение Win32"

К сожалению не нашел такой опции...
xcod
постоялец
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Сообщение xcod »

Vadimus писал(а):К сожалению не нашел такой опции...

проект-параметры проекта-компоновка
Ответить