Вот моя нароботка:
code_864
Работает она правильно, как бы странно это не прозвучало )
Проблема вот в чём: Программа будет "редактором" гостевых книг. В скрипте этой самой гостевой предусмотрено: 4 Лейбла (надписи то бишь), 3 Эдита (поля ввода), 1 текстовое поле, 1 кнопка и таблица, в которую будут помещатся сообщения.
Хочется позволить пользователю "двигать" поля, кнопки и прочее. Однако возникает проблема, для нормального контроля над элементами нужны таблицы, а соответственно нужно просчитывать их расположение. В примере выше данные полученные от компонентов просто вставляются в уже готовую заготовку. Но там один элемент, а нужно 9. Таблицы будут "конкурировать" в итоге всё будет расплыватся. Решение я вижу таким- нужно научить элемент узнавать, есть ли "вокруг" него таблицы и отталкиватся от них...
Итак вопрос. Как сделать вот это:
Add(MainForm,11905751,21,105)
{
Left=20
Top=105
Width=586
Height=344
}
Add(ChildPanel,4234945,140,161)
{
}
BEGIN_SDK
Add(EditMulti,6486489,3,3)
{
EventCount=1
WorkCount=7
DataCount=6
Width=594
Height=452
link(doWork1,13841186:doData,[(19,9)(19,90)])
link(doWork2,11644571:doEvent1,[(22,16)(22,160)])
link(doWork3,2039834:doData,[(40,23)(40,335)])
link(doWork4,2840267:doFont,[(152,30)(152,181)])
link(doWork5,4292901:doData,[(99,37)(99,405)])
link(doWork6,1666818:doData,[(124,44)(124,370)])
link(doWork7,148777:doData,[(218,51)(218,321)])
}
Add(ChildPanel,12276026,553,210)
{
}
BEGIN_SDK
Add(EditMulti,11769052,3,3)
{
WorkCount=9
link(doWork1,7531748:doWork1,[(7,9)(7,16)])
link(doWork2,7531748:doWork2,[(7,16)(7,23)])
link(doWork3,7531748:doWork3,[(7,23)(7,30)])
link(doWork4,7531748:doWork4,[(7,30)(7,37)])
link(doWork5,16580405:doWork1,[(7,37)(7,72)])
link(doWork6,16580405:doWork2,[(7,44)(7,79)])
link(doWork7,16580405:doWork3,[(7,51)(7,86)])
link(doWork8,16580405:doWork4,[(7,58)(7,93)])
link(doWork9,16580405:doWork5,[(7,65)(7,100)])
}
Add(Panel,1244422,91,112)
{
Left=209
Width=363
Height=251
Align=3
Color=11169621
BorderWidth=0
BevelWidth=0
Point(doColor)
}
Add(ChildPanel,16580405,11,66)
{
}
BEGIN_SDK
Add(EditMulti,9748301,3,3)
{
WorkCount=5
link(doWork1,11878417:doWork1,[(64,9)(64,76)])
link(doWork2,16219016:doWork2,[(54,16)(54,139)])
link(doWork3,11878417:doWork2,[(64,23)(64,83)])
link(doWork4,11679173:doWork2,[(8,30)(8,69)])
link(doWork5,13581745:doColor,[(19,37)(19,118)])
}
Add(Panel,13581745,35,105)
{
Left=5
Top=70
Width=349
Height=63
Color=16777215
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
}
Add(ChildPanel,11878417,126,70)
{
}
BEGIN_SDK
Add(EditMulti,13349763,3,3)
{
WorkCount=2
link(doWork1,14216812:doBringToFront,[(19,9)(19,125)])
link(doWork2,14216812:doColor,[(19,16)(19,118)])
}
Add(Panel,14216812,35,105)
{
Left=1
Top=21
Width=345
Height=20
Color=12632256
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
}
Add(Label,3063216,91,42)
{
Left=4
Top=1
Width=317
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Привет, это второе сообщение гостевой книги."
Point(doColor)
}
END_SDK
Add(ChildPanel,16219016,105,126)
{
}
BEGIN_SDK
Add(EditMulti,13349763,3,3)
{
WorkCount=2
link(doWork1,14216812:doBringToFront,[(19,9)(19,125)])
link(doWork2,14216812:doColor,[(19,16)(19,118)])
}
Add(Panel,14216812,98,147)
{
Left=1
Top=1
Width=345
Height=20
Color=8388736
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
}
Add(Label,3063216,70,42)
{
Left=4
Top=1
Width=164
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Иванов пётр Васьльевич"
Point(doColor)
}
END_SDK
Add(ChildPanel,11679173,14,56)
{
}
BEGIN_SDK
Add(EditMulti,13349763,3,3)
{
WorkCount=2
link(doWork1,14216812:doBringToFront,[(19,9)(19,125)])
link(doWork2,14216812:doColor,[(19,16)(19,118)])
}
Add(Panel,14216812,35,105)
{
Left=1
Top=42
Width=345
Height=20
Color=8421504
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
}
Add(Label,3063216,98,56)
{
Left=4
Top=1
Width=155
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Ответ администратора"
Point(doColor)
}
END_SDK
END_SDK
Add(ChildPanel,7531748,11,10)
{
}
BEGIN_SDK
Add(EditMulti,9748301,3,3)
{
WorkCount=4
link(doWork1,7959237:doWork1,[(64,9)(64,76)])
link(doWork2,12134693:doWork2,[(8,16)(8,146)])
link(doWork3,7959237:doWork2,[(64,23)(64,83)])
link(doWork4,13581745:doColor,[(19,30)(19,118)])
}
Add(Panel,13581745,35,105)
{
Left=5
Top=10
Width=349
Height=42
Color=16777215
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
}
Add(ChildPanel,7959237,126,70)
{
}
BEGIN_SDK
Add(EditMulti,13349763,3,3)
{
WorkCount=2
link(doWork1,14216812:doBringToFront,[(19,9)(19,125)])
link(doWork2,14216812:doColor,[(19,16)(19,118)])
}
Add(Panel,14216812,182,105)
{
Left=1
Top=21
Width=345
Height=20
Color=12632256
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
}
Add(Label,3063216,91,21)
{
Left=4
Top=1
Width=353
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Это первое сообщение гостевой книги! Поздравляю!"
Point(doColor)
}
END_SDK
Add(ChildPanel,12134693,161,133)
{
}
BEGIN_SDK
Add(EditMulti,13349763,3,3)
{
WorkCount=2
link(doWork1,14216812:doBringToFront,[(19,9)(19,125)])
link(doWork2,14216812:doColor,[(19,16)(19,118)])
}
Add(Panel,14216812,35,105)
{
Left=1
Top=1
Width=345
Height=20
Color=8388736
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
}
Add(Label,3063216,7,0)
{
Left=4
Top=1
Width=88
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Vasya Pupkin"
Point(doColor)
}
END_SDK
END_SDK
END_SDK
Add(Button,6790904,294,238)
{
Left=10
Top=205
Width=195
Caption="Отправить"
}
Add(Panel,10864141,91,105)
{
Left=3
Top=38
Width=572
Height=251
Color=11169621
BorderWidth=0
BevelWidth=0
Point(doColor)
Point(doBringToFront)
link(onClick,6486489:onEvent1,[(185,111)(185,9)])
}
Add(Memo,12977488,119,189)
{
Left=10
Top=100
Width=195
Height=105
}
Add(Edit,10166422,196,161)
{
Left=80
Top=60
Width=125
Text=""
}
Add(Edit,6994094,189,154)
{
Left=80
Top=40
Width=125
Text=""
}
Add(Edit,5511073,182,147)
{
Left=80
Top=20
Width=125
Text=""
}
Add(Label,11531468,77,28)
{
Left=10
Top=25
Width=33
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Ник:"
Point(doColor)
}
Add(Label,11941780,91,42)
{
Left=10
Top=45
Width=26
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Url:"
Point(doColor)
}
Add(Label,5356643,462,168)
{
Left=10
Top=65
Width=47
Height=18
Color=8388736
Font=[Verdana,9,0,255,204]
Transparent=0
Caption="E-mail:"
Point(doColor)
Point(doFont)
}
Add(Label,3536610,126,77)
{
Left=10
Top=85
Width=86
Height=18
Font=[Verdana,9,0,16777215,204]
Transparent=0
Caption="Сообщение:"
Point(doColor)
}
Add(DoData,148777,434,315)
{
link(onEventData,8693935:doEvent1,[])
link(Data,6486489:Data6,[(440,159)(44,159)])
}
Add(Hub,11644571,42,154)
{
OutCount=3
link(onEvent1,10864141:doBringToFront,[])
link(onEvent2,12276026:doWork1,[(313,167)(313,216)])
}
Add(DoData,13841186,35,84)
{
link(onEventData,10864141:doColor,[(79,90)(79,118)])
link(Data,6486489:Data1,[(41,33)(9,33)])
}
Add(Hub,13760956,126,329)
{
link(onEvent1,12276026:doWork2,[(355,335)(355,223)])
link(onEvent2,12276026:doWork6,[(355,342)(355,251)])
}
Add(DoData,2039834,77,329)
{
link(onEventData,13760956:doEvent1,[])
link(Data,6486489:Data2,[(83,65)(16,65)])
}
Add(StrList,13510357,441,84)
{
Strings=#6:Normal|
}
Add(Font,2840267,378,175)
{
Font=[Verdana,9,0,255,204]
link(onFont,5356643:doFont,[])
link(Size,14837137:Text,[(384,156)(342,156)])
link(Color,6486489:Data3,[(391,44)(23,44)])
link(Name,8111486:Text,[])
link(Style,13510357:Text,[(405,152)(447,152)])
}
Add(StrList,8111486,392,91)
{
Strings=#7:Verdana|
}
Add(StrList,14837137,336,91)
{
Strings=#1:9|
}
Add(Hub,12230771,245,399)
{
link(onEvent1,12276026:doWork3,[(415,405)(415,230)])
link(onEvent2,12276026:doWork7,[(415,412)(415,258)])
}
Add(DoData,4292901,196,399)
{
link(onEventData,12230771:doEvent1,[])
link(Data,6486489:Data4,[(202,201)(30,201)])
}
Add(DoData,1666818,245,364)
{
link(onEventData,12276026:doWork8,[(415,370)(415,265)])
link(Data,6486489:Data5,[(251,184)(37,184)])
}
Add(Hub,8693935,483,308)
{
link(onEvent1,12276026:doWork4,[(534,314)(534,237)])
link(onEvent2,12276026:doWork9,[(534,321)(534,272)])
}
END_SDK
В виде html, с возможностью перетаскивания, и одновременно сохранения пропорций и положения элементов.
Задача возможно трудная, однако если есть хоть какие нибудь идеи - напишите