![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нашел баг в VCL Delphi 2009-го
Дмитрий Белькевич © (2009-07-25 00:25:00)В Dialogs'ах, в методе TPrintDialog.Execute. Забыли структуру PrintDlgRec почистить. Что интересно, 7-ка не подвержена проблеме: FillChar(PrintDlgRec, SizeOf(PrintDlgRec), 0);
В 2009-й нет этой строчки. Какие мысли - как поправить?
В QC не нашел ничего...
Дмитрий Белькевич (2009-08-08 11:32:00) [1]Чего я в http://www.delphimaster.ru/cgi-bin/forum.pl?id=1249378793&n=3и опасался. Ну да кушать всем хочется...
Дмитрий Белькевич (2009-08-08 11:28:00) [2]
> В D2010 исправили
Придётся 2010 покупать :)
TIF (2009-08-08 03:49:00) [3]Дмитрий Белькевич, поздравляю :)
В D2010 исправили
Дмитрий Белькевич (2009-07-27 22:18:00) [4]Уже открыли. Посмотрим, как скоро поправят.
Есть еще одна проблема - количество копий не передаётся диалогу при открытии, всё по этой же причине - nCopies не заполняется. Открою, наверно, еще одно исправление, может поправят и это... Хоть и не особенно критично.
TIF (2009-07-27 16:06:00) [5]> Дмитрий Белькевич (25.07.09 21:54) [8]
> Вроде как отправил. Как я понял, они сразу всё не сабмитят.
> Подождём - посмотрим...
Ссылка для всех заинтересованных:
http://qc.embarcadero.com/wc/qcmain.aspx?d=76073
"Status: Pending" - думают :)
Дмитрий Белькевич (2009-07-25 21:54:00) [6]Вроде как отправил. Как я понял, они сразу всё не сабмитят. Подождём - посмотрим...
Германн (2009-07-25 02:21:00) [7]
> Дмитрий Белькевич (25.07.09 01:33) [6]
>
> >0 дает или "ахинейное" число, не пойми откуда... :)
> >сам не могу, нет 2009го.
>
> Проверил, прежде чем писать. Мусор. Проявляется в виде установки
> в диалоге максимально возможного числа копий.
>
Значит [4].
Дмитрий Белькевич (2009-07-25 01:33:00) [8]>0 дает или "ахинейное" число, не пойми откуда... :)
>сам не могу, нет 2009го.
Проверил, прежде чем писать. Мусор. Проявляется в виде установки в диалоге максимально возможного числа копий.
sniknik (2009-07-25 01:25:00) [9]> Точно. С nCopies проблемы - поле не инициализировано.
а "не инициализировано", это не 0 в нем случаем? тогда как раз наоборот, структура очищена. но нужное значение не введено.
т.е. инициализация структуры (обнуление) и инициализация значениями для обработки разные вещи.
проверь на всякий случай
procedure TForm1.Button1Click(Sender: TObject);
var
PrintDlg: TPrintDlg;
begin
ShowMessage(IntToStr(PrintDlg.lStructSize));
end;
0 дает или "ахинейное" число, не пойми откуда... :)
сам не могу, нет 2009го.
Игорь Шевченко (2009-07-25 01:13:00) [10]
> В QC не нашел ничего...
Отправь, другим будет полезно
Дмитрий Белькевич (2009-07-25 01:01:00) [11]>а оно точно там не чистится?
Точно. С nCopies проблемы - поле не инициализировано.
>просто в 2009 структура больше на обьект походит
Так не динамическая она - обычная локальная запись.
>2009 не у всех есть...
А почти то же самое, как в 7-ке, только без FillChar(PrintDlgRec, SizeOf(PrintDlgRec), 0);.
sniknik (2009-07-25 00:56:00) [12]а оно точно там не чистится? ну, если точку отанова поставить и посмотреть, просто в 2009 структура больше на обьект походит, а любой динамический обьект при создании инициализируется.
вообще, привел бы побольше кода, как он объявлен, место "с окрестностями" где он по твоему должен чистится...
2009 не у всех есть...
KilkennyCat (2009-07-25 00:35:00) [13]спасибо. я как раз на днях планировал с печатью заморочиться... буду в курсе.