Форум » [x]Harbour » Object -> Hash массив » Ответить

Object -> Hash массив

Dima: Имеем заполненный GetList Каждый элемент которого Object , как преобразовать Object в Hash массив ? Там есть переменные которые в классе Tget, PROTECTED а вот проанализировать их хотелось бы. Там много чего интересного живёт однако :)

Ответов - 7

Dima: Вот такой допустим [pre2] __itemSetObj( {{"BBLOCK", {|| ... }}, {"BPREBLOCK", {|| ... }}, {"CNAME", "vid5"}, {"BREADER", {|| ... }}, {"OCONTROL", {{"NBOTTOM", 15}, {"XBUFFER", " Не печатать "}, {"CCAPTION", "Печать ценников "}, {"NCAPCOL", 16}, {"NCAPROW", 8}, {"CCOLORSPEC", "w/b,w/n,w+/BG,n/bg*,n/BG,w/B,GR+/BG,N/R"}, {"AITEMS", {{" Не печатать ", NIL}, {" 12 штук на A4 (70 x 65)", NIL}, {" 88 штук на A4 (25 x 25)", NIL}, {" 190 штук на A4 (15 x 20)", NIL}, {" 10 штук на A4 (50 x 90)", NIL}}}, {"LDROPDOWN", .T.}, {"NITEMCOUNT", 5}, {"NLEFT", 33}, {"ASAVESCR", {9, 33, 15, 65, " тут я почикал "}}, {"LISOPEN", .F.}, {"NRIGHT", 65}, {"CTEXTVALUE", " Не печатать "}, {"NTOP", 8}, {"NTOPITEM", 1}, {"OVSCROLL", {{"ABITMAPS", {"arrow_u.bmu", "arrow_d.bmu", "arrow_e.bmu"}}, {"NBARLENGTH", 3}, {"CCOLORSPEC", "W/N,N/BG*"}, {"CSTYLE", "░▓"}, {"NEND", 14}, {"NOFFSET", 65}, {"NORIENT", 1}, {"NSTART", 10}, {"NTOTAL", 5}}}, {"NVALUE", 1}}}, {"CCOLORSPEC", "W/N,N/BG*,W/B,GR+/N"}, {"NROW", 8}, {"NCOL", 33}}, {{"SCROLLBAR",{5,2,17,2}},{"LISTBOX",{5,2}},{"GET",}} ) [/pre2]

SergKis: Dima Ты список ф-ий смотрел http://www.kresin.ru/hrbfaq_3.html#Doc3 (внизу перед след. темой) ?

Dima: ты про это __objGetValueList ? не дает , пишет PROTECTED однако


SergKis: aNames := __objGetMsgList( oObject, [lData], [nClassType] ) nClassType: HB_MSGLISTALL 0 все переменные HB_MSGLISTCLASS 1 переменные класса CLASS DATA HB_MSGLISTPURE 2 переменные объекта DATA

Dima: SergKis пишет: __objGetMsgList Бесполезная штука , дала массив имен переменных , без значений

SergKis: Dima пишет не дает , пишет PROTECTED однако Если сам собираешь hb, то можешь пробнуть пополнить CLASS GET методами для PROTECTED переменных, например ACCESS x_VarGet INLINE ::xVarGet ACCESS b_PreBlock INLINE ::bPreBlock или как в классе синтаксис по PROTECTED :cBuffer ACCESS buffer METHOD getBuffer() ASSIGN buffer METHOD setBuffer( cBuffer ) ... METHOD getBuffer() CLASS Get RETURN ::cBuffer ... PS или убрать в классе PROTECTED:

Dima: Не хотел трогать целку класс , но если другого нормального способа нет то придется крутить барабан , что то в этом плане пилить.... Спасибо Серёга !



полная версия страницы