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

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

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

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

Сообщение Павел Ишенин » 11.09.2008 18:40:53

Logo писал(а):Linux, Lazarus rev. 16525
Widgetsets - QT
Перепробовал все, что мог, с надежой, что что-то у меня не так, но ошибка осталась.
AutoComleteText = True, при наборе латинских символов - RunError(233), при наборе кирилицы - не дополняет.


У меня работает. Скрин прилагается.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

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

Сообщение shade » 11.09.2008 19:08:38

Обновился, проблемы с созданием OnCreate и CustApp больше нет :)


Маленькое пожелание: можно сделать, чтобы в редакторе кода при нажатии Shift+Enter работал хотя бы как Enter? а ещё лучше как в kate.

Решается это таким вот обработчиком OnKeyDown компонента TSynEdit):
Код: Выделить всё
type
  TChars = set of char;

const
  RepeatChars = [' ', #9, #10, #13, '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '=', '+', '\', '|', '[', ']', '{', '}', ':', ';', ',', '.', '?', '/', '<', '>', '''', '"'];

function repeat_indent(const Line: string; const chars: TChars): string;
var
  i, Len: Integer;
begin
  Len := Length(Line);
  for i := 1 to Len-1 do
  begin
    if not (Line[i] in chars) then
    begin
      Result := copy(Line, 1, i-1);
      Exit;
    end; // if
  end; // for i
  Result := Line;
end;

procedure TFMain.SynEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = 13) {VK_RETURN, всё забываю какой юнит нужно подключать}
    and (ssShift in Shift) then
  begin
    (Sender as TSynEdit).SelText := #13 + repeat_indent((Sender as TSynEdit).LineText, RepeatChars);
  end; // if
end;


PS: мелочь, но не хватает
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

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

Сообщение Logo » 11.09.2008 19:32:03

Павел Ишенин писал(а):У меня работает. Скрин прилагается.

Ничего не понимаю :shock:
ComboLat.jpg

ComboCyr.jpg

Ладно позже протрассирую...
Пока с DB работаю. Интересно, что с этими компонентами делать? Их баги точно, что с fpc. Рапортовать в багтрекер? - Поправят только в 2.3.1, а работать нужно сейчас. Делать заплатку для fpc 2.2.2? Или переписать отдельно для Lazarus и забыть про зависимость от fpc?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

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

Сообщение shade » 11.09.2008 20:48:47

shade писал(а):Обновился, проблемы с созданием OnCreate и CustApp больше нет

Хм.. нет всё-таки осталось, странно вроде сразу после пересборки работало, щас опять ни в какую :(
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

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

Сообщение Павел Ишенин » 12.09.2008 05:24:38

shade писал(а):
shade писал(а):Обновился, проблемы с созданием OnCreate и CustApp больше нет

Хм.. нет всё-таки осталось, странно вроде сразу после пересборки работало, щас опять ни в какую :(


Извиняюсь, но в чем конкретно проблема? Я кажется не в теме.

Добавлено спустя 2 часа 13 минут 11 секунд:
Logo писал(а):
Павел Ишенин писал(а):У меня работает. Скрин прилагается.

Ничего не понимаю :shock:


А... так проблема в Qt под Linux. Есть такая проблема. Поправил немного обработку нажатий на клавиатуру. Теперь английский текст срабатывает. Проблема в других раскладках. Проблема в следующем:
1. В KeyUp, KeyDown передается виртуальный код клавиши. Например при нажатии на кнопку 'A' (eng) передается код VK_A. При нажатии на 'Ф' (rus) тоже должно передаваться VK_A (так как кнопка на клаве одна и также)
2. Обработчик нажатия кнопки в Qt обладает следующей информацией:
a) Key - код кнопки (некоторые коды зарезервированы, некоторые соответствуют USC2)
b) Text - текстовая строка WideString с символом который нажали
c) nativeScanCode - скан код кнопки
d) nativeVirtualKey - виртуальный код кнопки
3. Из того что имеем нам надо сформировать VK_ код для передачи в KeyUp, KeyDown. Key, Text - не могут помочь с национальными символами (мы не знаем какая раскладка клавиатуры). ScanCode - тоже не поможет. nativeVirtualKey = VK_ под Windows, но под linux, mac osx и др. virtualKey отличается от того что в Windows.
Задача: написать код для формирования VK_ из nativeVirtualKey для всех поддерживаемых ОС.

Как задача будет решена, так AutoComplete заработает и KeyUp, KeyDown будут отрабатывать при любой раскладке.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

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

Сообщение shade » 12.09.2008 12:00:50

Павел Ишенин писал(а):
shade писал(а):
shade писал(а):Обновился, проблемы с созданием OnCreate и CustApp больше нет

Хм.. нет всё-таки осталось, странно вроде сразу после пересборки работало, щас опять ни в какую :(


Извиняюсь, но в чем конкретно проблема? Я кажется не в теме.

viewtopic.php?p=26673#p26673
Воспроизводиться не всегда. При первом запуске после пересборки отлично создает обработчик OnCreate... Но потом, видимо с последующих запусков, начинает ругаться, мол не может найти юнит CustApp. Если его в uses закомментировать, то создает, (но, естественно, перестает работать автокомплит для объекта Application).

OpenSUSE 10.3, FPC 2.2.0 (и 2.2.2 тоже), Lazarus (svn r16544), GTK/GTK2
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

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

Сообщение Павел Ишенин » 12.09.2008 12:41:09

shade писал(а):Воспроизводиться не всегда. При первом запуске после пересборки отлично создает обработчик OnCreate...


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

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

Сообщение alexs » 12.09.2008 12:59:53

Не компилится с последним fpc 2.3.1 - propedits.pp
объявление массива
PropClassMap:array[TypInfo.TTypeKind] of TPropertyEditorClass=(

всё дело в том, что в тип TTypeKind из модуля TypInfo добавили ещё 3 элемента
пока я просто в коней добавил 3 пустых укахателя - nil.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение Павел Ишенин » 12.09.2008 13:17:28

alexs писал(а):Не компилится с последним fpc 2.3.1 - propedits.pp
объявление массива
PropClassMap:array[TypInfo.TTypeKind] of TPropertyEditorClass=(

всё дело в том, что в тип TTypeKind из модуля TypInfo добавили ещё 3 элемента
пока я просто в коней добавил 3 пустых укахателя - nil.


Lazarus выпускается всегда только для fpc release версий. В данном случае lazarus 0.9.26 будет выпущен для работы с fpc 2.2.2. Как пыль осядет после добавления unicodestring в fpc мы начнем адаптировать свой код. Пока суетиться рано.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

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

Сообщение alexs » 12.09.2008 14:13:05

привычка :-)
значит буду каждый раз патчик туда совать перед компияцией.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

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

Сообщение shade » 12.09.2008 18:18:25

Павел Ишенин писал(а):Смотрите у себя. Видимо не указаны пути к исходникам fpc или в исходниках fpc нет CustApp или ... Проблема только в том, что IDE не может найти ваш CustApp и все.

Ну вот мне и интересно, почему IDE не может найти мой CustApp, ведь он лежит всё время на месте, пути к исходникам lazarus, fpc, путь к ppc386 прописаны правильно. Например, Classes, SysUtils, FileUtils он находит, а CustApp, как впрочем и некоторые (возможно все) юниты из fcl-base он найти не может... Может где-то ещё нужно что-то прописать?.. я не вижу :roll:
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

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

Сообщение Logo » 12.09.2008 18:52:18

alexs писал(а):привычка :-)
значит буду каждый раз патчик туда совать перед компияцией.

Так, вроде, если по svn обновляешся, то внесенные локальные изменения не перекрываются. Только в случае, если изменение на сервере затрагивает тот же участок кода, что был изменен на локале вносится оба с возможностью ручного выбора.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

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

Сообщение shade » 12.09.2008 19:40:05

Во, кажется нашел условия при которых баг проявляется бесперебойно. Проблема проявляется только тогда, когда я запускаю лазарус через ярлык на рабочем столе.
1. Если я его запускаю из командной строки, то проблема не проявляется.
2. Когда "рабочий путь" в ярлыке не указан или указан на другой каталог, проблема проявляется.
3. Когда "рабочий путь" в ярлыке указывает на каталог с исходниками Lazarus, то всё работает.

Можно ли сделать чтобы работало всегда? вне зависимости от того, с каким текущим каталогом запущен Lazarus ?

Изображение

Изображение
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

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

Сообщение Vadim » 13.09.2008 07:10:50

shade
А у Вас там, в путях к нужным каталогам, случайно не относительные пути стоят?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение wavebvg » 14.09.2008 02:33:07

В общем такая ситуация (наверное в результате получится плохое объяснение, но всёж опишу)
Итак, решил прогу портить под вин, написанную на лазаре
Под ubuntu (gtk2, UTF8, Lazarus SVN) проблем не было... НИКАКИХ
Так вот, первое, с чем столкнулся - если в пути к программе содержит кирилицу, то ничего не работает, докуривал долго, но всёж )))
Потом начались танцы, откомпилилась нормально, появилась такая формачка, ну, думаю УРЯ, пытаюсь загрузить файл с настройками... (tinifile если точно класс называется), он не может открыть файл, ну думаю, дело в кодировке, меняю в файле всё на cp1251, повторяю опыт, тоже...
Покурив решил все настройки вбить вручную, какие наши годы, вбил, там правда немного, проблема только в том, что сохраняться файл отказался сообщив (невозможно создать файл на забугорском языке), ну думаю пипец, надо подождать релиза и решил выйти из программы... Не тут то было, появилось красивое окошечко с надписью "ошибка куча кодов, видимо кирилица, и номер строчки, причём строчка явно левая, на нажатие на ОК он смещает написи на пяток строчек, пока не закончатся все строчки..."
Подумав "дебагер шалит" решил стрипнуть, после этого всё повторилось... Ну с горя зажал на ЕНТЕР... После того, как программа действительно закрылась фокус перешёл к окну эксплорера в котором был выделен бинарник программы... Открывшие 14 копий программы я "выключал" уже после загрытия окна эксплорера...
К базе данных даже на стадии "инициализации" выдал что-то странное вроде \1002\1005... Впрочем клиент не стоял, поэтому подключиться шансов и вправду было очень мало...
ЗЫ Очень бы хотелось, чтобы данные проблемы не привели к раку лёгких...
ЗЫ2 Никого не хотелось обидеть, сам понимаю, что борьба с cp1251 против воли системы довольно сложная проблема...
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru