![]() |
|
Модераторы: Akina |
![]()
|
|
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Привет!
Вобщем такая проблема, код из книги "Использование Visual Basic 6.0", со страницы 319 начинается пошаговое объяснение, как усовершенствовать элемент управления ActiveX. В данном случае речь идёт о текстовом поле, к которому нужно добавить свойство CharAccept, которое может иметь 3 значение от 0 до 3: 0 - текстовое поле принимает все символы ( значение по умолчанию ) 1 - текстовое поле принимает только буквы и BackSpace 2 - текстовое поле принимает только цифры и BackSpace Всё делал точно, как написано в книге, вот код:
Вроде всё нормально, проект успешно скомпилирован в .OCX файл. Добавляю его в новый проект Standard EXE, но не могу изменить новое свойство ни на стадии разработки, ни на стадии выполнения программы. На стадии разработки ввожу в поле CharAccept значение 1, но послетого как убераю фокус с этого поля, то сразу же востанавливается значение по умолчанию, т.е. 0. Как я понимаю что-то не так в этих процедурах:
но что именно не знаю, уже сто раз сверил это код с книгой, но никакого отличия так и не нашёл. В чём может быть проблема? Только, если вас не затруднит, поясните - почему так, а не иначе. Заранее спасибо, Денис Это сообщение отредактировал(а) korob2001 - 21.1.2005, 23:07 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| Gannibal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 742 Регистрация: 15.4.2003 Где: 010101 Репутация: 18 Всего: 17 |
как я смотрыу в этих процедурах всё нормально, даже пример нашёл на такую процедуру вот как оно используется смотри
Сохранение свойств Из построения предыдущего ActiveX-элемента Вы знаете, что он может существовать в двух ипостасях - а именно на этапе разработки программы и на этапе её выполнения. Для передачи свойств из одного состояния в другое служит объект PropBag типа PropertyBag. Вставьте в код Вашего ActiveX-элемента следующие строки:
Убедитесь, что добавленный код позволяет запоминать свойства для нашего ActiveX-элемента. Для этого задайте какое-нибудь значение для свойств Password и MaxAttempt запустите программу и закройте её. Ваши значения для свойств Password и MaxAttempt будут сохранены (через объект PropBag). http://casco.narod.ru/prog/vb/activex/passwrd6.htm -------------------- Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить! |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Да, похоже проблема действительно не в этом. Но почему тогда, после того как меняю значение параметра CharAccept на любое другое и убираю фокус из поля значения, то оно тут же меняется на значение по умолчанию.
Для того что бы вы могли протестировать у себя, просто создайте проект ActiveX Control, в форму добавьте текстовое поле, очитите его свойство Text, а свойству Name присвойте имя txtCharSet. Теперь в окно кода внесите код, который написан в первом посте, данной темы. Скомпилируйте проект в .OCX файл, подключите к проекту Standard EXE. Затем попробуйте изименить свойство CharAccept и уберите фокус из поля где только что изменили свойство. Если лень писать, то выложу его в zip архиве, в этом же zip'e будет и уже скомпилированный .OCX файл. Присоединённый файл ( Кол-во скачиваний: 2 )
TextLimit.zip-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Тут все просто. Имеют место две ошибки.
1. В описаниях свойства Лет и Гет, переменная нового значения объявлена как вариант. При назначении нового значения, оно не является числом. Оно представляется в варианте как строковое значение. 2. В свойстве Лет происходит опознание не той переменной. Вы сравниваете текущее значение (chCharAccept, равный 0). Нужно сравнивать переменную назначенного значения (vNewValue). Из всего сказанного приведу только измененный код. Все остальное без изменений.
Это сообщение отредактировал(а) Naghual - 22.1.2005, 17:15 -------------------- Я желаю всем Счастья! |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Naghual - спасибо, всё работает. Это я прошляпил, в книге тоже так ниписано. Просто ошибку ожидал увидеть в другом месте. Огромное спасибо.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 2 Всего: 27 |
korob2001 (Online) - этого мало . У нас Naghual сегодня родился.Ура!
-------------------- Возмездие настигнет |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Ну Naghual, спасибо тебе дважды. А так как ты ещё и из Днепра, то трижды. ;))))))
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |