Вверх ↑
Этот топик читают: Гость
Ответов: 3655
Рейтинг: 69
#1: 2007-03-25 18:31:29 ЛС | профиль | цитата
Вот пример
Почему не записывает в таблицу.
code_1137.txt
карма: 0

0
файлы: 1code_1137.txt [678B] [268]
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2007-03-25 18:37:27 ЛС | профиль | цитата
В этом примере запись идет во вторую колонку второй строки. Однако в таблице нет ни одной строки вообще.
карма: 27
0
Ответов: 3851
Рейтинг: 159
#3: 2007-03-25 18:49:56 ЛС | профиль | цитата
Add(Button,2208104,84,199)
{
Left=10
Top=30
Data=Real(24.5)
link(onClick,1941378:doEvent1,[])
}
Add(Hub,1941378,161,199)
{
OutCount=4
link(onEvent1,10378489:doValue,[(240,205)(240,205)])
link(onEvent2,5390029:doNext,[(250,212)(250,289)])
link(onEvent3,1879303:doData,[(203,219)(203,273)(172,273)(172,314)])
link(onEvent4,16510017:doWrite,[(240,226)(240,387)])
}
Add(StringTable,16219327,252,311)
{
Left=95
Top=15
Width=245
Columns=#1:1|1:2|
Grid=0
Point(Matrix)
}
Add(Memory,10378489,294,199)
{
}
Add(MatrixRW,16510017,287,374)
{
X=1
link(Matrix,16219327:Matrix,[(293,362)(272,362)])
link(Value,10378489:Value,[(300,278)(300,278)])
link(Y,5390029:Count,[])
}
Add(Counter,5390029,308,283)
{
Default=-1
}
Add(DoData,1879303,182,308)
{
Data=String(1;1)
link(onEventData,16219327:doAdd,[(233,314)(233,317)])
}

карма: 0
начавший
0
Ответов: 3655
Рейтинг: 69
#4: 2007-03-25 19:02:55 ЛС | профиль | цитата
Dilma писал(а):
В этом примере запись идет во вторую колонку второй строки. Однако в таблице нет ни одной строки вообще.

Так почему автоматом не создаётся если нету.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#5: 2007-03-25 19:20:21 ЛС | профиль | цитата
Вячеслав писал(а):
Так почему автоматом не создаётся если нету

Потому что не всем надо создавать строку или колонку, если ее нету
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2007-03-25 21:14:17 ЛС | профиль | цитата
Вячеслав писал(а):
Так почему автоматом не создаётся если нету.

это было бы странное поведение. Пишешь в 1000 строку пустого списка, а тебе компонент добавляет еще 999 пустых строчек.
карма: 27
0
Ответов: 3655
Рейтинг: 69
#7: 2007-03-25 21:59:18 ЛС | профиль | цитата
Dilma писал(а):
Пишешь в 1000 строку пустого списка, а тебе компонент добавляет еще 999 пустых строчек.

Это как это создатьзаписать 1000 строку когда нет 999.
И сколько строк будет в этом массиве

[size=-2]------ Добавлено в 21:59
Galkov писал(а):
Потому что не всем надо создавать строку или колонку, если ее нету

И как записать не создавая
карма: 0

0
Ответов: 9906
Рейтинг: 351
#8: 2007-03-25 22:02:16 ЛС | профиль | цитата
Вячеслав писал(а):
И как записать не создавая

Не создавая - никак
Создавай.
И именно это называется программированием: одна задача разбивается на две - сначала создаешь, потом записываешь
карма: 9

0
Ответов: 3655
Рейтинг: 69
#9: 2007-03-25 22:17:47 ЛС | профиль | цитата
Galkov писал(а):
И именно это называется программированием: одна задача разбивается на две - сначала создаешь, потом записываешь

А написать в компоненте
IF Номер строки = NUL THEN Создать строку.
Нельзя
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2007-03-25 22:29:28 ЛС | профиль | цитата
Вячеслав, в компонете(списке, массиве, матрице и т.д.) невозможно записать или создать значение в строку(колонку, ячейку, позицию) не создавая при этов всех предыдущих.

