Вверх ↑
Этот топик читают: Гость
Ответов: 20
Рейтинг: 2
#1: 2012-09-08 08:50:01 ЛС | профиль | цитата
Потребовалось получить от компонента событие очистки, при этом оставив onChange и для других нужд.
Накидал такой вот примерчик реализации, но кажется мне, что он может подвести.

code_29012.txt

Может есть более простой и более действенный вариант?
------------ Дoбавленo в 08.49:
Прибрался и убрал лишнее
Add(MainForm,2953706,315,224)
{
Width=431
Height=310
Position=1
}
Add(StringTableMT,3798898,623,168)
{
Left=160
Top=10
Width=145
Height=240
Columns=#8:Колонка1|
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(onChange)
Point(doReplace)
link(onChange,14780221:doChangeTo,[])
}
Add(RadioButton,4312249,770,133)
{
Left=320
Top=20
Width=85
Caption="Добавление"
}
Add(RadioButton,13790584,770,182)
{
Left=320
Top=75
Width=85
Caption="Очистка"
}
Add(Button,7349952,441,175)
{
Left=10
Top=100
Width=120
Caption="Событие: очистка"
link(onClick,4012338:doClearTo,[])
}
Add(RadioButton,15553635,770,231)
{
Left=320
Top=50
Width=85
Caption="Удаление"
}
Add(Button,269204,441,217)
{
Left=10
Top=65
Width=120
Caption="Событие: удаление"
Data=Integer(0)
link(onClick,4012338:doDeleteTo,[(503,223)(503,188)])
}
Add(MultiElementEx,4012338,532,168)
{
link(onInsertTo,3798898:doAdd,[])
link(onClearTo,3798898:doClear,[])
link(onDeleteTo,3798898:doDelete,[])
link(onReplaceTo,3798898:doReplace,[(580,195)(580,209)])
}
BEGIN_SDK
Add(EditMultiEx,14450334,21,21)
{
WorkCount=#10:doInsertTo|9:doClearTo|10:doDeleteTo|11:doReplaceTo|
EventCount=#10:onInsertTo|9:onClearTo|10:onDeleteTo|11:onReplaceTo|
VarCount=#8:ActionTo|
Width=384
link(doInsertTo,6832762:doWork1,[(73,27)(73,27)])
link(doClearTo,6832762:doWork2,[(53,34)(62,34)(62,36)(62,36)])
link(doDeleteTo,6832762:doWork3,[(61,41)(61,62)])
link(doReplaceTo,6832762:doWork4,[(53,48)(53,69)])
link(ActionTo,3819410:Value1,[(27,169)(174,169)])
}
Add(MT_MultiMem,3819410,168,105)
{
Count=1
link(onData,9821425:doEvent,[(216,111)(216,48)])
}
Add(IndexToChanel,9821425,231,42)
{
Count=4
Point(Data)
link(onEvent1,14450334:onInsertTo,[(316,27)])
link(onEvent2,14450334:onClearTo,[(321,34)])
link(onEvent3,14450334:onDeleteTo,[(326,41)])
link(onEvent4,14450334:onReplaceTo,[(326,48)])
link(Data,6832762:Data,[(237,30)(163,30)(163,86)(90,86)])
}
Add(ChanelToIndex,6832762,84,42)
{
Count=4
Point(Data)
link(onIndex,3819410:doValue,[(142,48)(142,111)])
}
END_SDK
Add(MultiElementEx,14780221,686,175)
{
link(Action-in,4012338:ActionTo,[(686,147)(657,235)(538,235)])
link(onInsertChange,4312249:doSelect,[(744,181)(744,139)])
link(onClearChange,13790584:doSelect,[])
link(onDeleteChange,15553635:doSelect,[(744,195)(744,237)])
}
BEGIN_SDK
Add(EditMultiEx,3548970,21,21)
{
WorkCount=#10:doChangeTo|
EventCount=#14:onInsertChange|13:onClearChange|14:onDeleteChange|15:onReplaceChange|
DataCount=#9:Action-in|
link(doChangeTo,10431933:doEvent,[(67,27)(67,97)])
}
Add(IndexToChanel,10431933,119,91)
{
Count=4
Data=Integer(1)
Point(Index)
link(onEvent1,3548970:onInsertChange,[(236,97)(236,27)])
link(onEvent2,3548970:onClearChange,[(236,104)(236,34)])
link(onEvent3,3548970:onDeleteChange,[(236,111)(236,41)])
link(onEvent4,3548970:onReplaceChange,[(236,118)(236,48)])
link(Index,3548970:Action-in,[(125,56)(27,56)])
}
END_SDK
Add(Button,27469,441,133)
{
Left=10
Top=35
Width=120
Caption="Событие: добавление"
Data=String(Строка)
link(onClick,4012338:doInsertTo,[(503,139)(503,174)])
}


