Ну да,
Мы даже посчитали, что картинок не 16, а всего 14 (и догадались убрать пробелы в посте)
Dilma, нет и не было сомнений в полезности связаной копии (специально все время называю другим именем). Но почему эти копии пучкуются одним элементом, непонятно. Надо то, чтобы Op2 элемента StrCat было связано с Op1 элемента Math. Или связать ТОЛЬКО поля Left элементов Label и Edit.
А
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
|
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
http://www.si-tech.ru/hiasm/down/hiasm_up3.rar
Galkov, так зачем опять все мешать в одну кучу? Копии это копии, а связанные св-ва это уже совсем другое. Тут думать еще надо.(кстате сомневаюсь в необходимости связывания св-тв разного типа). А думать надо хотя бы потому, что лобовое введение такой возможности сделает невозможным отследить все компоненты привязанные друг к другу через общее св-во пока все не перетыкаешь. В любом случае сейчас это не критично - ставим GlobalVar и связываем любые св-ва. |
|||
карма: 27 |
|
Ответов: 1305
Рейтинг: 29
|
|||
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 |
|
Ответов: 119
Рейтинг: 0
|
|||
Чегото не меняет цвет шрифта
[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 |
|
Ответов: 676
Рейтинг: 5
|
|||
Чегото не меняет цвет шрифта
Он на кнопке не может менятся [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 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
S_E_A, это к ссылкам отношения не имеет и было полагаю с момента введения MultiElementEx. Исправлено.
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
v258, какое-то магические буквосочетания .....
А пропадание этой связи происходит еще и при изменении списка левых точек. Добавлением четвертой тоски, или ее редактированием. Причем, при ваших магических буквосочетаниях в третьей. Dilma, я как раз ничего и не мешал, а, наоборот, пытался употреблять разные термины, не понимая, почему это все смешано. А логическая последовательность такова: 1) В среде появляются ССЫЛКИ, которые безусловно копируют ВСЕ свойства элемента-оригинала. В этом подходе можно даже класс элемента (схему мультика, по-простому) считать как одно из свойств. 2) Существует удивление, тем, что ВСЕ. Никто не выражал сомнения в полезности ссылочных копий вообще. 3) Вы приводите примеры полезности (в чем, кстати никто и не сомневается), в которых фактически используется одно свойство в элементе. 4) Удивление тем, что ВСЕ, продолжает оставаться. И даже начинает появляться уверенность (становится больше примеров), в том, что полезность этой фичи гораздо ниже, чем могла бы быть. Именно из-за того, что ВСЕ. Пучком |
|||
карма: 9 |
|
Ответов: 1305
Рейтинг: 29
|
|||
какое-то магические буквосочетания ..... В смысле - doClear? Я уж и сам так подумал Только переименование точки тоже ничего не дает... Наверное, какая-то неисправность |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
v258, дает
Но согласен, не всякое. Reset, например, исправно работает |
|||
карма: 9 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Dilma,
1) Поразмыслил над возможностью осуществить рекурсию методом "кольцевания". Ниже пример рекурсивной сортировки, зацикленный для изучения расхода памяти. Получилось. Но, как и в случае рекурсивной задачи по чистке реестра (помните, наверное), простым это кажется только с первого взгляда. А дальше начинаешь понимать, что Memory должен обладать св-м стека, а в этой задаче эту роль выполняет MultiElementEx, отрабатывая на всю катушку свои возможности МАССИВА. Но то, что ТЕОРЕТИЧЕСКИ, мы можем решать рекурсивные задачи, с момента появления MultiElementEx, это ФАКТ. Для этого достаточно ГАРАНТИРОВАТЬ реентерабельность HUB-а и метода ##add элемента MultiElementEx. 2) С быстродействием: впечатляет, в сравнении с "пузырьковыми" алгоритмами. А вот с памятью - беда. Сдаюсь - больше найти не могу (потому пример и выкладываю). Естественно, я добавил в деструкторы MultiElementEx и EditMultiEx чистку PstrList-ов, и сделал деструктор для класса TArray. Дальше фантазия кончилась............... P.S. В MultiElementEx деструктор и метод Clear я починил добавлением .MainClass, естественно.... |
|||
карма: 9 |
|
Ответов: 9906
Рейтинг: 351
|
|||
[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 |
|
Ответов: 1305
Рейтинг: 29
|
|||
Galkov,
Reset, например, исправно работает А вот doReset - не работает. И если удалить префикс "do" у всех точек, то опять не работает. В общем, что-то непонятное |
|||
карма: 0 |
|
Ответов: 117
Рейтинг: 9
|
|||
Компонент WinTools.
При компиляции выдает ошибку hiWinTools.pas(156,25) Error: Identifier not found "GetWindowModuleFileName" |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
v258, магия, однако.......
|
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Galkov, ок. Давайте по другому. Совсем недавно состоялся очень продуктивный разговор с AlexKir, где велось обсуждение почему нельзя делать непосредственные вставки на Pascal в схемы. Так вот нынешняя дискусия мне все больше именно это и напоменает. Вставки этьи делать нельзя потому, что так сложилось в развитие проекта и что не все еще готово для этого, ссылки на самого себя нельзя делать опять по той же причине - не было речи об этом да и не все опять таки же готово для этого(в среде), делать связными св-ва нельзя - ну не все еще для этого есть(!!!)
Тоже самое было и с самим компилятором тогда, тоже самое сейчас(уже было) с ссылками на элементы. В данный момент медленно подбираемся к быстродействию схем. Это и называется развитием проекта Вы же так ставите вопрос, словно кто-то что-то насильно не хочет делать, упершись рогами и копытами в пол. Просто не нужно форсировать события и тогда в дальнейшем сам собой образуется бонус(те самые статические и динамические компоненты)
Ну ведь по второму кругу опять пошли. Никто и нигде НЕ говорил, что все предложенное не нужно и не стоит это делать. Ну есть компоненты,а не прямые вставки кода, есть ссылки на элементы в виде связных св-тв пучком, есть в конце концов невозможность вставить ссылку на самого себя, ну и что? Разве это означает, что никаких других средств делать компоненты и вставлять код не будет? Что связывание св-тв пучком это аксиома которую нельзя ничем опровергнуть? Или ссылки на самого себя это вообще событие не вероятное? Словно на ссылках прогресс полностью остановился на всегда. Никто ведь пользоваться не заставляет. А вот если чего-то не хватает или какие-то нововведения натолкнули на новые мысли так нужно их высказывать, причем конечно же желательно с примерами и описанием. Так когда-то было с элементами вкладки Helpers(автор Evgig), так когда-то было с палитрой компонент(автор AVC), так же было с MultiElementEx(правда не реализовано еще). |
|||
карма: 27 |
|