Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#121: 2010-10-15 13:40:35 ЛС | профиль | цитата
Зачем так сложно? Работай с типами как со Stream[Un]Pack
code_21038.txt
карма: 10
0
файлы: 1code_21038.txt [838B] [392]
Ответов: 413
Рейтинг: 57
#122: 2010-10-15 13:55:48 ЛС | профиль | цитата
Assasin писал(а):
Зачем так сложно?

У меня несколько МТ таблиц и все нужно в один тип добавить. Т.е. тип уже создан, данные из МТ нужно в него добавлять.
карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#123: 2010-10-15 13:59:17 ЛС | профиль | цитата
Assasin писал(а):
Не знаешь почему?


А на кой черт это нужно, когда переменная локальная Я бы сделал stream лучше глобальным, и вот тогда это было нужно, но не нужно было s1.free
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#124: 2010-10-15 13:59:20 ЛС | профиль | цитата
Poputchik писал(а):
У меня несколько МТ таблиц и все нужно в один тип добавить. Т.е. тип уже создан, данные из МТ нужно в него добавлять.

Ничто не мешает сделать вот так:
code_21040.txt
карма: 10
0
файлы: 1code_21040.txt [1.4KB] [399]
Разработчик
Ответов: 26153
Рейтинг: 2127
#125: 2010-10-15 13:59:22 ЛС | профиль | цитата
Assasin писал(а):
Не знаешь почему?


А на кой черт это нужно, когда переменная локальная Я бы сделал stream лучше глобальным, и вот тогда это было нужно, но не нужно было s1.free
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#126: 2010-10-15 14:02:23 ЛС | профиль | цитата
nesco писал(а):
А на кой черт это нужно, когда переменная локальная

Вот сегодня и я над этим задумался, видимо, когда писал компоненты, об этом как-то не подумал, сделаю лучше так: s1 := nil; или лучше вообще уберу, она там не нужна, потом адрес и так перезапишется
карма: 10
0
Ответов: 413
Рейтинг: 57
#127: 2010-10-15 14:06:24 ЛС | профиль | цитата
Assasin писал(а):
Ничто не мешает сделать вот так:

code_21041.txt
Пробовал, не работает.
карма: 0

0
файлы: 1code_21041.txt [3KB] [437]
Разработчик
Ответов: 4698
Рейтинг: 426
#128: 2010-10-15 14:09:13 ЛС | профиль | цитата
Poputchik писал(а):
Пробовал, не работает.

Это не то, и вообще вчитайся в комментарий к компоненту: объединяет несколько типов в один, а у нас что на выходе? Stream
карма: 10
0
Ответов: 413
Рейтинг: 57
#129: 2010-10-15 14:14:36 ЛС | профиль | цитата
Assasin писал(а):
Это не то

Тогда получается, что как-то так должно работать:
code_21042.txt
карма: 0

0
файлы: 1code_21042.txt [3KB] [496]
Разработчик
Ответов: 4698
Рейтинг: 426
#130: 2010-10-15 14:18:11 ЛС | профиль | цитата
Poputchik писал(а):
Тогда получается, что как-то так должно работать:

Нет, не должно, ты наверное немного не понял компоненты. Они работают только с типами, то есть компонент Type_Load работает только с потоком, в котором был сохранен тип с помощью Type_Save. Ты вобщем дай мне схему с твоими таблицами, и место, где ты пытался сделать сохранение типов, я тебе вставлю нужный кусок
карма: 10
0
Ответов: 413
Рейтинг: 57
#131: 2010-10-15 14:25:06 ЛС | профиль | цитата
В этом примере и покажи. У меня по сути тоже самое, сперва поток создается, заносятся некоторые переменные, а потом в одном из мультиков добавляется, одна мт таблица, а в другом другая. В принципе как я МТ заношу работает, думал может проще можно. Если это будет решено:
Poputchik писал(а):
Вот так не хочет работать:
то остальное более менее получается.

P.S. А Type обязательно очищать при повторном создании того же типа?)
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#132: 2010-10-15 14:34:45 ЛС | профиль | цитата
Вот так:
code_21044.txt
------------ Дoбавленo в 14.34:
Poputchik писал(а):
P.S. А Type обязательно очищать или при добавлении одна именной переменной она перезапишется и не каких проблем? Я имею в виду даже не добавление переменной а повторное создание тогоже типа)

Одноименный пишется
При использовании Type_Create, тип, выдаваемый точкой FType (внизу у Type_Create) и в потоке при onCreate, полностью очищается, если надо изменить значение переменной, надо использовать Type_Set, для добавления новых переменных - ты уже знаешь
карма: 10
0
файлы: 1code_21044.txt [3.7KB] [366]
Ответов: 413
Рейтинг: 57
#133: 2010-10-15 14:38:09 ЛС | профиль | цитата
Assasin писал(а):
Вот так:

Это я понял, суть в том что создаю я тип в одной части схемы а в ее других частях добавляю переменные (не хотел связи тянуть через всю схему к Type_Create, переменных много - получится каша). Мне проще в каждом мультике в данный тип добавлять переменные. Получается, что либо тянуть, либо как я использовал.
Спасибо - Понял! Ждем обновлений компонентов
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#134: 2010-10-15 14:43:10 ЛС | профиль | цитата
Не очень понял, что именно требуется от схемы, но думаю в такой ситуации, когда переменные строго определены и известны на этапе DesingTime, то можно сделать при старте программы вот так:
Add(MainForm,2953706,21,105)
{
link(onCreate,1891332:doCreate,[])
}
Add(Type_Create,1891332,70,119)
{
Vars=#4:Name|6:Author|7:Version|
link(onCreate,2759258:doValue,[])
AddHint(-2,56,43,39,Vars)
}
Add(GlobalVar,2759258,119,119)
{
Name="type"
}
При старте создастся тип, который содержит пустые переменные, и записывается в глобальную переменную, чтобы не тянуть много связей, а везде использовать только Type_Set, чтобы менять значения
карма: 10
1
Голосовали:Poputchik
Ответов: 413
Рейтинг: 57
#135: 2010-10-15 14:44:11 ЛС | профиль | цитата
Забыл!!!
В компоненте Type_Add, если выбрать определять тип только из потока, не хочет определять.
карма: 0

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