Тестирование версии 0.9.27

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

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

Re: Тестирование версии 0.9.27

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

Как только все оставшиеся ошибки (на тек. момент их 8 ) будут решены.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Тестирование версии 0.9.27

Сообщение Climber » 10.08.2009 11:51:16

Делаем StringGrid с опцией goFixedRowNumbering.
Пишем код:
Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.RowCount:=10000;
  StringGrid1.Cells[0, 0]:= '№';
  StringGrid1.AutoSizeColumns;
end;
Видим картинку.
Есть предложение в методе AutoSizeColumns проверять, включено ли это свойство, и подгонять ширину первого столбца под число с номером строки (на картинке из 4 символов видно 3).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Тестирование версии 0.9.27

Сообщение VirtUX » 10.08.2009 14:21:55

Код: Выделить всё
StringGrid1.RowCount:=10000;
  StringGrid1.Cells[0, 0]:= '10000';
  StringGrid1.AutoSizeColumns;
  StringGrid1.Cells[0, 0]:= '№';

Ширина столбца равняется по StringGrid1.Cells[0, 0], а не по самой широкой!
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Тестирование версии 0.9.27

Сообщение Climber » 10.08.2009 14:48:05

VirtUX писал(а):Ширина столбца равняется по StringGrid1.Cells[0, 0], а не по самой широкой!

Не совсем так. Я смотрел исходники. Ширина столбцов равняется по самой широкой строке, хранящейся в сетке. Но номера строк на скриншоте не хранятся в сетке, хотя и изображаются на экране. Поэтому равнение и происходит по StringGrid1.Cells[0, 0], где хранится ровно 1 символ. И это баг. Потому что в этом случае бессмысленно применение параметра goFixedRowNumbering: если я его использую, то в ячейках рисуются цифры, но на ширину они не влияют. И тогда мне проще самому цифры туда вписать - тогда они и выводиться будут, и ширину определять.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Тестирование версии 0.9.27

Сообщение VirtUX » 10.08.2009 15:17:27

Хм... А чем Вам не нравится вариант с ручным выравниванием?
Код: Выделить всё
var AnyCount: integer;
...
StringGrid1.RowCount:=AnyCount;
StringGrid1.Cells[0, 0]:= IntToStr(pred(AnyCount));
StringGrid1.AutoSizeColumns;
StringGrid1.Cells[0, 0]:= '№';
...

При чем Вы можете реально делать ширину с запасом на n-ое количество знаков:
Код: Выделить всё
StringGrid1.Cells[0, 0]:= IntToStr(pred(AnyCount*10)); //на один знак
StringGrid1.Cells[0, 0]:= IntToStr(pred(AnyCount*100)); //на два знака

или так:
Код: Выделить всё
StringGrid1.Cells[0, 0]:= IntToStr(pred(AnyCount))+'0'; //на один знак
StringGrid1.Cells[0, 0]:= IntToStr(pred(AnyCount*100));+'00' //на два знака

По мне так - это фича, а не баг. Хотя согласен, что AutoSizeColumns тут и не пахнет.
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Тестирование версии 0.9.27

Сообщение Vadim » 15.08.2009 14:13:44