Но вопрос все равно актуален
карма: 1

0
файлы: 1code_29012.txt [1.8KB] [105]
Ответов: 16884
Рейтинг: 1239
#2: 2012-09-08 09:48:38 ЛС | профиль | цитата
werdes0.png
werdes писал(а):
Прибрался и убрал лишнее
Прибрался - это не спрятать кривые линии в мультик.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1werdes0.png [7.6KB] [210]
Ответов: 20
Рейтинг: 2
#3: 2012-09-08 09:56:24 ЛС | профиль | цитата
Tad писал(а):
это не спрятать кривые линии в мультик.

Или даже кривые руки я думаю, что если случится одновременно записать, и к примеру стереть строку, то на выходе может получиться белиберда, верно?
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#4: 2012-09-08 11:11:29 ЛС | профиль | цитата
werdes писал(а):
одновременно
Одновременно в компьютере ничего не происходит.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 20
Рейтинг: 2
#5: 2012-09-08 12:23:36 ЛС | профиль | цитата
Tad писал(а):
Одновременно в компьютере ничего не происходит.

Отлично
карма: 1

0
Ответов: 1841
Рейтинг: 369
#6: 2012-09-08 12:56:41 ЛС | профиль | цитата
[offtop]
Tad писал(а):
Одновременно в компьютере ничего не происходит.

В теории, не только в компьютере ничего одновременно не происходит[/offtop]
карма: 1
0
Ответов: 1043
Рейтинг: 33
#7: 2012-09-08 12:57:00 ЛС | профиль | цитата
Tad писал(а):
Одновременно в компьютере ничего не происходит


карма: 0

0
Ответов: 817
Рейтинг: 52
#8: 2012-09-08 13:14:07 ЛС | профиль | цитата
ashkalov,
Ничего удивительного.
Даже если использовать потоки то все равно
Tad писал(а):
Одновременно в компьютере ничего не происходит.

карма: 1

0
Ответов: 1841
Рейтинг: 369
#9: 2012-09-08 13:21:15 ЛС | профиль | цитата
[offtop]Интересная статься о последовательности событий во "времени" ну и ПК тоже[/offtop]
карма: 1
0
Ответов: 1043
Рейтинг: 33
#10: 2012-09-09 11:54:57 ЛС | профиль | цитата
[offtop]
-= DriveR =- писал(а):
Даже если использовать потоки

касается не компьютера а отдельной программы...
Tad писал(а):
Одновременно в компьютере ничего не происходит

а как же два ядра и синхронизация между ними?
------------ Дoбавленo в 11.54:
и как тогда работает мультитаскинг?[/offtop]
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#11: 2012-09-09 12:04:19 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-11 06:17:53
карма: 0

0
Ответов: 1043
Рейтинг: 33
#12: 2012-09-09 12:32:23 ЛС | профиль | цитата
[offtop]
188.17.181.169 писал(а):
ваши вопросный троллинг

какой еще вопросный тролинг?
и и не думал никого тролить...
не обоснованное заявление [/offtop]
------------ Дoбавленo в 12.31:
[offtop] такого-то и понятия даже нет [/offtop]
вопросный троллинг
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#13: 2012-09-09 12:48:19 ЛС | профиль | цитата
ashkalov писал(а):
а как же два ядра и синхронизация между ними?

Здесь нет одновременности, а есть результат непредсказуемости очередности, мы не знаем, какой поток отработает первым в системе мультизадачности.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#14: 2012-09-09 13:12:54 ЛС | профиль | цитата
ashkalov,
1. Засеки и запомни время запуска компьютера.
2. в окне "ПускВыполнить" набери msconfig-> Enter, потом "ЗагрзкаДополнительно" и посмотри сколько ядер участвуют в загрузке.
3. Выбери число своих ядер. OK.
4. Перезапусти компьютер. Засеки время.
5. Быстрее загружается или медленней ?
------------ Дoбавленo в 13.12:
nesco писал(а):
а есть результат непредсказуемости очередности
никакой непредсказуемости. Опрос результатов работы - строго в порядке очереди 1,2,3,4 и т.д.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1043
Рейтинг: 33
#15: 2012-09-09 13:17:32 ЛС | профиль | цитата
Tad, спасибо... я поверю на слово
карма: 0

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