Вверх ↑
Этот топик читают: Гость
Ответов: 18
Рейтинг: 0
#1: 2006-11-11 03:45:41 ЛС | профиль | цитата
Из помощи к компоненту: onRead Событие происходит после чтения данных и выдает в поток считанные данные.
Тогда почему так работает:
Add(Button,1734826,112,119)
{
Left=115
Top=130
link(onClick,14141334:doRead,[])
}
Add(Registry,7457832,280,119)
{
HKey=2
Key="SoftwareMyProg"
Value="MyValue2"
NotEmpty=1
link(Data,4516213:Value,[])
}
Add(Registry,14141334,175,119)
{
HKey=2
Key="SoftwareMyProg"
Value="MyValue1"
NotEmpty=1
link(onRead,11484761:doEvent1,[])
}
Add(Hub,11484761,224,119)
{
link(onEvent1,4516213:doValue,[(269,125)(269,62)])
link(onEvent2,7457832:doWrite,[])
}
Add(Memory,4516213,294,56)
{
}

А так нет:
Add(Button,1734826,112,119)
{
Left=115
Top=130
link(onClick,14141334:doRead,[])
}
Add(Registry,7457832,238,112)
{
HKey=2
Key="SoftwareMyProg"
Value="MyValue2"
NotEmpty=1
}
Add(Registry,14141334,175,119)
{
HKey=2
Key="SoftwareMyProg"
Value="MyValue1"
NotEmpty=1
link(onRead,7457832:doWrite,[(243,125)(229,125)])
}
И на засыпку: нечто вроде этого
Add(Button,1734826,112,133)
{
Left=115
Top=130
link(onClick,14141334:doEnumValues,[])
}
Add(Registry,14141334,175,119)
{
HKey=2
Key="SoftwareMyProg"
Point(onEnumValue)
Point(doEnumValues)
link(onEnumValue,6067054:doEvent1,[])
}
Add(Registry,7839762,287,133)
{
HKey=2
Key="SoftwareMyProg"
Point(RType)
link(onRead,9318315:doMessage,[])
link(Value,7893335:Var1,[(300,107)])
}
Add(Message,9318315,343,133)
{
link(Message,7839762:RType,[(349,123)(331,123)(331,175)(300,175)])
link(Caption,7893335:Var2,[])
}
Add(Hub,6067054,224,126)
{
link(onEvent1,9536271:doValue,[(276,132)(276,69)])
link(onEvent2,7839762:doRead,[])
}
Add(Memory,9536271,350,63)
{
}
Add(GetDataEx,7893335,343,98)
{
link(Data,9536271:Value,[])
}
выдает для REG_DWORD тип данных 4, а для REG_MULTI_SZ - 7.
Я, собственно, к чему... Скажем скопировать полностью весь ключ со всеми параметрами.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
vip
#1.1контекстная реклама от партнеров
Ответов: 9906
Рейтинг: 351
#2: 2006-11-11 12:18:31 ЛС | профиль | цитата
Ваш второй вопрос переадресуйте Автору элемента Registry, которым Вы пользуетесь.
Он не из дистрибутива: точка RType отсутствует

В штатном варианте Ваш второй пример работает также как и первый.
карма: 9

0
Разработчик
Ответов: 26072
Рейтинг: 2122
#3: 2006-11-11 13:59:15 ЛС | профиль | цитата
Ни первый ни второй вариант штатным компонентом читаться не будет. NoEmpty=True, и кто читать будет пустой ключ, doRead не создает ключа?
Это Вик мой компонент мусолит, наверное. Так то была бета версия, и я от нее в дальнейшем отказался. оставив тольо точку onWrite. А у REG_DWORD действительно тип данных 4, а у REG_MULTI_SZ - 7.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#4: 2006-11-11 14:47:34 ЛС | профиль | цитата
nesco писал(а):
Ни первый ни второй вариант штатным компонентом читаться не будет

Ну не все такие ленивые: для тестирования, можно раздел и переменную-то и создать.
Тем более, что если делать копию, то кроме NoEmpty=True - вариантов-то и нет...

И в этом случае, правильный элемент должен работать одинаково в обоих случаях.
А почему неправильно работает у коллеги - ответить возможности у меня нет
карма: 9

0
Ответов: 18
Рейтинг: 0
#5: 2006-11-11 18:25:45 ЛС | профиль | цитата
Galkov писал(а):
В штатном варианте Ваш второй пример работает также как и первый.

Надо будет попробовать, потому что изменённый компонент создавал пустую копию параметра.
nesco писал(а):
А у REG_DWORD действительно тип данных 4, а у REG_MULTI_SZ - 7.

А какой тогда смысл от них, если их нельзя использовать в дальнейшем для данных DataType.
Galkov писал(а):
Тем более, что если делать копию, то кроме NoEmpty=True - вариантов-то и нет...

Так всё же есть возможность сделать копию параметра не зная его тип с помощью штатного компонента или мне придётся ворошить былые знания Delphi и писать свой компонент?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#6: 2006-11-11 20:31:08 ЛС | профиль | цитата
Вик, позволю себе заметить, что до сих пор вразумительно и не сказано
Чего надо-то


карма: 9

0
Ответов: 18
Рейтинг: 0
#7: 2006-11-11 21:41:57 ЛС | профиль | цитата
Вик писал(а):
Я, собственно, к чему... Скажем скопировать полностью весь ключ со всеми параметрами.

карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26072
Рейтинг: 2122
#8: 2006-11-11 23:49:24 ЛС | профиль | цитата
Вик, в HiAsm'e зарезервировано всего четыре типа данных, и они известны всем. Для HiAsm'a нет такого типа как REG_MULTI_SZ. Для чего и сделано было определение типа, чтобы можно было стрим преобразовать во что надо.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#9: 2006-11-12 00:10:59 ЛС | профиль | цитата
nesco писал(а):
Для чего и сделано было определение типа, чтобы можно было стрим преобразовать во что надо
Это вы о чем-то по женски
Выложи лучше, для размышления.
Что таковые нужны подтверждает первый пост, как мне кажется
Не должно быть очень сложно, в результате
карма: 9

0
Ответов: 18
Рейтинг: 0
#10: 2006-11-12 07:12:37 ЛС | профиль | цитата
nesco писал(а):
Вик, в HiAsm'e зарезервировано всего четыре типа данных, и они известны всем. Для HiAsm'a нет такого типа как REG_MULTI_SZ. Для чего и сделано было определение типа, чтобы можно было стрим преобразовать во что надо.

Дык записать в реестр REG_MULTI_SZ всё-равно не получится даже используя ваш переработанный компонент
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26072
Рейтинг: 2122
#11: 2006-11-13 00:00:26 ЛС | профиль | цитата
Вик, а на кой он тебе нужен -- этот REG_MULTI_SZ Да я и не ставил перед собой цели писать все реестровые типы.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#12: 2006-11-13 01:22:26 ЛС | профиль | цитата
nesco, имеет право на жизнь такой подход:
Если в реестре есть НЕКИЕ (даже наплевать какие) типы, то иметь возможность сделать запись ЛЮБОГО из них - это правильно.
Другими словами, именно для типа Stream (и только для него) мы должны предоставить возможность записи и ТИПА по выбору, а не только REG_BINARY, как сегодня.

А брать этот тип: либо с потолка (к примеру REG_RESOURCE_LIST=8), либо как у тебя (видимо) было - как дополнительный результат чтения. Возможно, что тоже только для DataType=Stream
карма: 9

0
Ответов: 18
Рейтинг: 0
#13: 2006-11-13 03:37:34 ЛС | профиль | цитата
nesco писал(а):
Вик, а на кой он тебе нужен -- этот REG_MULTI_SZ Да я и не ставил перед собой цели писать все реестровые типы.

Да я, собственно, размышлял как господин Galkov: даже если на данный момент работаю со строковыми типами, на будущее хотелось бы что-то более универсальное. Скажем нужно на время работы программы изменить параметр в реестре, соответственно если он уже существует надо сделать его копию (независимо от типа параметра), а при закрытии программы восстановить его в ПЕРВОНАЧАЛЬНОМ виде. Хотел сделать для себя контейнер, который делает вышесказанные действия, но получается, что будет работать только с разрешёнными в компоненте Реестр типами. Пытался использовать regedit.exe для экспорта ключа в файл, заменить строчку названия ключа и импортировать обратно, но при чтении строк из .reg файла читается какая-то ерунда.
code_565
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_565.txt [1.5KB] [150]
Разработчик
Ответов: 26072
Рейтинг: 2122
#14: 2006-11-13 12:44:15 ЛС | профиль | цитата
Вик, не читается потому, что текстовый формат Windows Registry Editor Version 5.00 -- Unicode. Если сделать конвертор Unicode --> ANSI (Windows), то будет читаться нормально.


[size=-2]------ Добавлено в 12:44
Galkov, ну давай поставим это в очередь на доделку. Тут сам компонент перешерстить надо, уж больно он навороченный.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#15: 2006-11-13 13:26:45 ЛС | профиль | цитата
Ну я и говорю - выкладывай рыбу (или ссылку).
Тем более, что в каком-то другом топике живо обсуждалась необходимость onWite. Смысл которого становится ненулевым, когда появляется альтернативный onError.
Остсутствие которого сегодня - тоже не самое лучшее...

[size=-2]------ Добавлено в 13:26
nesco, где-то на форуме даже выкладывал схему, которая из Stream-а извлекала REG_MULTI_SZ
Ничего военного - просто читаешь из этого Stream-а через DataToFile строки с типом dtAnsiString, и все...
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)