Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#61: 2005-05-02 10:51:34 ЛС | профиль | цитата
Ну да,
Мы даже посчитали, что картинок не 16, а всего 14 (и догадались убрать пробелы в посте)
Dilma, нет и не было сомнений в полезности связаной копии (специально все время называю другим именем). Но почему эти копии пучкуются одним элементом, непонятно. Надо то, чтобы Op2 элемента StrCat было связано с Op1 элемента Math. Или связать ТОЛЬКО поля Left элементов Label и Edit.
А
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#62: 2005-05-02 15:03:07 ЛС | профиль | цитата
http://www.si-tech.ru/hiasm/down/hiasm_up3.rar

Galkov, так зачем опять все мешать в одну кучу? Копии это копии, а связанные св-ва это уже совсем другое. Тут думать еще надо.(кстате сомневаюсь в необходимости связывания св-тв разного типа). А думать надо хотя бы потому, что лобовое введение такой возможности сделает невозможным отследить все компоненты привязанные друг к другу через общее св-во пока все не перетыкаешь. В любом случае сейчас это не критично - ставим GlobalVar и связываем любые св-ва.
карма: 27
0
Ответов: 1305
Рейтинг: 29
#63: 2005-05-02 17:15:13 ЛС | профиль | цитата

http://www.si-tech.ru/hiasm/down/hiasm_up3.rar

Sha-файлы теперь открываются корректно, но все равно остается небольшой глючок (было с самого начала) - для примера привожу схему[code:1]Add(MultiElementEx,15821152,175,175) {
@Hint='Секундомер'
}
BEGIN_SDK
Pos(0,0)
Add(EditMultiEx,6071492,3,3)
{
WorkCount='doStart','doStop','doClear'
EventCount='onTime'
VarCount='Hour','Min','Sec'
Width=139
Height=130
link(doStart,11952950:doTimer,[(33,27)])
link(doStop,11952950:doStop,[(33,34)])
link(doClear,16350085:doEvent1,[(33,23)(33,69)])
}
Add(Timer,11952950,63,21)
{
Enable=1
}
Add(Hub,16350085,63,63)
{
OutCount=6
}
END_SDK
[/code:1]
Если сделать ссылку на этот мультик, то внутри него пропадает одна связь - от точки doClear до Hub'a. Причем, проследить закономерность мне не удалось, в других мультиках связи не рвутся, а вот в этом конкретном - всегда. Не скажу, что это сильно напрягает, но почему так?
карма: 0

0
Ответов: 119
Рейтинг: 0
#64: 2005-05-02 17:23:53 ЛС | профиль | цитата
Чегото не меняет цвет шрифта
[code:1]Add(Button,9176197,105,35) {
Left=10
Top=30
Width=135
Font=[MS Sans Serif,8,0,0,1]
Point(doFont)
link(onClick,13101346:doFont,[])
}
Add(Font,13101346,154,35)
{
Font=[Verdana,12,1,255,204]
link(onFont,9176197:doFont,[(196,41)(196,25)(95,25)(95,48)])
}
[/code:1]
карма: 0

0
Ответов: 676
Рейтинг: 5
#65: 2005-05-02 18:12:56 ЛС | профиль | цитата
Чегото не меняет цвет шрифта

Он на кнопке не может менятся
[code:1]Add(Font,13101346,203,203) {
Font=[Verdana,12,1,255,204]
link(onFont,5772495:doFont,[(245,209)(245,193)(130,193)(130,216)])
}
Add(Label,5772495,147,203)
{
Left=140
Top=200
Font=[MS Sans Serif,8,0,0,1]
Point(doFont)
link(onClick,13101346:doFont,[])
}
[/code:1]
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#66: 2005-05-02 18:56:58 ЛС | профиль | цитата
S_E_A, это к ссылкам отношения не имеет и было полагаю с момента введения MultiElementEx. Исправлено.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#67: 2005-05-02 19:14:27 ЛС | профиль | цитата
v258, какое-то магические буквосочетания .....
А пропадание этой связи происходит еще и при изменении списка левых точек. Добавлением четвертой тоски, или ее редактированием. Причем, при ваших магических буквосочетаниях в третьей.

