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

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
Entry tags:code

С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)



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

Ад паручыка
[info]rydel23@lj
2002-08-12 12:30 (ссылка)
BullTwoChick - Бык і дзьве целкі :))

(Ответить)


(Анонимно)
2002-08-12 22:38 (ссылка)
Usio-tki cikava, kudy znik sp. Kardonski?

(Ответить)