Вверх ↑
Этот топик читают: Гость
Ответов: 205
Рейтинг: 3
#1: 2008-04-29 13:11:30 ЛС | профиль | цитата
вот решил поресовать.. и состряпал
code_8949.txt
может кто чего ещё подскажет или выложит свою альтернативу...
------------ Дoбавленo:


Add(MainForm,1613375,175,28)
{
Left=20
Top=105
Width=707
Height=542
Point(Handle)
Point(onDblClick)
Point(MouseX)
Point(MouseY)
link(onCreate,11664156:doSelect,[(261,48)(261,125)(9,125)(9,153)])
link(onDblClick,8105290:doSwitch,[])
}
Add(Img_Rectangle,16242871,392,343)
{
Style=1
DrawSource=1
link(onDraw,8196296:doWork2,[])
link(Bitmap,10514763:Var3,[(398,247)])
link(Point1,5783795:Var3,[(405,240)])
link(Point2,356764:Var2,[])
link(Color,11641055:Var3,[(419,205)])
}
Add(PointXY,2503489,182,70)
{
link(X,1613375:MouseX,[])
link(Y,1613375:MouseY,[])
}
Add(Memory,7773992,364,49)
{
Point(Data)
link(Data,15388334:Data1,[(370,37)(280,37)(280,154)(188,154)])
}
Add(GetData,15388334,182,112)
{
link(Data,2503489:Point,[])
}
Add(Memory,798818,406,56)
{
Point(Data)
link(onData,8895359:doData,[(506,62)(506,314)(114,314)(114,342)])
link(Data,15388334:Data2,[(412,44)(304,44)(304,163)(195,163)])
}
Add(Switch,8105290,266,49)
{
DataOn=Integer(0)
DataOff=Integer(1)
link(onSwitch,3642310:doEvent,[])
}
Add(IndexToChanel,3642310,308,49)
{
link(onEvent1,7773992:doValue,[])
link(onEvent2,798818:doValue,[])
}
Add(Counter,1913330,476,343)
{
Max=9999999
link(onNext,5447752:doString,[])
}
Add(FormatStr,5447752,525,343)
{
DataCount=1
Mask="всего фигур: %1"
link(onFString,1613375:doCaption,[(569,349)(569,191)(163,191)(163,34)])
}
Add(RadioButton,11664156,21,147)
{
Left=10
Top=5
Width=100
Caption="круг"
link(onSelect,990174:doWork1,[(61,153)(61,258)])
}
Add(Case,14026926,175,336)
{
Value=Integer(0)
link(onNextCase,14568715:doCase,[])
link(onTrue,5820913:doDraw,[(215,349)(215,384)])
}
Add(Case,14568715,343,336)
{
Value=Integer(1)
link(onTrue,16242871:doDraw,[])
}
Add(Img_Ellipse,5820913,252,378)
{
DrawSource=1
link(onDraw,8196296:doWork3,[(452,384)])
link(Bitmap,10514763:Var2,[])
link(Point1,5783795:Var2,[(265,256)(384,256)])
link(Point2,356764:Var3,[(272,265)(428,265)(428,240)])
link(Color,11641055:Var2,[])
}
Add(ColorDialog,16531529,70,56)
{
link(onSelect,14875581:doValue,[])
}
Add(HubEx,8196296,448,336)
{
link(onEvent,1913330:doNext,[])
}
Add(Memory,14875581,119,56)
{
Default=Integer(255)
}
Add(Button,4498084,21,56)
{
Left=125
Top=10
Caption="color"
link(onClick,16531529:doOpen,[])
}
Add(Memory,11351064,126,252)
{
Default=Integer(0)
}
Add(DoData,8895359,126,336)
{
link(onEventData,14026926:doCase,[])
link(Data,11351064:Value,[])
}
Add(RadioButton,16344339,21,259)
{
Left=10
Top=25
Width=105
Caption="прямоугольник"
link(onSelect,990174:doWork2,[])
}
Add(ChanelToIndex,990174,77,252)
{
link(onIndex,11351064:doValue,[])
}
Add(GetDataEx,10514763,245,238)
{
Angle=3
link(Data,1613375:Handle,[(181,247)])
}
Add(GetDataEx,5783795,371,231)
{
Angle=3
link(Data,7773992:Value,[(370,240)])
}
Add(GetDataEx,356764,399,231)
{
link(Data,798818:Value,[])
}
Add(GetDataEx,11641055,266,196)
{
link(Data,14875581:Value,[(279,171)(125,171)])
}


вот ещё вариант...
карма: 1

0
файлы: 1code_8949.txt [1.4KB] [289]
Разработчик
Ответов: 26322
Рейтинг: 2147
#2: 2008-04-29 13:42:51 ЛС | профиль | цитата
millano, да вроде упрощать некуда, если только коммутатор упростить, вот так