Dilma, я как раз ничего и не мешал, а, наоборот, пытался употреблять разные термины, не понимая, почему это все смешано.
А логическая последовательность такова:
1) В среде появляются ССЫЛКИ, которые безусловно копируют ВСЕ свойства элемента-оригинала. В этом подходе можно даже класс элемента (схему мультика, по-простому) считать как одно из свойств.
2) Существует удивление, тем, что ВСЕ. Никто не выражал сомнения в полезности ссылочных копий вообще.
3) Вы приводите примеры полезности (в чем, кстати никто и не сомневается), в которых фактически используется одно свойство в элементе.
4) Удивление тем, что ВСЕ, продолжает оставаться. И даже начинает появляться уверенность (становится больше примеров), в том, что полезность этой фичи гораздо ниже, чем могла бы быть. Именно из-за того, что ВСЕ. Пучком
карма: 9

0
Ответов: 1305
Рейтинг: 29
#68: 2005-05-02 19:40:24 ЛС | профиль | цитата

какое-то магические буквосочетания .....

В смысле - doClear? Я уж и сам так подумал Только переименование точки тоже ничего не дает...

Наверное, какая-то неисправность
карма: 0

0
Ответов: 9906
Рейтинг: 351
#69: 2005-05-02 19:50:22 ЛС | профиль | цитата
v258, дает
Но согласен, не всякое. Reset, например, исправно работает
карма: 9

0
Ответов: 9906
Рейтинг: 351
#70: 2005-05-02 20:11:29 ЛС | профиль | цитата
Dilma,
1) Поразмыслил над возможностью осуществить рекурсию методом "кольцевания". Ниже пример рекурсивной сортировки, зацикленный для изучения расхода памяти.
Получилось. Но, как и в случае рекурсивной задачи по чистке реестра (помните, наверное), простым это кажется только с первого взгляда. А дальше начинаешь понимать, что Memory должен обладать св-м стека, а в этой задаче эту роль выполняет MultiElementEx, отрабатывая на всю катушку свои возможности МАССИВА.
Но то, что ТЕОРЕТИЧЕСКИ, мы можем решать рекурсивные задачи, с момента появления MultiElementEx, это ФАКТ. Для этого достаточно ГАРАНТИРОВАТЬ реентерабельность HUB-а и метода ##add элемента MultiElementEx.
2) С быстродействием: впечатляет, в сравнении с "пузырьковыми" алгоритмами. А вот с памятью - беда. Сдаюсь - больше найти не могу (потому пример и выкладываю).
Естественно, я добавил в деструкторы MultiElementEx и EditMultiEx чистку PstrList-ов, и сделал деструктор для класса TArray. Дальше фантазия кончилась...............

P.S. В MultiElementEx деструктор и метод Clear я починил добавлением .MainClass, естественно....
карма: 9

