Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Ошика программы при старте под XP   Найти похожие ветки 

 
S@shka ©   (2006-05-24 23:11) [0]

На некоторых компах под XP прога при старте вывыливается с ошибкой -
Программа выполнила недопустимую операцию.... бла-бла-бла  kernel32.dll
Характерно только для XP причем где то работает нормально (версии даже могут быть одинаковыми)
С чем это может быть связано?


 
antonn ©   (2006-05-25 07:13) [1]

с кривым кодом.


 
MegaVolt ©   (2006-05-25 12:58) [2]

ListView используется?


 
Loginov Dmitry ©   (2006-05-25 13:13) [3]

Компоненты используются?

:)))


 
MegaVolt ©   (2006-05-25 13:40) [4]

Это не шутка. Под WinXP проги с ListView писанные на D5 и с включенным стилем WinXP действительно вылетают по AV даже если вообще никакого кода в них нет. Это правится одной строчкой в comctrls.pas

Неисключено что таже фича есть и с D6


 
sicilla ©   (2006-05-25 15:50) [5]

Где можно прочитать про правку в comctrls.pas? или скиньте код правленный, плиз


 
MegaVolt ©   (2006-05-25 17:58) [6]

Вот то что я правил у себя в comctrls.pas
Первая часть относится к ListView и её нежеланию выводить данные в первом столбце выровнеными вправо.
Вторая убирает глюк при показе ListView в WinXP
Проверял работоспособность правок под 98 и под ХР.
1. Исправления необходимые для нормальной работы выравнивания в первой колонке ListView
  Возможно это нужно было для старых виндов типа Win95

10912: procedure TListColumn.SetAlignment(Value: TAlignment);

 if (Alignment <> Value) and (Index <> 0) then
заменяем на
 if (Alignment <> Value) { and (Index <> 0) } then  // убираем вторую проверку

13632: procedure TCustomListView.UpdateColumn(AnIndex: Integer);

     if Index <> 0 then
       fmt := IAlignment[UseRightToLeftAlignment, AAlignment]
     else fmt := LVCFMT_LEFT;
заменяем на
       fmt := IAlignment[UseRightToLeftAlignment, AAlignment];

2. Исправляет глюк в WinXP :)

13632: procedure TCustomListView.UpdateColumn(AnIndex: Integer);

     if FImageIndex <> -1 then
       fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES;
заменяем на
     if FImageIndex <> -1 then
       fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES
     else
       mask := mask and not (LVCF_IMAGE);



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.055 c
6-1139248031
justy
2006-02-06 20:47
2006.06.11
передать голос по сети


15-1147950751
Kolan
2006-05-18 15:12
2006.06.11
Вы заметили как быстро изменилось отношение к вете "Начинающим"


2-1148443939
poha
2006-05-24 08:12
2006.06.11
Прозрачность ToolBar.


6-1139150890
ZeFiR
2006-02-05 17:48
2006.06.11
Отображение WML документов?


8-1136978358
DVM
2006-01-11 14:19
2006.06.11
Загрузка JPEG из памяти в TBitmap. Как?