Add(MainForm,1613375,462,210)
{
Left=20
Top=105
Width=707
Height=542
Point(Handle)
Point(onDblClick)
Point(MouseX)
Point(MouseY)
link(onDblClick,8105290:doSwitch,[])
}
Add(Img_Rectangle,16242871,679,525)
{
DrawSource=1
Style=1
Point(Point1)
Point(Point2)
link(onDraw,8196296:doWork2,[])
link(Bitmap,10514763:Var3,[(685,429)])
link(Color,11641055:Var3,[(692,387)])
link(Point1,3414219:Var3,[(699,422)])
link(Point2,356764:Var2,[])
}
Add(PointXY,2503489,469,252)
{
link(X,1613375:MouseX,[])
link(Y,1613375:MouseY,[])
}
Add(Memory,7773992,651,231)
{
Point(Data)
link(Data,15388334:Data1,[(657,219)(567,219)(567,336)(475,336)])
}
Add(GetData,15388334,469,294)
{
link(Data,2503489:Point,[])
}
Add(Memory,798818,700,238)
{
Point(Data)
link(onData,6954065:doEvent,[(744,244)(744,154)(299,154)(299,524)])
link(Data,15388334:Data2,[(706,226)(591,226)(591,345)(482,345)])
}
Add(Switch,8105290,525,231)
{
DataOn=Integer(0)
DataOff=Integer(1)
link(onSwitch,3642310:doEvent,[])
}
Add(IndexToChanel,3642310,595,231)
{
link(onEvent1,7773992:doValue,[])
link(onEvent2,798818:doValue,[])
}
Add(Counter,1913330,763,525)
{
Max=9999999
link(onNext,5447752:doString,[])
}
Add(FormatStr,5447752,812,525)
{
DataCount=1
Mask="всего фигур: %1"
link(onFString,1613375:doCaption,[(857,531)(857,185)(450,185)(450,216)])
}
Add(RadioButton,11664156,322,420)
{
Left=10
Top=5
Width=100
TabOrder=-1
Selected=0
Caption="круг"
link(onSelect,990174:doWork1,[(397,426)(397,461)])
}
Add(Img_Ellipse,5820913,539,560)
{
DrawSource=1
Point(Point1)
Point(Point2)
link(onDraw,8196296:doWork3,[(739,566)])
link(Bitmap,10514763:Var2,[])
link(Color,11641055:Var2,[])
link(Point1,3414219:Var2,[(559,504)(657,504)])
link(Point2,356764:Var1,[(566,408)])
}
Add(ColorDialog,16531529,357,210)
{
link(onSelect,14875581:doValue,[])
}
Add(HubEx,8196296,735,518)
{
link(onEvent,1913330:doNext,[])
}
Add(Memory,14875581,406,210)
{
Default=Integer(255)
}
Add(Button,4498084,308,210)
{
Left=125
Top=10
Caption="color"
link(onClick,16531529:doOpen,[])
}
Add(Memory,11351064,462,455)
{
Default=Integer(0)
}
Add(RadioButton,16344339,322,462)
{
Left=10
Top=25
Width=105
TabOrder=-1
Caption="прямоугольник"
link(onSelect,990174:doWork2,[])
}
Add(ChanelToIndex,990174,413,455)
{
link(onIndex,11351064:doValue,[])
}
Add(GetDataEx,10514763,532,420)
{
Angle=3
link(Data,1613375:Handle,[(468,429)])
}
Add(GetDataEx,356764,693,399)
{
link(Data,798818:Value,[])
}
Add(GetDataEx,11641055,539,378)
{
link(Data,14875581:Value,[(552,353)(412,353)])
}
Add(IndexToChanel,6954065,462,518)
{
Point(Index)
link(onEvent1,5820913:doDraw,[(516,524)(516,566)])
link(onEvent2,16242871:doDraw,[])
link(Index,11351064:Value,[])
}
Add(GetDataEx,3414219,644,413)
{
link(Data,7773992:Value,[])
}

карма: 22

1
Голосовали:Program_error
Ответов: 205
Рейтинг: 3
#3: 2008-04-29 15:01:55 ЛС | профиль | цитата
круто..
------------ Дoбавленo:

HELP//