Вот это скажем не работает по той же причине:
Add(ListBox,9581949,140,91)
{
Left=140
Top=90
}
Add(ArrayRW,1433746,140,154)
{
Index=Integer(1)
link(Array,9581949:Array,[(146,145)(160,145)])
}
Add(Button,9446656,63,154)
{
Left=60
Top=150
Data=String(test)
link(onClick,1433746:doWrite,[(117,160)(117,167)])
}
карма: 27
0
Ответов: 3655
Рейтинг: 69
#11: 2007-03-25 22:41:46 ЛС | профиль | цитата
Dilma писал(а):
невозможно записать или создать значение в строку(колонку, ячейку, позицию) не создавая при этов всех предыдущих.

Тогда я совершенно не понимаю почему их нельзя создавать автоматом если без них нельзя.
Зачем городить лишние компоненты когда можно сделать ссылку на функцию.

[size=-2]------ Добавлено в 22:41
Так вот отлично работает
Add(ListBox,9581949,357,147)
{
Left=140
Top=90
}
Add(ArrayRW,1433746,357,210)
{
Index=Integer(1)
link(Array,9581949:Array,[(363,201)(377,201)])
}
Add(Button,9446656,273,210)
{
Left=60
Top=150
Data=String(test)
link(onClick,1433746:doAdd,[(336,216)(336,230)])
}
А почему в MatrixRW нет такой точки.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#12: 2007-03-25 22:50:22 ЛС | профиль | цитата
Вячеслав писал(а):
Зачем городить лишние компоненты когда можно сделать ссылку на функцию.

А ты не городи, а делай красивую схему.

У тебя есть выбор городить или не городить, в зависимости от задачи.
А если это НА ГОРОДИТЬ в кодах компонента, то ни у кого выбора не останется. На горожено будет у ВСЕХ, не зависимо от того - надо это им или нет.

Именно такое написание компонентов и будет называться ГОРОДИТЬ, и, если его очень последовательно проводить в жизнь, приводит 200К на пустую форму.

[size=-2]------ Добавлено в 22:50
Вячеслав писал(а):
А почему в MatrixRW нет такой точки

Потому-что пока никто не дал конкретных интерфейсных предложений по такой точке.
карма: 9

0
Ответов: 3655
Рейтинг: 69
#13: 2007-03-25 23:13:04 ЛС | профиль | цитата
Galkov, Вот
code_1140.txt
карма: 0

0
файлы: 1code_1140.txt [956B] [261]
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2007-03-26 02:22:20 ЛС | профиль | цитата
Вячеслав, этот пример не работает. Создавать надо не ровну одну строку, а N строк в общем случае. Это значит не DoData там должен стоять, а как минимум цикл. Кроме того мы должны учесть случай записи строки, которая уже есть, а это значит перед циклом должно стоять условие проверки на превышение номера модифицируемой строки над общим числом строк в компоненте.

Вячеслав писал(а):
А почему в MatrixRW нет такой точки

потому что операция добавления строки к матрице не является общим случаем(почему скажем добавлять надо строку, а не столбец?). Такая операция является спецификой данного компонента.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#15: 2007-03-26 07:04:28 ЛС | профиль | цитата
Вячеслав писал(а):
Это может увеличить форму на 200 Кило ?

Может.
А вот мнение того, кто убрал эти 200 Кило
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1172423656&n=10
Речь шла о коде в 134 байта. Ответ:
Кладов писал(а):
ЭКОНОМЬТЕ БАЙТЫ, КИЛОБАЙТЫ САМИ СЕБЯ СБЕРЕГУТ

В нашем случае "принятие решения программистом" - это установка элементов на схему. Пристегиваются коды только используемых точек.
Если это запихать в элемент - эти коды получат ВСЕ.
Кладов писал(а):
KOL существует потому, что VCL не дает такой возможности - отказаться от кода, который в данном конкретном приложении не нужен. Даже если бы только 1 приложение из 100 было таким, которое не нуждается в анализе завершения сессии, я был бы вынужден предоставить такую возможность


Это философия, а не просто бодание по конкретному вопросу.
Пренебрежение которой, совершенно запросто может далеко завести.
Скажем мы по некоторым причинам не совсем чисто используем KOL. И конкретно у нас это приводит к 60К на пустую форму.
В отличии от 20 под "чистым" KOL.

Так вот, я буду доводить ее до 20 - получше разобравшись с ентим KOL-ом.
А не наоборот
карма: 9

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