Вверх ↑
Этот топик читают: Гость
Ответов: 4630
Рейтинг: 749
#91: 2011-05-16 11:20:55 ЛС | профиль | цитата
Переменные BLK_A и BLK_B должны быть объявлены в главном компоненте (EntryPoint.hws) в методе doStart как gvar(BLK_A, BLK_B)
То-есть:

#hws
func doStart()
gvar(BLK_A, BLK_B)
// BLK_A, BLK_B обязательно должны содержать имя блока:
BLK_A=block.reggen()
BLK_B=block.reggen()
// Другой вариант:
// BLK_A='My block 1'
// block.reg(BLK_A)
// block.select(BLK_A)
block.select(block.reggen())
Println('TEXT1')
block.select(BLK_A)//Сюда должен вставляться текст
Println('TEXT')
block.select(BLK_B)//Сюда должен вставляться текст
Println('TEXT')
Event(onStart)
end

карма: 26

0
Ответов: 1321
Рейтинг: 37
#92: 2011-05-16 11:53:41 ЛС | профиль | цитата
Рас уж на то пошло
То вот

EntryPoint.hws

func doStart()
gvar(BLK_POST_IMP,BLK_POST_PRIV,BLK_POST_PUBL)
var(old)

BLK_POST_IMP=block.reggen()
BLK_POST_PRIV=block.reggen()
BLK_POST_PUBL=block.reggen()


trace("Начало компиляции")


block.select(block.reggen())
println('unit HiAsmUnit;')
println('')
println('interface')
println('')
println('uses ',code(uses),' ;')
Println('')
Println('type')
Println(' THiAsmClass = class(TDebug)')
Println('')
Println(' Private')
block.select(BLK_POST_PRIV)

Event(onPrivate)
Println('')
Println(' Public')
block.select(BLK_POST_PUBL)

Event(onPublic)
Println('end;')
Println('')
Event(onFunc)
Println('')
Println('implementation')
block.select(BLK_POST_IMP)

Println('')
println('end.')
trace("Компиляция завершена!!!")
Event(onNext)

end

И компонент
CMP.hws

func doWVPoint(data)
fvar(old)
block.reg(BLK_PUBL)
block.reg(BLK_PRIV)

old = block.select(BLK_PRIV)
Println(' Procedure ',code(WVpoint),'(var _Data:TData; Index:Word);')
block.copyhere(BLK_POST_IMP)

block.select(BLK_PRIV)
Println('Procedure THiAsmClass.',code(WVpoint),';')
block.copyhere(BLK_POST_PUBL)
block.select(old)
Event(onVWPoint)
end


А после выполнения результат

Result


end.


Public

end;


implementation

unit HiAsmUnit;

interface

uses kol,Share,Debug ;

type
THiAsmClass = class(TDebug)

Private


Procedure doWork(var _Data:TData; Index:Word);

end.
Procedure THiAsmClass.avar1;
end;


implementation

Всё меняется местами, вопрос почему?
карма: 0

0
Ответов: 4630
Рейтинг: 749
#93: 2011-05-16 11:58:26 ЛС | профиль | цитата
Наверное, потому, что вместо этого
block.select(block.reggen())
println('unit HiAsmUnit;')

должно быть это ?
block.select(BLK_POST_IMP)
println('unit HiAsmUnit;')

[offtop]
Блоки добавляются в конечный файл в порядке регистрации. А сначала регистрируются BLK_POST_IMP, BLK_POST_PRIV, BLK_POST_PUBL, а затем ещё один "анонимный" блок block.select(block.reggen()) куда и выводится println('unit HiAsmUnit;')
[/offtop]
карма: 26

0
Ответов: 1321
Рейтинг: 37
#94: 2011-05-16 12:01:05 ЛС | профиль | цитата
И даже если компонент не ставить, всё равно меняется
------------ Дoбавленo в 12.01:
Netspirit, совсем нет

Код должен заносится после implementation
карма: 0

0
Ответов: 4630
Рейтинг: 749
#95: 2011-05-16 12:04:32 ЛС | профиль | цитата
А вообще стоит рассмотреть код файла elementsdelphicodehiEditMultiEx.hws. Там решается похожая задача.
карма: 26

0
Разработчик
Ответов: 4698
Рейтинг: 426
#96: 2011-05-16 15:52:34 ЛС | профиль | цитата
Пост для халявного плюса
карма: 10
1
Голосовали:Roma
Ответов: 1321
Рейтинг: 37
#97: 2011-05-16 15:55:21 ЛС | профиль | цитата
Спасибо за помощь в руме Assasin, я в долгу
Приплюсую потом )))
карма: 0

0
Ответов: 1376
Рейтинг: 197
#98: 2011-05-16 16:44:21 ЛС | профиль | цитата
[flood]
Roma писал(а):
Приплюсую потом )))
так сексуально слышиться... Я не монъяк![/flood]
карма: 1

0
Ответов: 1321
Рейтинг: 37
#99: 2011-05-16 16:48:57 ЛС | профиль | цитата
[flood]Гыгыгы
Я под столом [/flood]
карма: 0

0
Ответов: 1821
Рейтинг: 168
#100: 2011-05-30 18:33:01 ЛС | профиль | цитата
Как на FTCG узнать FParent
карма: 5

0
Разработчик
Ответов: 4698
Рейтинг: 426
#101: 2011-05-30 19:07:43 ЛС | профиль | цитата
Простите, а вы о чем?
карма: 10
0
Ответов: 1821
Рейтинг: 168
#102: 2011-05-30 19:20:45 ЛС | профиль | цитата
Assasin, в коде компонента Button есть строка

Control := NewButton(FParent,_prop_Caption);

Вот и мне нужно узнать этот FParent. Только на FTCG.
карма: 5

0
Разработчик
Ответов: 4698
Рейтинг: 426
#103: 2011-05-30 19:32:56 ЛС | профиль | цитата
sаmakacd, FParent в FTCG нету, в FTCG ты генерируешь код, который может содержать FParent. Посмотри например пакет Pascal от Wolfik-а, как там это организовано
------------ Дoбавленo в 19.32:
ты это, кстати, для какого пакета делаешь?
[flood]Здорово, мои первые очки за то, что ответил с телефона [/flood]
карма: 10
1
Голосовали:sаmakacd
103
Сообщение
...
Прикрепленные файлы
(файлы не залиты)