Главная страница
    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.46 MB
Время: 0.01 c
2-1148653615
Adios
2006-05-26 18:26
2006.06.11
пара вопросов


15-1147234447
antonn
2006-05-10 08:14
2006.06.11
помогите перевести пару предложений...


15-1147701137
oldman
2006-05-15 17:52
2006.06.11
Депутаты занялись порнографией...


1-1146891942
chizra
2006-05-06 09:05
2006.06.11
Установка Delphi5 поверх Delphi6


2-1148163498
Призрак
2006-05-21 02:18
2006.06.11
COM-порт. Если девайс отключить...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский