Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#16: 2007-06-25 21:15:46 ЛС | профиль | цитата
Dilma писал(а):
Причем ChannelToIndex переносится в пакет Delphi-2 без каких бы то ни было измений вообще

Веселый ты парень однако
Сам ведь знаешь какой следующий вопрос будет: как избежать "двойного" определения переменной.
Причем не только в этом элементе, а во всех за ним следующих

Можно и еще следующий попытаться угадать
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#17: 2007-06-25 21:48:59 ЛС | профиль | цитата
А ни хрена это не рабоает. Не выдается индекс на выход. Данные выдаются, индекс -- нет.
Ни в таком варианте
func doWork(_data, index)
  if(linked(Data))
println(saved_data, ' := ', _data, ';')
end
event(onIndex, Index)
end

func Data()
return(saved_data)
end
Ни в таком
func doWork(_data, index)
  fvar(old)
old = block.select(BLK_PRIV_VAR)
println(i, ':integer;')
block.select(old)
println(i, ' := ', Index, ';')
if(linked(Data))
println(saved_data, ' := ', _data, ';')
end
event(onIndex, i)
end

func Data()
return(saved_data)
end

[size=-2]------ Добавлено в 21:48
Galkov писал(а):
как избежать "двойного" определения переменной

Что под эти подразумевается. Двойное объявление переменной, но от этого простая защита есть. А может чего другое, сказал бы?
карма: 22

0
Ответов: 9906
Рейтинг: 351
#18: 2007-06-25 22:24:02 ЛС | профиль | цитата
nesco писал(а):
А ни хрена это не работает

А ни хрена не работает ЧТО
По буквам
Начиная с "Закачиваю HiAsm по такой-то ссылке"
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#19: 2007-06-25 22:40:41 ЛС | профиль | цитата
Galkov писал(а):
Начиная с "Закачиваю HiAsm по такой-то ссылке"

Ты чего Я уж не совсем ламер конченный.
Тут несколькими постами выше Dilma сказал, что реализовал ChanelToIndex для WEB'a, но надо обновиться с SVN, что я и сделал. Взял за основу его реализацию и попытался воткнуть в Delphi-2. Заметь он ничего не писал про новый кодогенератор для этого проекта. А следуя его словам, что это делается просто, я и сделал (выложил вверху). И... ничерта не работает, и что не работает я уже написал.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#20: 2007-06-25 23:00:35 ЛС | профиль | цитата
nesco писал(а):
Ты чего Я уж не совсем ламер конченный

Я - ничего.
Я просто тот, кто совершенно точно знает, что урок: "Очевидность есть понятие относительное" - ты не усвоил.


nesco писал(а):
Заметь он ничего не писал про новый кодогенератор

Нет слов.
Одни мысли.
И все - нецензурные.
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#21: 2007-06-25 23:26:15 ЛС | профиль | цитата
Galkov писал(а):
Нет слов.
Одни мысли.
И все - нецензурные

А ты проще можешь сказать, зачем так все усложнять -- попробуй новый кодогенератор от WEB'a. И не надо ругаться. Откуда мне знать, что они друг к другу подходят и у них нет своей специфики.

[size=-2]------ Добавлено в 23:26
Хм... А вот это к чему? Ошибка компиляции. Вроде CGTShare.pas последний, который был Dilmой выложен для трассеров от 21.06.07. Другого я не видел. Может еще новее есть?
карма: 22

0
файлы: 1err_dpr.jpg [64.2KB] [544]
Главный модератор
Ответов: 2999
Рейтинг: 396
#22: 2007-06-25 23:59:49 ЛС | профиль | цитата
тут посмотри
и тут
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#23: 2007-06-26 00:29:16 ЛС | профиль | цитата
Вот что у меня стоит. Сам HiAsm b163
http://dev.hiasm.com/src/hiasm_163.rar
Патч к HiAsm'y
http://dev.hiasm.com/src/p1.rar
Прокача до трассера
http://dev.hiasm.com/src/trace.rar
CGTShare/pas
http://dev.hiasm.com/xf//getfile/6391
Пакет Delphi-2
http://dev.hiasm.com/src/Delphi2.rar
И последняя версия на 25.06.07 всего WEB-пакета c SVN

[size=-2]------ Добавлено в 00:08
Nic, Ага во-во. Первое у меня все есть, а вот насчет второго -- это похоже то, что надо.

[size=-2]------ Добавлено в 00:29
Ну вот, все заработало. А то сначала и не вотрешься чего надо-то. И ChanelToIndex заработал.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#24: 2007-06-26 11:20:03 ЛС | профиль | цитата
Dilma, как видишь, народ начал компилировать CodeGen

А ведь такие приколы мы уже проходили...
function readProperty(cgt:PCodeGenTools; prop:id_prop):PScData;
....
case cgt.propGetType(prop) of
data_int: Result.SetValue(integer(cgt.propGetValue(prop)^));
data_str: Result.SetValue(string(cgt.propGetValue(prop)^));
data_real: Result.SetValue(real(cgt.propGetValue(prop)^));
data_data: Result^ := DoData(cgt,id_data(cgt.propGetValue(prop)));
data_combo: Result.SetValue(byte(cgt.propGetValue(prop)^));
....
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#25: 2007-06-26 13:06:08 ЛС | профиль | цитата
nesco писал(а):
Что под эти подразумевается. Двойное объявление переменной, но от этого простая защита есть. А может чего другое, сказал бы?

посмотри, что получается в этом примере:
Add(EntryPoint,12010646,21,105)
{
link(onStart,6506992:doEvent,[])
}
Add(ChanelToIndex,5375776,133,105)
{
link(onIndex,16184809:doFor,[])
}
Add(Hub,6506992,77,105)
{
link(onEvent1,5375776:doWork1,[])
link(onEvent2,5375776:doWork2,[])
}
Add(StrCat,3639749,245,105)
{
Str1="Test"
link(onStrCat,10195397:doEcho,[])
}
Add(Echo,10195397,301,105)
{
}
Add(For,16184809,189,105)
{
End=12
link(onEvent,3639749:doStrCat,[])
}

это и будет ответом на вопрос.

Galkov писал(а):
Сам ведь знаешь какой следующий вопрос будет: как избежать "двойного" определения переменной.

знаю. Поэтому использовать элемент так, как в примере выше просто не рекомендуется. Схема будет верной, если сразу после события вставлять ф-цию:
Add(EntryPoint,12010646,21,105)
{
link(onStart,6506992:doEvent,[])
}
Add(ChanelToIndex,5375776,133,105)
{
link(onIndex,4431311:doWork1,[])
}
Add(Hub,6506992,77,105)
{
link(onEvent1,5375776:doWork1,[])
link(onEvent2,5375776:doWork2,[])
}
Add(MultiElement,4431311,189,105)
{
}
BEGIN_SDK
Add(EditMulti,15116111,6,6)
{
WorkCount=1
link(doWork1,6093799:doData,[(45,12)(45,104)])
}
Add(DoData,6093799,84,98)
{
}
END_SDK

и именно такое использование данного элемента и подразумевается.
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#26: 2007-06-26 13:19:35 ЛС | профиль | цитата
Ха, я понял о чем речь. Но компонента "функция" в Delphi-2 нет. А варианта с принудительным режимом обертки в функцию нельзя применить? Хотя, тут может возникнуть проблема с ненужными функциональными вызовами.
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#27: 2007-06-26 13:28:00 ЛС | профиль | цитата
nesco писал(а):
Хотя, тут может возникнуть проблема с ненужными функциональными вызовами.

сам же на свой вопрос и ответил Думаю правильно будет по возможности делать как можно меньше оберток в ф-ции. Пусть пользователь имеет возможность выбрать сам.
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#28: 2007-06-26 13:31:11 ЛС | профиль | цитата
Dilma писал(а):
Пусть пользователь имеет возможность выбрать сам

Это какой же должен быть по продвинутости пользователь? Он, бедняга, ждет от результата одно, а получает совсем другое, и смотрит на экран вот такими глазами
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#29: 2007-06-26 13:46:01 ЛС | профиль | цитата
nesco, именно поэтому палитра элементов для кодогенератора построенного на базе FTCG состоит из низкоуровневых элементов(Примитивы) и элементов пользовательского уровня. Используя элементы из первой группы пользователь должен быть готов к тому, что ему придется понимать суть происходящего. Элементы же второй группы должны проектироваться из расчета на дурака и когда стоит проблема выбора берешь и делаешь два элемента ChanelToIndex. Впрочем пользовательский элемент со встроенными функциями уже не будет "ChanelToIndex"...
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#30: 2007-06-26 13:51:45 ЛС | профиль | цитата
Это значит, что в группе примитивов совершенно необязательно заморачиваться насчет объявления переменных в приватных секциях, для этого должны быть отдельные примитивы. Я правильно понял?
карма: 22

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