Добрый день!
У меня следующие глюки в 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?
Lazarus 0.9.30.20 и глюки
Модератор: Модераторы
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
1. Так и должно быть, исправляется галкой в настройках проекта "графическое приложение Win32"
Для поиска в UTF8 строке используйте UTF8Pos
по остальным вопросам нужны либо примеры, либо пояснения.
Откуда брался дистрибутив Lazarus? Какая версия fpc?
P.S. версии 0.9.30.20 не существует, есть версия 0.9.30.2
Для поиска в UTF8 строке используйте UTF8Pos
по остальным вопросам нужны либо примеры, либо пояснения.
Откуда брался дистрибутив Lazarus? Какая версия fpc?
P.S. версии 0.9.30.20 не существует, есть версия 0.9.30.2
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
И ещё - посмотрите в какой кодировке сам исходник. Делается так - Контекстное меню редактора с открытым исходником -> File Setting -> Encoding.
Если там cp1251, то и writeln(f, 'тест'); даст cp1251
Если там cp1251, то и writeln(f, 'тест'); даст cp1251
Vadimus писал(а):Но Pos(str, 'тест') не её находит
По поводу работы с UTF-8 в lazarus, хоть сюда что ли взгляните: http://sirserge.altai.info/articles/?id=41
В первую очередь, для программиста это означает стальные рамки поведения: для вас больше не должно существовать переменных и констант типа char и нет никакой возможности выбрать символ по индексу в строке как в массиве символов. И вы не имеете права применять никакие функции для типов String/AnsiString с указанием позиции символа в строке, задаваемого вами «вручную», если хотите корректных результатов.
И да, текст исходника в редакторе надо вручную переключить в UTF8, если проект перегонялся из delphi, то файлы так и остались в cp1251.
Спасибо большое всем откликнувшимся!
Со строками разобрался, переключил кодировку файлов на utf-8 и всё поперло.
С багами отладчика и редактора не стал бороться, установил версию 0.9.30 и глюки пропали.
К сожалению не нашел такой опции...
Со строками разобрался, переключил кодировку файлов на utf-8 и всё поперло.
С багами отладчика и редактора не стал бороться, установил версию 0.9.30 и глюки пропали.
Padre_Mortius писал(а):1. Так и должно быть, исправляется галкой в настройках проекта "графическое приложение Win32"
К сожалению не нашел такой опции...
Vadimus писал(а):К сожалению не нашел такой опции...
проект-параметры проекта-компоновка