Add(MainForm,1613375,147,84)
{
Left=20
Top=105
Width=707
Height=542
Point(Handle)
Point(onDblClick)
Point(MouseX)
Point(MouseY)
link(onDblClick,8105290:doSwitch,[])
}
Add(Img_Rectangle,16242871,392,483)
{
Style=1
DrawSource=1
link(onDraw,8196296:doWork2,[])
link(Bitmap,10514763:Var3,[(398,387)])
link(Point1,3414219:Var3,[(405,380)])
link(Point2,356764:Var2,[(412,427)(468,427)])
link(Color,11641055:Var3,[(419,324)])
}
Add(PointXY,2503489,154,182)
{
link(X,1613375:MouseX,[])
link(Y,1613375:MouseY,[])
}
Add(Memory,7773992,476,77)
{
Point(Data)
link(Data,12820244:Var3,[(482,58)])
}
Add(GetData,15388334,154,224)
{
link(Data,2503489:Point,[])
}
Add(Memory,798818,518,98)
{
Point(Data)
link(onData,12931536:doWork1,[(557,104)])
link(Data,14485467:Var3,[(524,86)])
}
Add(Switch,8105290,196,105)
{
DataOn=Integer(0)
DataOff=Integer(1)
Point(State)
link(onSwitch,12193750:doInfo,[])
}
Add(IndexToChanel,3642310,385,77)
{
link(onEvent1,7773992:doValue,[])
link(onEvent2,798818:doValue,[(471,90)(471,104)])
}
Add(Counter,1913330,476,483)
{
Max=9999999
link(onNext,5447752:doString,[])
}
Add(FormatStr,5447752,525,483)
{
DataCount=1
Mask="всего фигур: %1"
link(onFString,1613375:doCaption,[(570,489)(570,143)(135,143)(135,90)])
}
Add(RadioButton,11664156,21,322)
{
Left=10
Top=5
Width=100
TabOrder=-1
Selected=0
Caption="круг"
link(onSelect,990174:doWork1,[(61,328)(61,363)])
}
Add(Img_Ellipse,5820913,329,518)
{
DrawSource=1
link(onDraw,8196296:doWork3,[(452,524)])
link(Bitmap,10514763:Var2,[(335,454)(258,454)])
link(Point1,3414219:Var1,[(342,380)])
link(Point2,356764:Var1,[(349,366)])
link(Color,11641055:Var2,[(356,357)(265,357)])
}
Add(ColorDialog,16531529,70,280)
{
link(onSelect,14875581:doValue,[])
}
Add(HubEx,8196296,448,476)
{
link(onEvent,1913330:doNext,[])
}
Add(Memory,14875581,119,280)
{
Default=Integer(255)
}
Add(Button,4498084,21,280)
{
Left=125
Top=10
Caption="color"
link(onClick,16531529:doOpen,[])
}
Add(Memory,11351064,112,357)
{
Default=Integer(0)
}
Add(RadioButton,16344339,21,364)
{
Left=10
Top=25
Width=105
TabOrder=-1
Caption="прямоугольник"
link(onSelect,990174:doWork2,[])
}
Add(ChanelToIndex,990174,70,357)
{
Count=3
link(onIndex,11351064:doValue,[])
}
Add(GetDataEx,10514763,245,378)
{
Angle=3
link(Data,1613375:Handle,[(153,387)])
}
Add(GetDataEx,356764,455,357)
{
link(Data,5417299:Var,[(468,347)(524,347)])
}
Add(GetDataEx,11641055,252,315)
{
link(Data,14875581:Value,[(265,315)(125,315)])
}
Add(IndexToChanel,6954065,175,476)
{
Count=3
Point(Index)
link(onEvent1,5820913:doDraw,[(229,482)(229,524)])
link(onEvent2,16242871:doDraw,[])
link(Index,4730615:Data3,[(181,454)(132,454)])
link(onEvent3,3605961:doDraw,[(219,496)(219,538)])
}
Add(GetDataEx,3414219,378,371)
{
link(Data,1376915:Var,[(391,333)(461,333)])
}
Add(Img_Line,3605961,252,532)
{
DrawSource=1
link(onDraw,8196296:doWork1,[(382,538)(382,471)(452,471)])
link(Bitmap,10514763:Var1,[])
link(Point1,3414219:Var2,[(265,406)(391,406)])
link(Point2,356764:Var3,[(272,413)(485,413)(485,366)])
}
Add(RadioButton,11070680,21,413)
{
Left=10
Top=45
Width=105
TabOrder=-1
Caption="линия"
link(onSelect,990174:doWork3,[(62,419)(62,377)])
}
Add(IndexToChanel,12937287,315,105)
{
Count=3
Point(Index)
Point(Data)
link(Index,4730615:Data2,[(321,92)(271,92)(271,443)(125,443)])
link(Data,8105290:State,[(328,81)(264,81)(264,161)(202,161)])
link(onEvent1,9064622:doWork2,[])
link(onEvent2,9064622:doWork3,[(361,118)])
link(onEvent3,5949875:doEvent,[(383,125)(383,139)])
}
Add(GetData,4730615,112,399)
{
Count=3
link(Data,11351064:Value,[])
}
Add(HubEx,9064622,357,98)
{
link(onEvent,3642310:doEvent,[(376,111)(376,83)])
}
Add(IndexToChanel,5949875,574,133)
{
link(onEvent1,9528203:doEvent1,[(611,139)(611,132)])
link(onEvent2,425801:doValue,[(671,146)(671,174)])
}
Add(Memory,12087534,679,133)
{
Point(Data)
link(Data,15652182:Var,[])
}
Add(Memory,425801,728,168)
{
Point(Data)
link(onData,10786442:doValue,[(776,174)(776,20)])
link(Data,14485467:Var1,[(734,69)(517,69)])
}
Add(GetDataEx,12820244,448,49)
{
Angle=3
link(Data,15388334:Data1,[(305,58)(305,265)(160,265)])
}
Add(GetIndexData,1376915,455,189)
{
Count=3
link(Data1,1445111:Var1,[(461,156)])
link(Data2,1445111:Var2,[])
link(Data3,12087534:Value,[(475,177)(685,177)])
}
Add(GetDataEx,881062,511,147)
{
link(Data,798818:Value,[])
}
Add(GetDataEx,1445111,455,147)
{
Angle=1
link(Data,7773992:Value,[(482,156)])
}
Add(GetIndexData,5417299,518,217)
{
Count=3
link(Data1,881062:Var2,[])
link(Data2,881062:Var3,[(531,156)])
link(Data3,425801:Value,[(538,209)(734,209)])
}
Add(Informer,12193750,252,105)
{
link(onContinue,12937287:doEvent,[])
link(onInfo,16186797:doData,[(296,118)(296,202)])
}
Add(DoData,16186797,315,196)
{
link(onEventData,6972756:doEvent1,[])
link(Data,4730615:Data1,[(321,184)(219,184)(219,443)(118,443)])
}
Add(Hub,6972756,357,196)
{
link(onEvent1,1376915:doIndex,[(422,202)(422,195)])
link(onEvent2,5417299:doIndex,[(453,209)(453,223)])
}
Add(GetDataEx,14485467,504,77)
{
Angle=3
link(Data,15388334:Data2,[(340,86)(340,268)(167,268)])
}
Add(HubEx,12931536,553,105)
{
Angle=1
link(onEvent,6954065:doEvent,[(557,303)(163,303)(163,482)])
}
Add(Hub,13533512,833,14)
{
link(onEvent1,4374995:doData,[])
link(onEvent2,12931536:doWork3,[(870,27)(870,118)])
}
Add(Memory,10786442,791,14)
{
Point(Data)
link(onData,13533512:doEvent1,[])
}
Add(GetIndexData,15652182,679,84)
{
link(Data1,12820244:Var1,[(685,41)(461,41)])
link(Data2,10786442:Value,[(692,72)(797,72)])
}
Add(Hub,9528203,623,126)
{
link(onEvent1,11707832:doWork3,[(662,132)])
link(onEvent2,12087534:doValue,[])
}
Add(DoData,4374995,896,14)
{
Data=Integer(1)
link(onEventData,11707832:doWork2,[(933,20)(933,76)(648,76)(648,111)])
}
Add(HubEx,11707832,658,98)
{
Angle=3
link(onEvent,15652182:doIndex,[(662,90)])
}

