Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#31: 2016-02-19 13:27:35 ЛС | профиль | цитата
Netspirit писал(а):
Хотя вроде при Direction=RightToLeft делает то же самое.
Но, по анализу кода, должна работать медленнее. Хотя, чем черт не шутит.
------------ Дoбавленo в 13.27:
nesco писал(а):
в отличие от точек в компонентах Copy, Delete, Insert, для которых нужны промежуточные переменные, которые оказываются лишними, если нижние точки не подключены.
A если нужно "вниз", то Memory добавит кода на порядок больше.
Удобна нижняя точка в компонентах Copy, Delete, Insert ?
Бесспорно.
За удобства нужно платить?
То же.
Всё зависит от колокольни.

Вопрос : Почему в FormatStr есть точка Fstr, ни у кого не вызывающая эмоций, а на этих компонентах такая реакция ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#32: 2016-02-19 14:39:49 ЛС | профиль | цитата
Tad писал(а):
а на этих компонентах такая реакция

Galkov-a спроси, я уже не помню почему.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#33: 2016-02-20 00:55:11 ЛС | профиль | цитата
Tad писал(а):
Примерчик бы - где, когда и зачем они нужны

Add(StatusBar,5517688,448,105)
{
Panels=#3:=50|3:=50|
link(Text,16202478:Data,[(454,96)(440,96)(440,145)(391,145)])
}
Add(Button,15705630,245,63)
{
Left=28
Top=21
Caption="1"
link(onClick,13286018:doNext,[])
}
Add(Button,7917810,245,112)
{
Left=28
Top=63
Caption="2"
link(onClick,10084737:doNext,[])
}
Add(Button,10381558,245,161)
{
Left=28
Top=112
Caption="3"
link(onClick,6062285:doNext,[])
}
Add(Counter,13286018,315,63)
{
link(onNext,16202478:doWork1,[(375,69)(375,111)])
}
Add(Counter,10084737,315,112)
{
link(onNext,16202478:doWork2,[])
}
Add(Counter,6062285,315,161)
{
link(onNext,16202478:doWork3,[(375,167)(375,125)])
}
Add(ChanelToIndex,16202478,385,105)
{
Count=3
Point(Data)
link(onIndex,5517688:doText,[])
}
карма: 9

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#34: 2016-02-20 01:08:26 ЛС | профиль | цитата
Galkov, это не про точку Data вопрос был.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#35: 2016-02-20 01:16:44 ЛС | профиль | цитата
Ну извини, не досмотрел... Потому как у меня нет других нижних точек в ChanelToIndex

------------ Дoбавленo в 01.16:
nesco писал(а):
Galkov-a спроси, я уже не помню почему

Думаю, что в случае конкретно этого элемента -- Tad достал Автора вусмерть
А по остальным - не успел.

Не меня. Обломался бы он со мной.
Причины - объясняли раз сто. Если не дошло за эти сто раз, это не есть повод для сто первого объяснения.
Как то так вот мне кажется...
карма: 9

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#36: 2016-02-20 01:26:17 ЛС | профиль | цитата
Tad писал(а):
Примерчик бы - где, когда и зачем они нужны

Специально для Tad-a примерна схемка с использованием одной из этих добавленных точек

Add(MainForm,2953706,154,287)
{
link(onCreate,9916057:doFor,[])
}
Add(Button,15705630,154,126)
{
Left=28
Top=21
Caption="1"
link(onClick,13286018:doNext,[])
}
Add(Button,7917810,154,175)
{
Left=28
Top=63
Caption="2"
link(onClick,10084737:doNext,[])
}
Add(Button,10381558,154,224)
{
Left=28
Top=102
Caption="3"
link(onClick,6062285:doNext,[])
}
Add(ChanelToIndex,16202478,294,168)
{
Count=3
Point(Data)
Point(EndIdx)
link(onIndex,13480084:##select,[(333,174)(333,314)])
}
Add(Counter,13286018,224,126)
{
link(onNext,16202478:doWork1,[(284,132)(284,174)])
}
Add(Counter,10084737,224,175)
{
link(onNext,16202478:doWork2,[])
}
Add(Counter,6062285,224,224)
{
link(onNext,16202478:doWork3,[(284,230)(284,188)])
}
Add(For,9916057,294,301)
{
link(onEvent,13480084:##add,[])
link(End,16202478:EndIdx,[])
}
Add(MultiElementEx,13480084,364,301)
{
Mode=1
link(Data,16202478:Data,[(370,292)(300,292)])
link(onEventData,16159013:doString,[])
}
BEGIN_SDK
Add(EditMultiEx,1990816,21,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#11:onEventData|
VarCount=#7:##index|
DataCount=#4:Data|
Point(##add)
Point(##select)
Point(##index)
link(##select,1157920:doData,[(32,34)(32,90)])
}
Add(DoData,1157920,98,84)
{
link(onEventData,1990816:onEventData,[(137,90)(137,27)])
link(Data,1990816:Data,[(104,75)(27,75)])
}
END_SDK
Add(Label,13033851,483,301)
{
Left=115
Top=65
Width=225
AutoSize=1
}
Add(FormatStr,16159013,420,301)
{
Mask="Вызванв %1-я схема со значением %2"
link(onFString,13033851:doText,[])
link(Str1,13480084:##index,[(426,292)(412,292)(412,341)(370,341)])
}

Можно свободно добавить еще несколько кнопок не заморачиваясь с переустановкой количества мультиков
карма: 22

1
Голосовали:Tad
Ответов: 16884
Рейтинг: 1239
#37: 2016-02-20 09:28:16 ЛС | профиль | цитата
Galkov писал(а):
тогда вопросов (которые задаются из принципа, сто лучше спросить, чем быть "уверенным", что знаешь все) нет вроде...

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 4697
Рейтинг: 426
#38: 2016-02-20 15:40:41 ЛС | профиль | цитата
Galkov писал(а):
Причины - объясняли раз сто. Если не дошло за эти сто раз, это не есть повод для сто первого объяснения.

Я, наверное, не застал этих жарких споров, поэтому для меня сто первый раз можете объяснить, чем частовстречающаяся связка Copy/Delete/<подставь свой компонент> + Memory выгоднее (по памяти, коду и удобству использования), чем встроенная сразу в компонент нижняя точка?
карма: 10
0
Ответов: 1535
Рейтинг: 176
#39: 2016-02-21 18:07:16 ЛС | профиль | цитата
Assasin писал(а):
Я, наверное, не застал этих жарких споров
Я тоже.
Часто в нашей жизни бывает так, что из-за принципа невозможности мы отвергаем любые шаги, только потому, что кто-то решил, и призвал остальных не быть идиотами. Те же, кто вопреки стал делать иначе, мы почему-то крутим им у виска. Вот так случилось когда-то и с линзой. 200 лет мы крутили её в руках и думали, что в сложении их друг на друга, кроме искажения ничего нет. И нашёлся же идиот (ребёнок), который ничего не знал об идиотизме, сложил эти две линзы и непроизвольно доказал, что и в искажении есть смысл. Но то произошло через 200 лет. Подумать только! Что бы мы делали, если бы не нашёлся идиот по имени "Эйнштейн" и не указал на два закона относительности? Так бы и продолжали убеждать друг друга в идиотизме.

Отцы основатели решили, ну что ж их право. Я не помню случая, когда бы я использовал Copy/Delete/Insert без memory, при этом убеждая себя, что я не идиот.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#40: 2016-02-23 15:35:39 ЛС | профиль | цитата
Assasin, ser_davkin, а 101-го не будет.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 203
Рейтинг: 2
#41: 2016-02-23 17:13:55 ЛС | профиль | цитата
Тут вопрос наверно в другом, в ВЕРЕ. Для меня это просто набор кубиков и что там внутри не сильно интересует. Главное быстро и что бы было удобно и надежно, с минимальным погружением в глубины системы. Для тех кто пишет кубики - добиться как можно более оптимального кода. Прав тот у кого больше прав.
карма: 0

0
Разработчик
Ответов: 4697
Рейтинг: 426
#42: 2016-02-23 22:05:58 ЛС | профиль | цитата
Tad писал(а):
Assasin, ser_davkin, а 101-го не будет.

Да вот я и гляжу, че то заглохло все сразу

Я вот могу аргументы в пользу добавления дать: связка Memory + компонет_без_точки_Result всегда будет медленее и занимать больше места в памяти, т.к. Memory имеет свой набор точек, + структура TData (а именно ее хранит Memory) толще, чем просто string. Также, вызов Memory.doValue - дополнительные накладные расходы по времени. Да и просто: нижняя точка - это удобно.

В пользу недобавления: при обработке огромных строк и использовании нескольких компонентов_без_точки_Result в цепочке, каждый компонент будет сохранять каждый результат в себе, что будет хуже по памяти. Но я сомневаюсь, что такие задачи возникают чаще, чем обработка небольших строк. И жертвовать ради узкого круга задач удобством - странное дело.
И... как-то все. Больше недостатков не вижу Отсюда вопрос: действительно ли фича такая страшная
карма: 10
0
Ответов: 4621
Рейтинг: 746
#43: 2016-02-23 22:50:08 ЛС | профиль | цитата
Ещё при наличии нижней точки часто до пары требуется метод doClear. А так, думаю, стоит добавлять нижнюю точку, когда необходимость в ней возникает достаточно часто (а сколько это "достаточно часто" - не могу точно сказать)
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#44: 2016-02-24 01:01:31 ЛС | профиль | цитата
Netspirit, давно делал статистику (ещё 05 Dec 2011г.)
Tad писал(а):
Анализ папки примеров к пакету Delphi:
Всего файлов: 315
Использовано компонент: 14954
Всего типов компонент: 517
Memory : 502
В схемах примеров 75% Memory применяется для "поворота данных"
Netspirit писал(а):
Ещё при наличии нижней точки часто до пары требуется метод doClear.
Только не для Delete, Copy, Insert
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 9906
Рейтинг: 351
#45: 2016-02-24 10:43:11 ЛС | профиль | цитата
Вот мне интересно: А У СОБРАВШЕЙСЯ ЗДЕСЬ ПУБЛИКИ - МОЗГИ ЕСТЬ, ИЛИ НЕТ

Сколько можно переливать из пустого в порожнее, без понимания происходящего.
И, самое главное -- без попыток продвинуться в этом понимании.

1) Дело было давно, и конкретная аргументация против этой точки была у Автора проекта. Лично я сильно не вникал. Мне было достаточно, что при этом экономится всего один элемент, а не два-три, или больше. В то время, если бы мы кидались на "хотелки" ради экономии одного элемента, то доводка до как-то работоспособного состояния до сих пор длилась бы... Других забот хватало.

2) Эта контр-аргументация была у весьма неглупого человека. Лично я ему просто доверял. А если бы уважаемые коллеги имели желание воспользоваться своими мозгами, то и они бы увидели некую контр-аргументацию. Прошли, видимо, те времена, когда ДУМАТЬ было принято.

3) Поскольку я не помню всех деталей, то попробовал. И мне показалось (точно - не знаю), что это связано с непредсказуемым размеров данных "строка". В отличии от данных типа real (в Math точка result присутствует и Автором не отвергнута) это может быть и несколько метров. И в каждом элементе многокаскадной обработки будут эти метры храниться. Хотя промежуточный результат может и нужен будет только один раз. Обратите внимание: хоть и "довольно часто", но, как правило, только в одном элементе в многокаскадной обработке.
А, может быть, какому-то пользователю они и вообще не нужны. а память вынь да полож. Потому что Авторы поддались на чье-то "хочу".

4) Пока мне так показалось. Может и еще какие соображения есть. Попробуйте сами подумать... Поверьте - это не больно.

карма: 9

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