Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > ГЛЮКИ delphi10 на примере функции EnumChildWindows


Автор: bikovrm 3.11.2018, 15:56
ГЛЮКИ delphi 10.2 на примере функции EnumChildWindows

1) самое важное (для меня)
  Может кто ответит - почему в delphi 7 функция EnumChildWindows нормально работает, а в delphi 10.2 - глючит.
  В большом проекте где то работает, а где то нет. При том что начинаю, в месте где всё норм, дописывать доп. строки, а они тупо игнорируются. Специально проверял на разных машинах, создавал новый проект и т. д..

Пример (на https://drive.google.com/open?id=16_kuSUrC6T8Ilm1pVABYKNfedmRhI22Z и https://drive.google.com/open?id=1Kv4aotXpC20Uxq8N6jBJtx9EKA-a3wEg) глюка  (в D10 читает только первый объект):

2) глюк с переменными
  Опять же, в большом проекте, объявляю новые глобальные переменные, а на меня начинают сыпаться ошибки, при том в других местах. Удаляю их, или переставляю выше - ниже (по феншую   smile ), они пропадают.

Автор: kami 11.3.2019, 20:42
Потому что в данном случае глюки не у Delphi.
1. Char  в D7 = AnsiChar, в D2009 и выше - WideChar. Использовать SizeOf вполне возможно некорректно.
2. Не обращать внимания на хинты и ворнинги, выдаваемые компилятором тоже некорректно, а местами чревато боком. В частности, компилятор предупреждает, что результирующее значение функции EnumChild не определено. А по спецификации MSDN - должно быть определено. 

Выводы предлагаю сделать самостоятельно.

Цитата

в большом проекте, объявляю новые глобальные переменные,

Даже не упоминая о том, что ошибка в 17 строке - глобальные переменные это зло.
Но включив телепатор могу предсказать, что имена новых глобальных переменных совпали с именами каких-либо модулей, классов или функций.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)