| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Считывание с реестра акробатически избегая ошибки |
| Автор: SultanOFF 12.2.2009, 19:06 | ||
| Здравствуйте. Для зачетки делаю твикер, пока неудачно. Компилируется все хорошо, но когда во время работы проги доходит до считывания данных(а это один из ключевых моментов) из dword-параметра выходит ошибка "invalid data type : NoBrowserOptions(в данном случае из NoBrowserOptions)", хотя в принципе все верно и всё правильно. Считывание происходит согласно этому коду: Код:
Как видите все верно, но почему в таком случае выходит ошибка? Где тут загвоздка? c ReadInteger таже проблема |
| Автор: THandle 12.2.2009, 20:45 | ||
| SultanOFF, у меня такого ключа нету, но если говоришь, что: Читай ReadInteger'ом. Так же не понятно еще что за buf. Посмотри мою статью: http://forum.vingrad.ru/articles/topic-200341.html Дальше. Где try..finally? Зачем CloseKey в конце. Где освобождение? Почему бы не использовать конструкцию вида
??? |
| Автор: SultanOFF 12.2.2009, 22:13 |
| Уважаемый THandle Я пробовал считывать readinteger`oм, выходит та же ошибка buf : dword параметр, closekey нужен ввиду того что Я пишу твикер, и приходится закрывать ключ и открывать другой, но в том же разделе поэтому не освобождаю. Когда попробую вашей конструкцией отпишусь. Спасибо |
| Автор: THandle 12.2.2009, 22:57 | ||
Может что то с правами... Хотя вряд ли. В общем вот работающий у меня код:
|
| Автор: MetalFan 12.2.2009, 22:59 |
| а зачем в ReadBinaryData buf как dword объявлять??? Вызови GetDataInfo, получи и проанализируй тип и размер хранящегося значения. выдели память и читай сколько надо, если это действительно BinaryData |
| Автор: SultanOFF 15.2.2009, 18:02 | ||||
| THandle спасибо, попробовал Я ваш код, и все равно странности преследуют Меня...... Сначала один параметр ('NoBrowserOptions') Я расписал по вашей конструкции, и о чудо, программа великолепно заработала. Однако с радости продолжив применять к каждому параметру Ваш скелет кода, завершив данное действие скомпилировав понял что рано начал ликовать... У Меня получилось чтото вроде этого(цитирую часть кода)
и все равно выходит та же ошибка "invalid data type : NoBrowserOptions(в данном случае из NoBrowserOptions)" хотя про никакой data type вообще никакого кода не ведется....Почему так происходит, что же это за проблемность и как ее устранить???? MetalFan
|
| Автор: MetalFan 15.2.2009, 18:38 |
| а что я "крутого" предложил? или автор только с пом. Ctrl-C,Ctrl-V программит и головой не пользуется? |
| Автор: SultanOFF 15.2.2009, 19:08 | ||
| Металфан да понимаю глупость написал, простите В общем теперь Я видоизменил немного конструкцию:
и теперь ошибка ""invalid data type" вроде как даже перестала появляться...но проблема остатеся актуальной, SkinCheckRadioBox не переключается в нужное положение хотя в коде ясно указано |
| Автор: MetalFan 15.2.2009, 19:24 |
| ну GetDataSize получил... а считать, что там находиться, не надо? |
| Автор: SultanOFF 15.2.2009, 20:10 |
| Металфан обьясни, а лучше покажи на примере пожалуйста как подсчитать что там находится, окажешь просто неоценимую словами пользу. |
| Автор: MetalFan 15.2.2009, 21:32 |
ну у тебя же был вариант с ReadBinaryData... в котором только не хватало определение размера считываемых данных и выделения буфера под них. Добавлено через 24 секунды а код писать не буду из принципа, ибо учись думать своей головой. |