Вверх ↑
Этот топик читают: Гость
Ответов: 1258
Рейтинг: 47
#1: 2019-03-04 17:01:37 ЛС | профиль | цитата
Предлагаю собирать коллекцию странностей компонентов в одном месте, здесь.

Пространность счетчика числа строк в компоненте Мемо уже упоминал - если даже очистить все строки, все равно будет на нижней точке писать что содержится одна строка. В невизуальном компоненте StringList этого бага или фичи нет..

Компонент для записи / чтения в реестр - при автостарте программы любые попытки записать чтото в реестр сопровождаются ошибкой String debug "Не удалось записать данные в реестр" Что то в этом духе. Тут выложил схему для тестирования методов автозагрузок:
http://forum.hiasm.com/topic/67286/1#
Пришлось отказаться от многих функций, в тч привязка к расширениям программы, тк при автостарте пишушие в реестр компоненты выдают такую табличку.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
vip
#1.1контекстная реклама от партнеров
Ответов: 4612
Рейтинг: 746
#2: 2019-03-04 17:32:02 ЛС | профиль | цитата
Если автозапуск через реестр (в HKLM), то ветки HKEY_CURRENT_USER для записи может в момент запуска не существовать. А запись в HKLM требует запуска от администратора.
карма: 26

0
Ответов: 1924
Рейтинг: 172
#3: 2019-03-04 21:23:46 ЛС | профиль | цитата
Aziz писал(а):
если даже очистить все строки, все равно будет на нижней точке писать что содержится одна строка.

Ну так она и есть - только пустая. Можно просто посчитать кол-во символов во всём memo, если нужно убедиться, что он пуст.

--- Добавлено в 2019-03-04 21:25:02

Aziz писал(а):
при автостарте программы

Какое конкретно событие вызывается? onCreate?

Редактировалось 1 раз(а), последний 2019-03-04 21:25:02
карма: 9
0
Ответов: 1341
Рейтинг: 31
#4: 2019-03-04 22:01:40 ЛС | профиль | цитата
Netspirit писал(а):
А запись в HKLM требует запуска от администратора.


а можно вроде как и обойти это....,

добавляем имя параметра "путь до программы"
данные пишем "~ RUNASADMIN"
ключ CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

после этих манипуляций, просто делаем перезапуск программы, проверяем записаны ли у нас данные уже (запуск от админа) ну и уже юзаем ветку HKLM без предоставления прав админа, ну если конечно не нужны права на запись в CURRENT_USER

Редактировалось 2 раз(а), последний 2019-03-04 22:02:04
карма: 2

0
Ответов: 1258
Рейтинг: 47
#5: 2019-03-04 23:32:44 ЛС | профиль | цитата
Netspirit, пробовал сначала и через local machine. Потом current user. Эффект тот же. Похоже не зависит от ветки, тк даже с автозапуском через ярлык все равно ругалось о записи в реестр, нашел причину - там схема привязки расширений к программе опять же состояла из элементов реестра.
Помню как то раньше я делал мод компонента реестра чтобы в свойствах можно было отключать это сообщение об ошибке. Теперь уже неинайду наверное.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 4612
Рейтинг: 746
#6: 2019-03-05 11:53:56 ЛС | профиль | цитата
А, ты про само сообщение. Так его вообще надо убрать и добавить событие onError. Если знаешь Delphi - убрать сообщение можешь сам в файле hiRegistry.pas.
карма: 26

0
Ответов: 1258
Рейтинг: 47
#7: 2019-03-06 01:31:44 ЛС | профиль | цитата
3042, да. Netspirit, тоже да) Правил когда то по аналогии. Хоть дельфи не знаю, чисто используя английский + логику техническую.

Редактировалось 1 раз(а), последний 2019-03-06 01:33:06
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1258
Рейтинг: 47
#8: 2019-05-27 00:34:46 ЛС | профиль | цитата
Вот еще кажущаяся странность, приведшая к ступору и багам) Всегда считал что метод doText обладает наивысшим приоритетом, но нет, он оказывается при подключенной верхней точке берет данные исключительно оттуда. Впрочем, все это описано в справке помню где-то.


Add(MainForm,2953706,49,413)
{
Caption="Buggy feature of Memo by Aziz"
link(onCreate,1583879:doEvent1,[])
}
Add(StrList,2025553,372,413)
{
Strings=#7:default|
link(Str,6171452:Text,[])
}
Add(Message,12308543,371,476)
{
link(Message,2025553:Text,[(377,460)(378,460)])
}
Add(Hub,1583879,224,427)
{
link(onEvent1,6267044:doData,[(266,433)(266,405)])
link(onEvent2,12308543:doMessage,[(308,440)(308,482)])
}
Add(DoData,6267044,294,399)
{
Data=String(str2)
link(onEventData,2025553:doText,[(349,405)(349,440)])
}
Add(StrList,6171452,372,343)
{
Strings=#7:default|11:upper point|4:text|
}

карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#9: 2019-05-27 02:17:13 ЛС | профиль | цитата
Aziz писал(а):
он оказывается при подключенной верхней точке берет данные исключительно оттуда

Эта фича исключительно StrList-a, она так испокон веков работает.
карма: 22

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