0
Ответов: 9906
Рейтинг: 351
#71: 2005-05-02 20:12:09 ЛС | профиль | цитата
[code:1]Add(MainForm,6363536,14,42) {
Left=20
Top=105
Width=203
Font=[MS Sans Serif,8,0,0,1]
Caption="RecursiveSort"
Point(onDblClick)
link(onCreate,4114911:doEvent1,[])
link(onDblClick,4114911:doEvent2,[])
}
Add(Hub,4114911,63,77)
{
InCount=2
OutCount=5
link(onEvent1,4995746:doClear,[(201,83)(201,104)])
link(onEvent2,13181770:doRandomize,[(154,90)(154,104)])
link(onEvent3,8364578:doFor,[])
link(onEvent4,4995746:doSave,[(104,104)(104,132)])
}
Add(For,8364578,112,91)
{
End=500
IncludeEnd=1
link(onEvent,13181770:doRandom,[])
link(End,4112218:Text,[])
}
Add(ListBox,4995746,210,91)
{
Left=20
Top=40
Width=150
Height=215
Font=[MS Sans Serif,8,0,0,1]
FileName="Array.txt"
}
Add(Random,13181770,161,91)
{
Min=-10000
Max=10000
link(onRandom,4995746:doAdd,[])
}
Add(InfoTip,5732519,56,21)
{
Info='Прием стартового массива'
Font=[MS Sans Serif,8,0,0,1]
Width=211
Height=130
}
Add(Edit,4112218,119,42)
{
Left=20
Top=10
Width=55
Height=25
Font=[MS Sans Serif,8,0,0,1]
Text="1000"
DataType=1
}
Add(MultiElementEx,11297932,427,175)
{
Mode=1
link(Back,2252825:doWork1,[(470,181)(470,158)(270,158)])
}
BEGIN_SDK
Pos(0,0)
Add(EditMultiEx,16571958,3,3)
{
WorkCount='##add','##select','##delete'
EventCount='Back'
VarCount='##count'
Width=488
Height=318
link(##add,6418672:doValue,[(3,20)])
}
Add(GetDataEx,7504539,168,56)
{
link(Data,12928125:Array,[])
}
Add(HubEx,16644291,343,182)
{
link(onEvent,2678914:doWork1,[])
}
Add(Hub,1910364,77,126)
{
OutCount=3
link(onEvent1,8086485:doCompare,[(117,132)(117,83)])
link(onEvent2,6292315:doCompare,[])
link(onEvent3,2466564:doEnum,[(117,146)(117,195)])
}
Add(GetDataEx,16712297,70,196)
{
link(Data,6885029:Item,[(83,184)(34,184)])
}
Add(ArrayEnum,6885029,28,119)
{
link(onItem,15736121:doSwitch,[(69,125)(69,237)])
link(onEndEnum,1910364:doEvent1,[])
link(Array,10524593:Var2,[])
}
Add(RealArray,4382818,217,14)
{
RealArray=[]
}
Add(IndexToChanel,3944494,266,77)
{
Point(Index)
link(onEvent1,10225787:doNext,[])
link(onEvent2,656228:doNext,[])
link(Index,16043922:Value,[])
}
Add(RealArray,12928125,175,14)
{
RealArray=[]
}
Add(ChanelToIndex,2678914,357,189)
{
Point(Data)
link(onIndex,16043922:doValue,[(439,195)(439,54)(258,54)(258,20)])
}
Add(If_else,6653222,441,231)
{
Type=4
link(onFalse,16644291:doWork1,[(481,244)(481,183)(347,183)])
link(Op1,2390375:Var3,[(447,223)(434,223)(434,268)])
}
Add(DoData,9035620,175,77)
{
link(onEventData,7028405:doWork1,[(214,83)])
link(Data,7504539:Var2,[])
}
Add(Switch,15736121,77,231)
{
Point(onOn)
Point(onOff)
Point(DataOn)
Point(DataOff)
link(onOn,8489478:doAdd,[(248,244)(248,216)])
link(onOff,978038:doAdd,[])
link(DataOn,16712297:Var2,[])
link(DataOff,16712297:Var3,[(90,205)])
}
Add(ArrayEnum,2466564,161,189)
{
link(onItem,14968761:doEvent1,[])
link(Array,9196323:Var2,[])
}
Add(GetDataEx,10524593,21,56)
{
link(Data,6418672:Value,[])
}
Add(ArrayRW,8489478,266,196)
{
link(onRead,2678914:doWork2,[])
link(Array,12200569:Var3,[(272,125)])
link(Index,656228:Count,[(279,177)(321,177)])
}
Add(ArrayRW,978038,392,231)
{
link(onRead,6653222:doCompare,[])
link(Array,7504539:Var3,[(398,65)])
link(Index,10225787:Count,[])
}
Add(GetDataEx,12200569,210,116)
{
link(Data,4382818:Array,[])
}
Add(DoData,1033972,308,189)
{
link(onEventData,16644291:doWork2,[])
}
Add(Counter,656228,315,84)
{
Max=2000000000
}
Add(Counter,10225787,399,77)
{
Max=2000000000
}
Add(ArrayRW,16132226,252,280)
{
Point(Count)
link(Array,9196323:Var3,[(258,177)])
link(Index,2466564:Index,[(265,268)(174,268)])
link(Value,2390375:Var1,[(272,268)])
}
Add(Hub,14968761,203,189)
{
OutCount=5
link(onEvent1,1033972:doData,[])
link(onEvent2,8489478:doRead,[])
link(onEvent3,978038:doRead,[(253,209)(253,237)])
link(onEvent4,3944494:doEvent,[(243,216)(243,83)])
link(onEvent5,16132226:doWrite,[(243,223)(243,293)])
}
Add(GetDataEx,9196323,154,168)
{
link(Data,10524593:Var3,[(167,65)])
}
Add(GetDataEx,2390375,350,259)
{
link(Data,2678914:Data,[])
}
Add(Memory,16043922,266,14)
{
}
Add(If_else,6292315,126,133)
{
Type=2
Op2=Integer(1)
link(onTrue,9378557:doData,[])
link(Op1,4382818:Count,[(132,117)(230,117)])
}
Add(If_else,8086485,126,77)
{
Type=2
Op2=Integer(1)
link(onTrue,9035620:doData,[])
link(Op1,12928125:Count,[(132,56)(188,56)])
}
Add(Memory,6418672,28,14)
{
link(onData,6885029:doEnum,[(68,20)(68,57)(18,57)(18,125)])
}
Add(DoData,9378557,175,133)
{
link(onEventData,7028405:doWork2,[])
link(Data,12200569:Var1,[(181,125)])
}
Add(HubEx,7028405,210,126)
{
link(onEvent,16571958:Back,[(491,139)])
}
END_SDK
Add(Hub,3293646,175,210)
{
link(onEvent1,3722041:doData,[(215,216)(215,181)])
link(onEvent2,4476606:doProcessMessages,[])
}
Add(Hub,8954268,280,175)
{
link(onEvent1,11297932:##add,[])
link(onEvent2,1818104:doOperation,[])
}
Add(DoData,3722041,224,175)
{
link(onEventData,2252825:doWork2,[])
link(Data,4995746:Array,[])
}
Add(HubEx,2252825,266,168)
{
link(onEvent,8954268:doEvent1,[])
}
Add(Math,1818104,329,182)
{
OpType=1
Op2=1
ResultType=0
link(onResult,8751037:doEvent1,[])
link(Op1,11297932:##count,[(335,172)(368,172)(368,224)(433,224)])
}
Add(Hub,8751037,378,182)
{
link(onEvent1,11297932:##select,[])
link(onEvent2,11297932:##delete,[])
}
Add(Application,4476606,224,217)
{
}
Add(Button,16138926,28,203)
{
Left=110
Top=10
Width=60
Height=25
Font=[MS Sans Serif,8,0,0,1]
Caption="Sorting"
link(onClick,14389929:doSwitch,[])
}
Add(Repeat,8556665,126,210)
{
Check=1
link(onRepeat,3293646:doEvent1,[])
}
Add(Switch,14389929,77,203)
{
DataOn=String(Stop)
DataOff=String(Sorting)
Point(onOn)
Point(onOff)
link(onSwitch,16138926:doCaption,[(119,209)(119,193)(18,193)(18,209)])
link(onOn,8556665:doRepeat,[])
link(onOff,8556665:doStop,[])
}[/code:1]
карма: 9

0
Ответов: 1305
Рейтинг: 29
#72: 2005-05-02 22:01:42 ЛС | профиль | цитата
Galkov,

Reset, например, исправно работает

А вот doReset - не работает. И если удалить префикс "do" у всех точек, то опять не работает. В общем, что-то непонятное
карма: 0

0
Ответов: 117
Рейтинг: 9
#73: 2005-05-02 22:44:10 ЛС | профиль | цитата
Компонент WinTools.
При компиляции выдает ошибку

hiWinTools.pas(156,25) Error: Identifier not found "GetWindowModuleFileName"
карма: 0

0
Ответов: 9906
Рейтинг: 351
#74: 2005-05-02 22:56:05 ЛС | профиль | цитата
v258, магия, однако.......
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#75: 2005-05-02 23:52:39 ЛС | профиль | цитата
Galkov, ок. Давайте по другому. Совсем недавно состоялся очень продуктивный разговор с AlexKir, где велось обсуждение почему нельзя делать непосредственные вставки на Pascal в схемы. Так вот нынешняя дискусия мне все больше именно это и напоменает. Вставки этьи делать нельзя потому, что так сложилось в развитие проекта и что не все еще готово для этого, ссылки на самого себя нельзя делать опять по той же причине - не было речи об этом да и не все опять таки же готово для этого(в среде), делать связными св-ва нельзя - ну не все еще для этого есть(!!!)

Тоже самое было и с самим компилятором тогда, тоже самое сейчас(уже было) с ссылками на элементы. В данный момент медленно подбираемся к быстродействию схем. Это и называется развитием проекта Вы же так ставите вопрос, словно кто-то что-то насильно не хочет делать, упершись рогами и копытами в пол. Просто не нужно форсировать события и тогда в дальнейшем сам собой образуется бонус(те самые статические и динамические компоненты)


Ну ведь по второму кругу опять пошли. Никто и нигде НЕ говорил, что все предложенное не нужно и не стоит это делать. Ну есть компоненты,а не прямые вставки кода, есть ссылки на элементы в виде связных св-тв пучком, есть в конце концов невозможность вставить ссылку на самого себя, ну и что? Разве это означает, что никаких других средств делать компоненты и вставлять код не будет? Что связывание св-тв пучком это аксиома которую нельзя ничем опровергнуть? Или ссылки на самого себя это вообще событие не вероятное? Словно на ссылках прогресс полностью остановился на всегда. Никто ведь пользоваться не заставляет. А вот если чего-то не хватает или какие-то нововведения натолкнули на новые мысли так нужно их высказывать, причем конечно же желательно с примерами и описанием. Так когда-то было с элементами вкладки Helpers(автор Evgig), так когда-то было с палитрой компонент(автор AVC), так же было с MultiElementEx(правда не реализовано еще).
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)