помогите не могу додуматься как сделать так что бы при выборе начертания линии первый дв-щелчок в рабочем поле 1-я координата. 2-дв-щелчок вторая ,а третья координата берётся из памяти последнего... (может и запутался но...)
карма: 1

0
Ответов: 5446
Рейтинг: 323
#4: 2008-04-29 15:15:39 ЛС | профиль | цитата
Чаво-чаво?
карма: 1

0
Ответов: 205
Рейтинг: 3
#5: 2008-04-29 15:33:27 ЛС | профиль | цитата
по пунктам..
1.Выбираю тип линия ..
2.двойным щелчком тыкаем в Рабочее поля формы .. (сохраняется первая координата)
3.двойным щелчком тыкаем ещё раз в другом месте (сохраняется вторая координата(заноситься в память и потом будет браться от из него) )
4.Формируется линия ... и выводится на экран
5.Потом ещё раз кликаем..двойным щелчком и появляется линия (продолжения .. предведущей..)

карма: 1

0
Ответов: 5446
Рейтинг: 323
#6: 2008-04-29 17:02:54 ЛС | профиль | цитата
Ну например так: поменять Switch на Counter (значения от 1 до 3). Для режимов Прямоугольник и Эллипс состояние №3 не используется (сброс в 1 и повтор), а для Линии 3 будет означать запись сразу второго набора координат и рисование (читай - сброс в 2).

Если проще - то для режимов Прямоугольник и Эллипс по DblClick при Switch = On менять снова состояние, а для Линии - нет.

И, в любом случае, после отрисовки линии - копируй 2ю координату на место первой.
карма: 1

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