Вверх ↑
Этот топик читают: Гость
Главный модератор
Ответов: 2999
Рейтинг: 396
#571: 2013-12-29 22:39:16 ЛС | профиль | цитата
Netspirit писал(а):
А одинаковые имена верхних и нижних точек корректно парсятся средой?

Нет некорректно.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 758
Рейтинг: 112
#572: 2013-12-30 12:36:30 ЛС | профиль | цитата
Nic писал(а):
Если у Вас есть своё мнение по данному вопросу, то принимаются любые идеи
Предлагаю использовать префиксы так же как и для точек Work и Event
...
[Property]
Property=...
...
[Methods]
doProperty=...|1|
onProperty=...|2|
inProperty=...|3|
toProperty=...|4|
...
карма: 1

0
файлы: 1code_32714.txt [119B] [310]
Главный модератор
Ответов: 2999
Рейтинг: 396
#573: 2013-12-30 14:16:42 ЛС | профиль | цитата
miver писал(а):
Предлагаю использовать префиксы так же как и для точек Work и Event

Идея хорошая и она озвучивалась ранее. Более того ее предложил Dilma, когда проблема обсуждалась с ним. Но Вы можете представить объем изменений в пакете, необходимый для реализации данной идеи? Если бы эта идея прозвучала год- полтора назад, то наверное согласился на такие изменения.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 758
Рейтинг: 112
#574: 2013-12-30 15:03:05 ЛС | профиль | цитата
Nic писал(а):
Но Вы можете представить объем изменений в пакете, необходимый для реализации данной идеи?
К сожалению не представляю
Если проблема в изменениях всех файлов настроек, то могу сделать программку парсер для автоматизации.
А еще можно сделать, чтоб эти префиксы добавлялись самой средой.
карма: 1

0
Ответов: 4628
Рейтинг: 749
#575: 2013-12-30 15:13:49 ЛС | профиль | цитата
toProperty - по-моему, не очень корректно, более логично смотрелось бы outProperty. Да и название верхней точки должно совпадать с именем свойства
Но я бы предпочел:

Property=...|3|
vProperty=...|4|
Или все-же название нижней точки как-то изменить.

Ещё мне кажется, что называть методы и события в виде doProperty/onProperty некорректно по правилам речи. Англоязычные пользователи могут недоумевать. Название метода/события - это действия (глаголы), а не существительные. Правильно было бы: doSetProperty/doGetProperty и onSetProperty/onGetProperty для методов установки/получения значений, и более соответствующие для других методов.



