Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нашел баг в 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]

спасибо. я как раз на днях планировал с печатью заморочиться... буду в курсе.


Наверх

Титульная страница Поиск, карта сайта Написать письмо