Тестирование версии 0.9.27
Модератор: Модераторы
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Как только все оставшиеся ошибки (на тек. момент их 8 ) будут решены.
Делаем StringGrid с опцией goFixedRowNumbering.
Пишем код:
Видим картинку.
Есть предложение в методе AutoSizeColumns проверять, включено ли это свойство, и подгонять ширину первого столбца под число с номером строки (на картинке из 4 символов видно 3).
Пишем код:
Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.RowCount:=10000;
StringGrid1.Cells[0, 0]:= '№';
StringGrid1.AutoSizeColumns;
end; Есть предложение в методе AutoSizeColumns проверять, включено ли это свойство, и подгонять ширину первого столбца под число с номером строки (на картинке из 4 символов видно 3).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Код: Выделить всё
StringGrid1.RowCount:=10000;
StringGrid1.Cells[0, 0]:= '10000';
StringGrid1.AutoSizeColumns;
StringGrid1.Cells[0, 0]:= '№';Ширина столбца равняется по StringGrid1.Cells[0, 0], а не по самой широкой!
VirtUX писал(а):Ширина столбца равняется по StringGrid1.Cells[0, 0], а не по самой широкой!
Не совсем так. Я смотрел исходники. Ширина столбцов равняется по самой широкой строке, хранящейся в сетке. Но номера строк на скриншоте не хранятся в сетке, хотя и изображаются на экране. Поэтому равнение и происходит по StringGrid1.Cells[0, 0], где хранится ровно 1 символ. И это баг. Потому что в этом случае бессмысленно применение параметра goFixedRowNumbering: если я его использую, то в ячейках рисуются цифры, но на ширину они не влияют. И тогда мне проще самому цифры туда вписать - тогда они и выводиться будут, и ширину определять.
Хм... А чем Вам не нравится вариант с ручным выравниванием?
При чем Вы можете реально делать ширину с запасом на n-ое количество знаков:
или так:
По мне так - это фича, а не баг. Хотя согласен, что AutoSizeColumns тут и не пахнет.
Код: Выделить всё
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 тут и не пахнет.
Перестали устанавливаться новые пакеты в 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
----------------------------
Кто что скажет по этому поводу?
Например пытаюсь установить пакет components\sqlite\sqlite3laz.lpk
Открываю файл пакета, нажимаю кнопку "Установить". Компиляция проходит успешно, но последнее сообщение в окне сообщений:
make: Leaving directory `/d/progs/pascal/lazarus'
Окно установки не исчезает, Lazarus не перезагружается, как это было раньше. После ручной перезагрузки, компонент в закладках не появляется.
Lazarus 0.9.27.21227
FPC 2.2.5
Windows XP SP3
----------------------------
Кто что скажет по этому поводу?
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Использую код для перекодировки из cp866 в UTF-8 следующим образом: сначала делаю преобразование из cp866 в win1251 при помощи своей процедуры
,
а потом с помощью функции AnsiToUTF8 преобразую в UTF-8. При этом данный код работает под win32 и не работает под linux. При чем не отрабатывает именно функция AnsiToUTF8. Отображение полученных данных идет исключительно вопросительными знаками.
Проверялось на svn версии lazarus от 05/08/09 и fpc 2.2.4
Код: Выделить всё
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
Такое и в GUI и в консольных приложениях?
Такое и в GUI и в консольных приложениях?
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Vadim писал(а):Padre_Mortius
Такое и в GUI и в консольных приложениях?
Да. Когда отладку делал, проверял и в консоли и в GUI. Только похоже что это не баг лазаря, а баг fpc. Попробую обновить версию fpc и отпишусь о результатах
Подключите модуль cwstring - в нём находится WideStringManeger для Linux основаннай на iconv.
Просмотрел вроде все сообщения - не нашел ничего похожего на свою проблему. 
Lazarus - 0.9.27 от 09.07.2009, FPC - 2.2.5, ревизия SVN - 20813
Пишу небольшое приложение под WinCE. Запуск программы под Win 6.0
На форме расположен ComboBox.
При вызове методов Clear, Items.Clear, Items.Delete и последующим заполнением - выпадающий список перестает собственно выпадать
. Есть только возможность перемещаться по списку клавишами управления курсором.
Lazarus - 0.9.27 от 09.07.2009, FPC - 2.2.5, ревизия SVN - 20813
Пишу небольшое приложение под WinCE. Запуск программы под Win 6.0
На форме расположен ComboBox.
При вызове методов Clear, Items.Clear, Items.Delete и последующим заполнением - выпадающий список перестает собственно выпадать
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 писал(а):может какой стиль сбился там же помнится был вариант запретить выпадание
Дело не в стиле списка эт точно - перепробовал все стили: пришлось делать что-то типа
Код: Выделить всё
cbItem.Items[i]:=''; ковырять исходники - нет времени.
да и функционал не слишком страдает.
в крайнем случае если будет тормозить - перепишу с Edit'ом и ListBox'ом
выложил только для озвучивания проблемы, но все равно спасибо за ответ - форум живет
Создаем проект ложим PageControl + две вкладки. В дереве объектов берем драганддропим второй на первый табшит - получаем AV.
У меня Mandriva 2009.1. Lazarus Gtk2 svn 21340. FPC 2.5.1
Добавлено спустя 16 часов 17 минут 13 секунд:
Заметил: у меня на рабочем столе слева сверху полоска желтая прорисовывается когда лазарус запущен, при чем на всех рабочих местах. Что это?
У меня Mandriva 2009.1. Lazarus Gtk2 svn 21340. FPC 2.5.1
Добавлено спустя 16 часов 17 минут 13 секунд:
Заметил: у меня на рабочем столе слева сверху полоска желтая прорисовывается когда лазарус запущен, при чем на всех рабочих местах. Что это?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
AV с Tabsheet - это старая ошибка. Она была и в 0.9.26. Я добавлю ее в bug-tracker.
Природа желтой полоски мне не известна.
Природа желтой полоски мне не известна.
