Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Abu Antos' ([info]syarzhuk)
@ 2002-08-12 17:33:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Музыка:Pere Ubu - St. Arkansas

Сiненькi сьцiплы бульточак
Каля паловы часу application developer'а йдзе не на ўласна распрацоўку праграм, а на барацьбу з чужым кодам - third-party APIs, controls, etc. Пры гэтым у мяне, здаецца, з ростам квалiфiкацыi гэты адсотак расьце, бо даюць правiць усё больш кавалкаў, да якiх другiя проста ня ведаюць як падступiцца.

Карацей - далi тут падправiць чужы праект. На форме 3 абсалютна аднолькавых чэкбокса, але 2 зь iх - майкрасофтаўскiя, а адзiн - шэрыданаўскi, чаму - невядома. але лепей не чапаць, бо пасыпецца ўсё як картачная хатка. Цяпер:
у мелкамяккага чэкбокса ўсё як трэба - ёсьць тры значэньнi з набора VBRUN.CheckBoxConstants : vbUnchecked = 0, vbChecked = 1, vbGrayed = 2
у шэрыданаўскага па дакумантах павiнна быць тое-ж самае: набор Constants_CheckBoxValue, канстанты ssCBUnchecked = 0, ssCBChecked = 1 i ssCBGrayed = 2
Але "б'юць не па пашпарце, а па зяпе". Рэальна гэты ё6ahы шэрыданаўскi чэкбокс прыймае значэньнi 0 - unchecked i -1 - checked. Мала таго, калi пiшаш яму

   .Value = vbChecked

ён нават не канвертуе vbChecked у True, а тады ў -1 - проста нахабна пакiдае бокс невыбраным.

У рэзультаце напiсаў такiя функцыi:

'for microsoft checkbox checked is 1 and unchecked is 0
'for sheridan SSCheck checked is -1 and unchecked is 0
Public Function BoolToCheck(Value As Boolean, Optional ItsAStupidSheridanCheckBox As Boolean = False) As Integer
   BoolToCheck = IIf(Value, IIf(ItsAStupidSheridanCheckBox, -1, vbChecked), vbUnchecked)
End Function

Public Function CheckToBool(Value As Integer) As Boolean
   'vbUnchecked 0 is always unchecked for both Checkbox and SSCheck controls
   'checked could be vbChecked=1 for Check boxes and -1 for SSCheck
   CheckToBool = Not (Value = vbUnchecked)
End Function


Адно што суцяшае - нейкая нечакана пяшчотная назва BoolToCheck - бульточак. Сiненькi сьцiплы бульточак падаў, як Windows, штодзень...

Phone Home Jonah from the belly of the whale... (гл. current music)



(Читать комментарии)

Добавить комментарий:

Как:
(комментарий будет скрыт)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Имя пользователя:
Пароль:
Тема:
HTML нельзя использовать в теме сообщения
Сообщение:



Обратите внимание! Этот пользователь включил опцию сохранения IP-адресов тех, кто пишет анонимно.