Перестали устанавливаться новые пакеты в Lazarus под Windows.
Например пытаюсь установить пакет components\sqlite\sqlite3laz.lpk
Открываю файл пакета, нажимаю кнопку "Установить". Компиляция проходит успешно, но последнее сообщение в окне сообщений:
make: Leaving directory `/d/progs/pascal/lazarus'
Окно установки не исчезает, Lazarus не перезагружается, как это было раньше. После ручной перезагрузки, компонент в закладках не появляется.
Lazarus 0.9.27.21227
FPC 2.2.5
Windows XP SP3
----------------------------
Кто что скажет по этому поводу?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Тестирование версии 0.9.27

Сообщение Padre_Mortius » 15.08.2009 18:43:56

Использую код для перекодировки из cp866 в UTF-8 следующим образом: сначала делаю преобразование из cp866 в win1251 при помощи своей процедуры
Код: Выделить всё
function OEMtoANSI(S: ansistring): AnsiString;
const
  Oem  = #$80#$81#$82#$83#$84#$85#$86#$87#$88#$89#$8A#$8B#$8C#$8D#$8E#$8F+
         #$90#$91#$92#$93#$94#$95#$96#$97#$98#$99#$9A#$9B#$9C#$9D#$9E#$9F+
         #$A0#$A1#$A2#$A3#$A4#$A5#$A6#$A7#$A8#$A9#$AA#$AB#$AC#$AD#$AE#$AF+
         #$E0#$E1#$E2#$E3#$E4#$E5#$E6#$E7#$E8#$E9#$EA#$EB#$EC#$ED#$EE#$F4+
         #$EF#$F5#$F6#$F7#$F8#$F9#$FC#$09;

  ANSI = #$C0#$C1#$C2#$C3#$C4#$C5#$C6#$C7#$C8#$C9#$CA#$CB#$CC#$CD#$CE#$CF+
         #$D0#$D1#$D2#$D3#$D4#$D5#$D6#$D7#$D8#$D9#$DA#$DB#$DC#$DD#$DE#$DF+
         #$E0#$E1#$E2#$E3#$E4#$E5#$E6#$E7#$E8#$E9#$EA#$EB#$EC#$ED#$EE#$EF+
         #$F0#$F1#$F2#$F3#$F4#$F5#$F6#$F7#$F8#$F9#$FA#$FB#$FC#$FD#$FE#$AA+
         #$FF#$BA#$B2#$B3#$AF#$BF#$B9#$09;
var
  i,j: integer;
  SR: ansistring;
begin
  SR := '';
  for i := 1 to Length(S) do
  begin
    j := Pos(S[i], Oem);
    if j > 0 then SR := SR + ANSI[j] else SR := SR + S[i];
  end;
  Result := SR;
end;
,
а потом с помощью функции AnsiToUTF8 преобразую в UTF-8. При этом данный код работает под win32 и не работает под linux. При чем не отрабатывает именно функция AnsiToUTF8. Отображение полученных данных идет исключительно вопросительными знаками.
Код: Выделить всё
...
      i:=1;
      while not DbfBase.EOF do
      begin
        StrGrd.RowCount := i + 1;
        StrGrd.Cells[0, i] := AnsiToUTF8(DM.OEMtoAnsi(DbfBase.FieldByName('NAME_RUSH').AsString));
        StrGrd.Cells[1, i] := DbfBase.FieldByName('KOL').Text;
        DbfBase.Next;
        inc(i);
      end;           
...


Проверялось на svn версии lazarus от 05/08/09 и fpc 2.2.4
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Тестирование версии 0.9.27

Сообщение Vadim » 16.08.2009 04:43:52

Padre_Mortius
Такое и в GUI и в консольных приложениях?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Тестирование версии 0.9.27

Сообщение Padre_Mortius » 16.08.2009 11:31:04

Vadim писал(а):Padre_Mortius
Такое и в GUI и в консольных приложениях?

Да. Когда отладку делал, проверял и в консоли и в GUI. Только похоже что это не баг лазаря, а баг fpc. Попробую обновить версию fpc и отпишусь о результатах
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Тестирование версии 0.9.27

Сообщение Mr.Smart » 16.08.2009 12:28:20

Подключите модуль cwstring - в нём находится WideStringManeger для Linux основаннай на iconv.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Тестирование версии 0.9.27

Сообщение Light13 » 17.08.2009 07:24:14

Просмотрел вроде все сообщения - не нашел ничего похожего на свою проблему. :(
Lazarus - 0.9.27 от 09.07.2009, FPC - 2.2.5, ревизия SVN - 20813

Пишу небольшое приложение под WinCE. Запуск программы под Win 6.0
На форме расположен ComboBox.
При вызове методов Clear, Items.Clear, Items.Delete и последующим заполнением - выпадающий список перестает собственно выпадать :(. Есть только возможность перемещаться по списку клавишами управления курсором.
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: Тестирование версии 0.9.27

Сообщение grigoreo » 19.08.2009 10:17:15

Light13 писал(а):Просмотрел вроде все сообщения - не нашел ничего похожего на свою проблему. :(
Lazarus - 0.9.27 от 09.07.2009, FPC - 2.2.5, ревизия SVN - 20813

Пишу небольшое приложение под WinCE. Запуск программы под Win 6.0
На форме расположен ComboBox.
При вызове методов Clear, Items.Clear, Items.Delete и последующим заполнением - выпадающий список перестает собственно выпадать :(. Есть только возможность перемещаться по списку клавишами управления курсором.


может какой стиль сбился там же помнится был вариант запретить выпадание
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: Тестирование версии 0.9.27

Сообщение Light13 » 19.08.2009 13:11:20

grigoreo писал(а):может какой стиль сбился там же помнится был вариант запретить выпадание

Дело не в стиле списка эт точно - перепробовал все стили: пришлось делать что-то типа
Код: Выделить всё
cbItem.Items[i]:='';
для каждого элемента списка :(
ковырять исходники - нет времени.
да и функционал не слишком страдает.
в крайнем случае если будет тормозить - перепишу с Edit'ом и ListBox'ом
выложил только для озвучивания проблемы, но все равно спасибо за ответ - форум живет :)
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: Тестирование версии 0.9.27

Сообщение Inferno » 20.08.2009 14:55:37

Создаем проект ложим PageControl + две вкладки. В дереве объектов берем драганддропим второй на первый табшит - получаем AV.
У меня Mandriva 2009.1. Lazarus Gtk2 svn 21340. FPC 2.5.1

Добавлено спустя 16 часов 17 минут 13 секунд:
Заметил: у меня на рабочем столе слева сверху полоска желтая прорисовывается когда лазарус запущен, при чем на всех рабочих местах. Что это?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Inferno
новенький
 
Сообщения: 78
Зарегистрирован: 20.03.2009 14:40:20
Откуда: Тюмень

Re: Тестирование версии 0.9.27

Сообщение Павел Ишенин » 21.08.2009 09:00:08

AV с Tabsheet - это старая ошибка. Она была и в 0.9.26. Я добавлю ее в bug-tracker.
Природа желтой полоски мне не известна.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru