Просьба плотно потестировать Lazarus

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

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

Re: Просьба плотно потестировать Lazarus

Сообщение Padre_Mortius » 05.09.2008 11:48:47

Дело точно не в fpc. Поменял на версию 2.3.1.

Добавлено спустя 5 минут 40 секунд:
Дело было в отладчике. поменял на другой файл этой же версии и все заработало

Добавлено спустя 4 минуты 2 секунды:
Вечером проверю насчет версии fpc
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Просьба плотно потестировать Lazarus

Сообщение Павел Ишенин » 05.09.2008 12:56:55

Дело было в отладчике. поменял на другой файл этой же версии и все заработало


Может отладчик лежал в каталоге с русскими буквами?
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Просьба плотно потестировать Lazarus

Сообщение Padre_Mortius » 05.09.2008 13:49:06

нет. он лежал как раз в папке с латинскими буквами. Но счастье было не долгое. После перезапуска началась та же чехорда.Вечером будет немного времени попробую сесть и разобраться. Рабочая папка передается нормально в TProcess, но на каком этапе он получает вместо русских букв их коды пока осталось непонятным. Не было возможности глубже ковырнуть это дело.

Добавлено спустя 4 минуты 15 секунд:
пересборка после "Файл" --> "Перезапуск" приводит к ошибке "C:\lazarus\ide\startlazarus.lpr(51,1) Error: Can't create object file: ..\startlazarus.exe"
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Просьба плотно потестировать Lazarus

Сообщение wavebvg » 05.09.2008 13:53:56

Я же говорю, это проблемы fpc 2.3.1 надо откатиться на 2.2.2 и все станет работать, у меня эта проблема почти месяц назад была...
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35

Re: Просьба плотно потестировать Lazarus

Сообщение Padre_Mortius » 05.09.2008 13:55:08

Сообщение в консоли
Код: Выделить всё
Free Pascal Compiler version 2.3.1 [2008/09/05] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Win32 for i386
Compiling startlazarus.lpr
Compiling resource startlazarus.rc
Compiling resource ..\units\i386-win32\startlazarus.or
Linking ..\startlazarus.exe
startlazarus.lpr(51,1) Error: Can't create object file: ..\startlazarus.exe
startlazarus.lpr(51,1) Fatal: Can't create executable ..\startlazarus.exe
TExternalToolList.Run Exception: C:\lazarus\ide\startlazarus.lpr(51,1) Fatal: Ca
n't create executable ..\startlazarus.exe
TMainIDE.DoBuildLazarus: Building standard components (LCL, SynEdit, CodeTools)
failed.


Добавлено спустя 48 секунд:
wavebvg
на 2.2.2 тоже самое
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Просьба плотно потестировать Lazarus

Сообщение Павел Ишенин » 05.09.2008 16:29:14

пересборка после "Файл" --> "Перезапуск" приводит к ошибке "C:\lazarus\ide\startlazarus.lpr(51,1) Error: Can't create object file: ..\startlazarus.exe"


Конечно, так как startlazarus запущен. Эту проблему можно решить убрав сборку стартера из диалога, если startlazarus запущен. В любом случае это не тот баг, который будет правиться перед 0.9.26
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Просьба плотно потестировать Lazarus

Сообщение Logo » 05.09.2008 20:04:14

Linux x86_64, kernel 2.6.24, KDE 3.5.9, QT 4.3.4, GTK-2 2.10, FPC 2.2.2, Lazarus rev.16397
Многие ошибки в связке Lazarus/fpc 2.2.2 решены - СПАСИБО!

TImage:
QT работает.
GTK-2 альфа канал не работает, все маскируется. Раньше альфа канал работал, но на фоне сыпало шум

TSQLQuery:
При попытке в Edit Fields (двойной щелчек на компонете) добавить поля, Lazarus виснет, либо через время выдает ошибку "Access violation". Иногда при повторной попытке поле создается.

TComboBox:
QT работает, но не работает свойство AutoCompleteText - [cbactRetainPrefixCase]. Первый символ всегда тот, который введен с клавиатуры.
GTK-2 AutoComlete с кирилицей (UTF) не работает. Записи в латинице находятся, а кирилические нет. Проблема в customcombobox.inc
Код: Выделить всё
484 procedure TCustomComboBox.KeyUp(var Key: Word; Shift: TShiftState);
...
499       if ((iSelStart < Length(Text)) and (cbactEndOfLineComplete in FAutoCompleteText)) then Exit;

iSelStart имеет правильное значение в символах, а Length(Text) возвращает значение в байтах и если в строке есть кирилица, то это значение всегда больше iSelStart. (У себя я преобразовал Text в WideString, но как это вписывается в общую концепцию Lazarus, не знаю)
Следующая проблема, это чувствительность к регистру. Проблема в модуле lclproc.pas
Код: Выделить всё
534 function GetCompleteText(sText: string; iSelStart: Integer;
  bCaseSensitive, bSearchAscending: Boolean; slTextList: TStrings): string;

  function IsSamePrefix(sCompareText, sPrefix: string; iStart: Integer;
    var ResultText: string): Boolean;
  var sTempText: string;
  begin
    Result := False;
    sTempText := LeftStr(sCompareText, iStart);
    if not bCaseSensitive then sTempText := AnsiUpperCase(sTempText); //UpperCase меняем на AnsiUpperCase


QT - Если используются DB компоненты, а в базе данных юникодовские поля, то программа либо виснет, либо "Access violation". Причина, видимо, в неверном выделении буфера. Определяется длина строки в символах, а выделяется в байтах. Подобную проблему я устранял в TPQConnection, но это модуль fpc, а не Lazarus.

Пока вроде все. Многие баги уже исправлены.

Добавлено спустя 1 минуту 49 секунд:
Баги GTK-2, присутствуют и в GTK
Последний раз редактировалось Logo 06.09.2008 03:57:25, всего редактировалось 2 раз(а).
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Просьба плотно потестировать Lazarus

Сообщение gukoff » 05.09.2008 21:01:48

При проектировании на Lazarus под Windows не работают процедуры: Memo1.lines.loadfromfile(имя файла) и Listbox1.items.loadfromfile(имя файла). Ничего не происходит, хотя обратные действия Memo1.lines.savetofile(имя файла) и Listbox1.items.(имя файла) работают нормально. Кто подскажет в чем тут дело, или это "глюк" Лазаруса?
gukoff
незнакомец
 
Сообщения: 1
Зарегистрирован: 03.09.2008 15:45:31

Re: Просьба плотно потестировать Lazarus

Сообщение Максим » 05.09.2008 21:06:58

Кодировка файла должна быть UTF-8.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Просьба плотно потестировать Lazarus

Сообщение Павел Ишенин » 06.09.2008 20:27:44

TSQLQuery:
При попытке в Edit Fields (двойной щелчек на компонете) добавить поля, Lazarus виснет, либо через время выдает ошибку "Access violation". Иногда при повторной попытке поле создается.

Это ошибка в модуле sqldb.pp, который часть fpc. Пишити в баг-трекер fpc.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Просьба плотно потестировать Lazarus

Сообщение giantdragon » 06.09.2008 22:21:28

Решил написать здесь по поводу проблемы viewtopic.php?f=5&t=3638 , может разработчики заметят.
Написал в багтрекер, админ почти сразу поменял важность ошибки c major (как я установил) на feature (т.е. самый низкий приоритет). Там же нашёл ещё несколько сообщений о данной ошибке, такое ощущение что разработчики вообще не хотят её исправлять... Очень жаль, ведь новички попробуют Lazarus, увидят неработающий отладчик (сомневаюсь, что человек только перешедший с Delphi догадается как исправить этот баг), и сразу же сотрут его.
http://bugs.freepascal.org/view.php?id=12085
giantdragon
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.09.2008 20:35:27

Re: Просьба плотно потестировать Lazarus

Сообщение Logo » 07.09.2008 00:50:12

Павел Ишенин писал(а):
TSQLQuery:
При попытке в Edit Fields (двойной щелчек на компонете) добавить поля, Lazarus виснет, либо через время выдает ошибку "Access violation". Иногда при повторной попытке поле создается.

Это ошибка в модуле sqldb.pp, который часть fpc. Пишити в баг-трекер fpc.

Ок! Спасибо за наводку.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Просьба плотно потестировать Lazarus

Сообщение NXP » 07.09.2008 01:48:12

У меня на Lazarus 0.9.25 грохается программа, при попытке выполнить SQLQuery.Open или Exec.
DAC: PostgreSQL 8.3.1
Пришлось откатится на 0.9.24
Расследование не делал, ибо время дороже.
Однако try except ... end не отлавливают событие...
Программа вылетает
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: Просьба плотно потестировать Lazarus

Сообщение Logo » 07.09.2008 03:03:08

NXP писал(а):У меня на Lazarus 0.9.25 грохается программа, при попытке выполнить SQLQuery.Open или Exec.
DAC: PostgreSQL 8.3.1
Пришлось откатится на 0.9.24
Расследование не делал, ибо время дороже.
Однако try except ... end не отлавливают событие...
Программа вылетает

Шото не замечал. Какой fpc? и если можно примерчик, интересно, что за глюк. И еще, данные кирилические? Кодировка данных наверное UTF-8. Windows или Linux?
Вообще то это проблема fpc, я сейчас этим модулем занимаюсь и очень прошу дать больше информации.

Добавлено спустя 36 минут 12 секунд:
Какой интерфейс, Win32, GTK или QT?
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Просьба плотно потестировать Lazarus

Сообщение NXP » 07.09.2008 10:29:27

Я использовал Daily Snapshot (win32)
Lazarus-0.9.25-fpc-2.2.3-20080807-win32.exe
Вот участки кода:
Код: Выделить всё
//*****************************************************************
//        Подключение к PostgreSQL
//
function PG_Init(Host, User, Pass, Database: string): Boolean;
begin
  Result:= True;
  try
    SQLQuery:=          TSQLQuery.Create(nil);
    SQLTransaction:=    TSQLTransaction.Create(nil);
    PGConnection:=      TPQConnection.Create(nil);

    PGConnection.HostName:=     Host;
    PGConnection.UserName:=     User;
    PGConnection.Password:=     Pass;
    PGConnection.DatabaseName:= Database;
    PGConnection.Open;
    SQLQuery.DataBase:=        PGConnection;
    SQLQuery.Transaction:=     SQLTransaction;
    SQLTransaction.DataBase:=  PGConnection;
    PGConnection.Transaction:= SQLTransaction;
  except
    on E: Exception do begin
      Result:= False;
      Application.MessageBox(pChar(E.Message), 'Ошибка подключения ', MB_OK + MB_ICONERROR);
    end;
  end;
end; 

А запрос к примеру так:
Код: Выделить всё
  SQLQuery.SQL.Text:= 'SELECT * FROM ' + Tab_Name + ' WHERE id=' + IntToStr(Index);

  try
    SQLQuery.Open;
    if (not SQLQuery.EOF) then begin
      if (SQLQuery.Fields.Count <= FieldNum) then
        Result:= ''
      else
        Result:= SQLQuery.Fields.Fields[FieldNum].AsString;
    end;
    SQLQuery.ClearFields;
   
  finally
    SQLQuery.Close;
  end;

:(
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru