Страница 1 из 1

Форма и фэйсы

Добавлено: 20 фев 2007, 13:53
Alexander
Задача: Есть несколько интерфейсов, которые формируют схожие потоки. Хочется их все выгрузить в один файл, каким образом это сделать?

Добавлено: 20 фев 2007, 14:38
Den
Ну например выгружаешь в первом фейсе в текстовой файл, сохраняешь его. Выполняешь второй фейс, открываешь сохраненный текстовой файл и дописываешьв него....и так далее..

Добавлено: 20 фев 2007, 15:02
Alexander
а если это slk файл???
и как открыть файл, чтобы дописать в конец?
Например, в первом говорю
form someform('SomeFile');
someform.Write(...);
..........

а во втором?

form someform1('SomeFile');
someform1.Write(...);
..........

Просто потрет ведь!

Добавлено: 20 фев 2007, 15:11
Den
имелись ввиду методы и функции объекта file.
В этом случае можно затем пробежавшись по этому файлу вывалить все в slk

Добавлено: 20 фев 2007, 17:38
edward_K
можно передавать индетификатор формы через переменную longint
и вывод делать так
Form_write('SS', '', Outf)

Добавлено: 21 фев 2007, 10:27
Alexander
edward_K
То, что нужно! Спасибо!
Обязательно ли использовать ф-цию Form_write ?!
Нет ли подобного механизма:

form someform('SomeFile');
someform.Reinit(Outf);
someform.Write(...);

???

Возникла еще одна проблема:
Form_PutEventById(feDoLoop,fcgroup2, pform);
ругается, что не знает fcgroup2
как победить?

Добавлено: 21 фев 2007, 11:16
dp
Form_PutEventById(feDoLoop,fcgroup2, pform);
ругается, что не знает fcgroup2
вначале скомпилировать форму - получится *.inc, который потом подключить следует

Добавлено: 21 фев 2007, 11:30
Alexander
*.inc ???
а я думал *.fnc :-)
а другого пути нет?

Добавлено: 21 фев 2007, 19:05
dp
а я думал *.fnc
ну может и fnc :(
суть не меняется...

другой путь - скомпилирует посмотри и пропиши эти константы в проект :-)

Добавлено: 21 фев 2007, 20:38
m0p3e
Может я конечно чего не допонимаю, но всегда собирал проекты в порядке
1. Прототипы
2. Интерфейсы
3. Формы
и никогда таких проблем не имел.

Где уверенность, что при следующей сборке компилятор не дост новые номера константам? :)

Добавлено: 22 фев 2007, 09:18
Alexander
m0p3e

Все нормально работает, если писать:
form someform('file');
someform.PutEventById(feDoLoop,fcgroup2);
someform.Write(...);

но вот когда делаю так:
Form_PutEventById(feDoLoop,fcgroup2, pform);
пишет, что не знает fcgroup2. Лечится включением *.fnc констант в фейс, иначе не видит!
Где уверенность, что при следующей сборке компилятор не дост новые номера константам?
а ее и нет! Приходится после изменения прототипа перекомпилировать зависимые фейсы(сделал make файл)
Именно из-за того, что приходится перекомпилировать все и задал такой вопрос! Коряво и не красиво! :-)

Добавлено: 22 фев 2007, 11:34
dp
1. Прототипы
2. Интерфейсы
3. Формы
не абсолютно согласен.
мой порядок
1. Прототипы и Формы (*.frm; *.slk; *.rtf)
2. Интерфейсы (*.vip)

хотя суть, скорее всего не меняется - так все константы генерятся при компиляции прототипов.
просто тогда надо как-то выделять отдельно прототипы, отдельно формы и т.п.

Добавлено: 22 фев 2007, 12:01
m0p3e
Важно собирать сначала прототип и только после него интерфейс формирующий поток! И ничего никуда прописывать не надо!
#make 'myrep.pro'
#make 'myrep.vip'
В каком месте собирать присоединенные формы не суть важно.