it-swarm.com.ru

Что вызывает эту ошибку? "Ошибка выполнения 380: недопустимое значение свойства"

мы разработали приложение с использованием vb6.0 и SQL Server 2000 несколько лет назад. В последнее время некоторые наши клиенты говорят нам, что во время работы приложения на некоторых компьютерах, использующих Winxp sp2 в качестве O/S, они получают следующую ошибку, когда хотят показать форму поиска:

«Ошибка выполнения 380: недопустимое значение свойства»

Что вызывает эту ошибку? 

7
odiseh

Я предполагаю, что ваше приложение использует поле редактирования в маске? Это относительно известная проблема, задокументированная Microsoft здесь:

http://support.Microsoft.com/kb/177088

В статье упоминаются VB4 и 5, но я уверен, что то же самое относится и к VB6.

ПРАВКА

При дальнейшем исследовании я нахожу ссылки на эту проблему и с другими элементами управления. Перекомпиляция приложения в Windows XP для пользователей, работающих под управлением XP, вероятно, создаст для них рабочую версию, хотя это не идеальное решение ...

9
David M

Просто добавьте два моих цента: еще одна распространенная причина этой ошибки в моем опыте - это код в событии Form_Resize, который использует математику для изменения размеров элементов управления в форме. Контрольные измерения (Height и Width) не могут быть установлены в отрицательные значения, поэтому код, подобный следующему в вашем событии Form_Resize, может вызвать эту ошибку:

Private Sub Form_Resize()
    'Resize text box to fit the form, with a margin of 1000 twips on the right.'
    'This will error out if the width of the Form drops below 1000 twips.'
    txtFirstName.Width = Me.Width - 1000
End Sub

Приведенный выше код вызовет ошибку «Недопустимое значение свойства», если форма будет изменена до ширины менее 1000 твипов. Если это проблема, самое простое решение - добавить On Error Resume Next в качестве первой строки, чтобы ошибки такого типа игнорировались. Это одна из тех редких ситуаций в VB6, где On Error Resume Next ваш друг. 

7
Mike Spross

Что вызывает ошибка времени выполнения 380 ? Попытка установить для свойства объекта или элемента управления значение, которое не допускается. Просмотрите код, который запускается при загрузке формы поиска (Form_Load и т.д.), Чтобы найти любой код, который устанавливает свойство в нечто, зависящее от значений времени выполнения. 

Мой другой совет - добавить некоторую обработку ошибок и некоторую регистрацию, чтобы отследить точную строку, которая вызывает ошибку. 

  • Logging Посыпать операторы через код, который говорит "Got to X", "Got to Y" и т.д. Используйте их, чтобы найти точное местоположение ошибки. Вы можете записать в текстовый файл или журнал событий или использовать OutputDebugString
  • Обработка ошибок Вот как получить трассировку стека для ошибки. Добавьте обработчик ошибок к каждой подпрограмме, как этот код ниже. Необходимый бесплатный инструмент MZTools может сделать это автоматически. Вы также можете использовать Erl , чтобы сообщать номера строк и находить точную строку - MZTools может автоматически ввести номера строк для вас. 

_

 On Error Goto Handler
   <routine contents>   
 Handler: 
   Err.Raise Err.Number, "(function_name)->" & Err.source, Err.Description 
5
MarkJ

Старая ветка, но вот и ответ.

Проблемные шрифты с вояджером

то есть. если вы устанавливаете какой-то пакет corel, отбросьте некоторые языковые опции .. Мы проверили это с помощью монитора процессов и нашли причину, у нас это были эти два файла шрифтов.

DFKai71.ttf Dfmw5.ttf

У нас была та же проблема, и она была устранена путем удаления этих двух файлов шрифтов из папки windows\fonts.

1
anon

2017 год я знаю ... но кто-то сталкивается с этой проблемой во время обслуживания кода.

Эта ошибка произошла, когда я попытался:

maskedbox.Mask = "#.###"
maskedbox.Text = "12345678"

Чтобы это исправить, просто установите для свойства PromptInclude значение false.

0
Diego Sayron

Одной из причин этой ошибки является очень глупая ошибка в коде . Если правильное значение не передается свойству ActiveX, то также выдается эта ошибка.

Как пустое значение передается свойству Font.Name, так и текстовое значение передается свойству Height.

0
Sushil Pugalia

Я думаю, что в основном проблема заключается в том, что под какой версией O/S была скомпилирована программа и под какой версией O/S вы запускаете программу .. Я видел много обновленные файлы dll и ocx, вызывающие аналогичные ошибки, особенно когда программа была скомпилирована в более старых версиях файлов dll и ocx и во время настройки сохраняются последние файлы dll и ocx.

0
Sailesh Choudhari

Возможно, вы находите на экране элемент управления (метка, рамка, текст ...) за пределами экрана ........ Если положение какого-либо элемента управления зависит от какой-либо переменной, и эта переменная не определена правильно при запуске, вы может иметь это сообщение об ошибке.

Может быть, у вас разное разрешение экрана на обоих компьютерах. И это может быть причиной.

чтобы найти ошибку программы, поместите эту строку во все подпрограммы:

если это решит проблему, вы должны очистить эту строку в каждой подпрограмме, одну за другой, и проверить, возвращается ли проблема. Когда проблема вернется после удаления этой строки в конкретном подпрограмме, вы узнаете подпрограмму, в которой хранится ошибка. Ищите там, и вы найдете это.

[email protected]

0
user2899138

Многие действительно глупые вещи могут вызвать эту ошибку. Я столкнулся с тем, что шрифт больше не включен в Windows 8 по умолчанию - Courier New. Название приложения VB6 было жестко запрограммировано в одной из форм, отсюда и сообщение о запуске.

0
EFraim

Похоже, ответы выше приведены для того, когда вы пишете и компилируете программу, но я использую программное обеспечение Продавца, Catalog.exe, часть карточного каталога Voyager от «Ex Libris», и я также получаю сообщение об ошибке:

catalog-error.png http://img805.imageshack.us/img805/8275/catalogerror.png

У меня есть две Windows 7 32-битных машин. Более новый дает мне ошибку, но на старшей она работает нормально. Я провел много исследований с Google, и вот некоторые из вещей, которые я нашел, что люди говорят, связанные с этой проблемой. Может быть, одна из этих вещей поможет исправить ошибку для вас, хотя они не сработали для меня:

Из того, что говорят другие (например, David M), я думаю, что это может быть связано с библиотекой MSVBM60.DLL - но похоже, что на обоих моих компьютерах этот файл абсолютно одинаков (одна и та же версия, размер, дата и т.д.).

Поскольку этот файл не отличался, я попытался выяснить, какие другие (dll) файлы могут использовать приложение, поэтому я запустил Process Explorer от Sysinternals и посмотрел на приложение (оно загружается, а затем вылетает, когда вы говорите это "подключить"), и скриншоты ниже, что я нашел.

screen1.png http://img195.imageshack.us/img195/2231/screen1oo.png

screen2.png http://img88.imageshack.us/img88/2153/screen2ao.png

screen3.png http://img337.imageshack.us/img337/7622/screen3qk.png

Теперь я не Windows/VB программист, я просто опытный пользователь, и поэтому я уже почти понял, что делать. Я поговорил с поставщиком программного обеспечения, и они рекомендуют переустановить Windows. Это, вероятно, сработает, но мне просто жаль, что эта программа может работать в Windows 7, но что-то в этой конкретной системе вызывает ошибки. Наконец, это образ, который уже был развернут на нескольких машинах, и поэтому, если однажды переустановить Windows, это не такая уж большая проблема, это сэкономит мне серьезное время, если я найду исправление или обходной путь.

0
mark

Если вы пишете программное обеспечение или используете написанное программное обеспечение, в котором хранятся координаты или размеры окна программы для повторного использования при запуске программы, проверьте там наличие (я) таких размеров и положений, которые могут вызвать это. Я видел это снова и снова от разных поставщиков, лениво производящих код, который изменяет размеры и перемещает элементы управления в «форму» (окно программы) в зависимости от размера указанной формы. Посмотрите в HKLM\Software\Vendor\Program и HKCU\Software\Vendor\Program. Ищите конкретные ключи, которые могут быть оскорбительными. Однажды у меня был магазин программ -48000 для положения окна программы в ключах под названием WindowsPosX и WindowPosY. Вы могли видеть запуск и запуск программы на панели задач, но поскольку само окно программы было меньше, чем 48000 (абсолютное значение -48000), оно было полностью расположено за пределами экрана. Если вам неудобно редактировать обычную информацию - большинство людей этого не делают, - тогда удалите программное обеспечение, используйте очиститель реестра, чтобы удалить все оставшиеся записи, затем переустановите программное обеспечение и посмотрите, не решит ли это проблему.

0
Rick Lee