карма: 26

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#576: 2013-12-31 12:43:39 ЛС | профиль | цитата
Почему бы не посмотреть в сторону других символов префикса:
#ini
.Property=...|3|
Кстати, точка нейтрально смотрится на панели свойств:
dotproperty.png
Жаль не работает точка в имени функции:
#hws
func .X
return(this.codename + '.X')
end
хотя для динамически создаваемой функции прекрасно работает:
#hws
var_prop = '.X'
method(var_prop)
return(this.codename && code(cgt.get_func_name()))
end
------------ Дoбавленo в 00.18:
К сожалению, работает для всех вариантов определения имени функции только символ подчеркивания «_».
------------ Дoбавленo в 08.06:
На мой взгляд (после ночи раздумий) идеально на роль префикса имени нижней точки подходит символ точки «.», так как несет ту же смысловую нагрузки, что и другие префиксы do... и on..., не перегружает визуальное восприятие панели свойств и упрощает реализацию кода hws для нижних точек, которая будет выглядеть одинаково для реализации чтения свойства объекта с любым именем:
#hws
func .Name
return(this.codename + code(cgt.get_func_name()))
end
и динамически определяемая:
#hws
method(".Name")
return(this.codename && code(cgt.get_func_name()))
end
Для этого надо заставить кодогенератор понимать точку, как часть имени идентификатора функции.
------------ Дoбавленo в 12.43:
Экспериментальная версия кодогенератора с поддержкой имён методов с точкой, например: .Property
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1dotproperty.png [3.9KB] [817]
Главный модератор
Ответов: 2999
Рейтинг: 396
#577: 2014-01-02 23:33:03 ЛС | профиль | цитата
На SVN обновленный кодогенератор с поддержкой наличия в имени нижней точки символа «.», например:
#ini
...
.Property=...|3|
Bounds.Width=...|3|
Bounds.Height=...|3|
...
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 758
Рейтинг: 112
#578: 2014-01-03 01:02:29 ЛС | профиль | цитата
Nic, Я попробовал новый кодогенератор на другом пакете "FreeBASIC", но выбила ошибка "Stack overflow" и сразу же закрылся HiAsm
Можешь подсказать, в чем проблема
Прикрепил папку пакета без CodeGen.dll и libboost_regex-mgw34-1_50.dll
Запускал пустую форму.
Компилятор Copy
карма: 1

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#579: 2014-01-03 04:52:32 ЛС | профиль | цитата
Пока удалось только определить, что падение происходит после вызова WinAPI в модуле ntdll.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 1841
Рейтинг: 369
#580: 2014-01-03 12:25:22 ЛС | профиль | цитата
1
карма: 1
0
Ответов: 758
Рейтинг: 112
#581: 2014-01-03 23:37:51 ЛС | профиль | цитата
CriDos, add_case и add_struct не вызывают ошибку. Это рекурсивная функция.
Для подтверждения можешь скачать предыдущую версию codegen_fb_old.rar и все заработает.
------------ Дoбавленo в 23.37:
Дополнительно:
Оставил в hiMainForm только
func init

end

func doStart()

end
Все равно вылетает
карма: 1

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#582: 2014-01-04 12:01:00 ЛС | профиль | цитата
В одной из предыдущих ревизий на SVN был выложен кодогенератор с добавленной функцией split() о чём было сообщено в этой теме 4 декабря http://forum.hiasm.com/forum.html?q=3&p=263197#p263197. Подробности здесь: Работа со строками. Поэтому возник конфликт с одноимённой функцией из файла hiSys.hws. Для решения проблемы достаточно переименовать функцию в файле hiSys.hws.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
1
Голосовали:miver
Главный модератор
Ответов: 2999
Рейтинг: 396
#583: 2014-01-12 12:17:30 ЛС | профиль | цитата
В кодогенератор добавлена "заплатка", исправляющая получение аргументов метода doWork(data, index) в контейнерах:

Old VisualContainer.hws

#hws
...
func doWork(data, index)
if(len(index))
if(len(data))
event(index, data)
else
event(index)
end
else
event(data)
end
end
New VisualContainer.hws

#hws
...
func doWork(data, index)
event(index, data)
end
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#584: 2014-01-15 13:09:07 ЛС | профиль | цитата
В контейнеры добавлена возможность создания динамического списка объектов:
dynamic_list_points.png
Примеры использования:
http://svn.hiasm.com/packs/CNET/Example/graphics/DynamicBall_2.sha
http://svn.hiasm.com/packs/CNET/Example/Controls/ChildPanelDynamic.sha
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1dynamic_list_points.png [3.9KB] [722]
Главный модератор
Ответов: 2999
Рейтинг: 396
#585: 2014-01-21 02:35:59 ЛС | профиль | цитата
Создание нового элемента пакета CNET при помощи вкладки ClassMembers. Пример построения нового элемента находится здесь. Для построения используем компилятор copy:
build element
Перемещаем полученные файлы элемента в соответствующие папки:
install element
Для тестирования элемента используем тестовую схему, не забывая переключаться на основной компилятор пакета:
build test
И наконец проверяем работу нового элемента:
cnet_element_test.png
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
2
файлы: 5cnet_custom_element_compiler.png [69.7KB] [932], cnet_build_element.png [67.3KB] [981], cnet_element_test_compiler.png [64.3KB] [958], cnet_element_test.png [73.6KB] [847], classtest.sha [1.2KB] [507]
Голосовали:miver, iarspider
Сообщение
...
Прикрепленные файлы
(файлы не залиты)