Вверх ↑
Этот топик читают: Гость
Ответов: 495
Рейтинг: 163
#1: 2020-07-14 19:15:02 ЛС | профиль | цитата
Всем привет, возникла идея использовать OpenGL для более красивого (сглаженного) рисования в своих проектах, вместо штатных элементов. Непрерывное рисование( обновление ) сцены таймером N раз в секунду не нужно. Только по событию.
Набросал примерчик и столкнулся с проблемой, не все события отрисовывают правильно.
Возможно чего то накосячил или как то синхронизировать надо или еще чего (доп отривовку добавлять) , может каким другим способом (путём)пойти, подскажите ?
В примере при нажатии на кнопку всё -ОК, при выборе из таблицы -нет.
пример

Add(Button,8764201,70,84)
{
Left=310
Top=15
Width=90
Caption="Рассчёт"
link(onClick,2159489:doEvent1,[])
}
Add(Edit,13883334,301,98)
{
Left=92
Top=15
Text="321"
}
Add(Label,13311803,70,182)
{
Left=15
Top=20
Width=72
Height=17
Caption="Диаметр, мм"
}
Add(For,7740520,224,98)
{
Start=3
End=100
link(onEvent,2317069:doCalc,[(270,104)(270,188)])
link(End,4115576:Text,[])
}
Add(MathParse,2317069,294,182)
{
MathStr="(sin ((360/%1)/2))*%2"
AngleMode=1
link(onResult,3039440:doOperation,[])
link(X1,12869071:Var2,[(300,170)(230,170)])
link(X2,4326351:Var2,[])
}
Add(GetDataEx,12869071,224,140)
{
link(Data,7740520:Position,[])
}
Add(StringTable,262099,504,182)
{
Left=15
Top=60
Width=465
Height=250
Columns=#16:Диаметр, мм.=100|12:Частей, шт. |10:Хорда, мм.|10:Округленно|
Grid=0
Point(onMouseUp)
link(onClick,12261816:doEvent1,[(548,188)(548,251)])
}
Add(FormatStr,13922804,427,182)
{
DataCount=4
Mask="%1;%2;%3;%4"
link(onFString,262099:doAdd,[])
link(Str1,4326351:Var3,[(433,152)])
link(Str2,12869071:Var3,[(440,145)])
link(Str3,3039440:Result,[(447,170)(375,170)(375,228)(342,228)])
link(Str4,4918351:Result,[(454,170)(474,170)(474,229)(391,229)])
}
Add(Math,3039440,336,182)
{
OpType=35
Op2=0.00001
link(onResult,4918351:doOperation,[])
}
Add(GetDataEx,4326351,301,147)
{
link(Data,13883334:Text,[])
}
Add(Hub,2159489,140,84)
{
InCount=2
OutCount=3
link(onEvent1,262099:doClear,[(486,90)(486,195)])
link(onEvent2,7740520:doFor,[(214,97)(214,104)])
}
Add(Math,4918351,385,182)
{
OpType=35
Op2=0.01
link(onResult,13922804:doString,[])
}
Add(Edit,4115576,231,42)
{
Left=237
Top=15
Text="16"
}
Add(Label,3312127,70,133)
{
Left=155
Top=18
Width=77
Height=17
Caption="Расчёт от 3 до"
}
Add(GL_Main,12986311,210,287)
{
Color=16777215
TwoSide=0
AASamples=1
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(263,300)(263,335)])
link(Handle,7534867:Var1,[])
}
Add(Timer,9506849,112,364)
{
Interval=100
Enable=1
}
Add(GL_GTools,771925,273,364)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,224,364)
{
InCount=2
OutCount=5
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,7484386:doEvent,[(256,384)(256,489)])
link(onEvent4,771925:doPopMatrix,[(265,391)(265,384)])
link(onEvent5,12986311:doFlip,[(250,398)(250,337)(200,337)(200,307)])
}
Add(Hub,16299401,77,287)
{
OutCount=4
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent3,9506849:doTimer,[(101,307)(101,370)])
link(onEvent4,2159489:doEvent2,[(119,314)(119,97)])
}
Add(GL_Perspective,3410847,273,329)
{
Fovy=30
}
Add(GL_Disk,5637833,525,504)
{
OutRadius=1.6
Stacks=1
Point(Slices)
Point(Stacks)
link(onDraw,6148131:doWork2,[])
link(Slices,2952427:Var2,[])
}
Add(GL_Color,13997617,476,504)
{
Color=12632256
link(onColor,5637833:doDraw,[])
}
Add(MultiStrPart,14001167,595,245)
{
Count=4
link(onSplit,8650820:doOperation,[])
link(Str,262099:Select,[(601,229)(517,229)])
}
Add(MainForm,2953706,28,287)
{
Width=763
Height=401
Caption="Хорда"
Position=1
link(onActivate,16299401:doEvent1,[])
}
Add(GL_Disk,8052256,364,497)
{
InRadius=1.6
OutRadius=1.6
Slices=50
Stacks=1
link(onDraw,8728187:doWork2,[])
}
Add(GL_Color,8472235,322,497)
{
Color=255
Alpha=0.5
link(onColor,8052256:doDraw,[])
}
Add(Label,7194114,798,245)
{
Left=20
Top=329
Width=20
Font=[MS Sans Serif,10,1,16711680,1]
Transparent=0
Caption=""
}
Add(FormatStr,10033650,756,245)
{
DataCount=3
Mask="Радиус=%3мм %1 Хорда=%2мм"
link(onFString,7194114:doText,[])
link(Str2,14001167:Part4,[(769,223)(634,223)(634,283)(622,283)])
link(Str3,8650820:Result,[(776,236)(748,236)(748,285)(657,285)])
}
Add(Convertor,13355228,707,245)
{
Mode=16
Word_1="часть"
Word_2="части"
Word_5="частей"
link(onResult,10033650:doString,[])
link(Data,1840627:Var3,[(713,236)(699,236)(699,306)])
}
Add(GL_GluTools,12198675,315,287)
{
DrawStyle=1
Orientation=0
Point(doDrawStyle)
}
Add(GetDataEx,1840627,602,301)
{
link(Data,14001167:Part2,[])
}
Add(Math,8650820,651,245)
{
OpType=3
Op2=2
link(onResult,13355228:doConvert,[])
link(Op1,14001167:Part1,[(657,236)(643,236)(643,291)(601,291)])
}
Add(ChildPanel,7534867,210,238)
{
}
BEGIN_SDK
Add(EditMulti,1983358,21,21)
{
VarCount=1
Width=83
Height=88
link(Var1,4591409:Handle,[(27,82)(55,82)])
}
Add(Panel,4591409,49,42)
{
Left=490
Top=60
Width=250
Height=250
Point(Handle)
}
END_SDK
Add(GL_PrimSizes,7310423,623,504)
{
Size=4
link(onSize,11735507:doEvent1,[])
}
Add(GL_Disk,5960140,749,511)
{
OutRadius=1.6
Stacks=1
Point(Slices)
Point(Stacks)
link(onDraw,10398903:doPointSize,[])
link(Slices,2952427:Var3,[(769,474)])
}
Add(GetDataEx,2952427,539,469)
{
link(Data,1840627:Var1,[(545,306)])
}
Add(GL_PrimSizes,10398903,791,504)
{
link(onSize,5764263:doWork2,[(832,510)(832,475)])
}
Add(GL_Color,9607631,707,511)
{
Color=0
link(onColor,5960140:doDraw,[])
}
Add(ChanelToIndex,5764263,854,462)
{
link(onIndex,7480950:In,[])
}
Add(Hub,11735507,672,504)
{
link(onEvent1,5764263:doWork1,[(697,510)(697,468)])
link(onEvent2,9607631:doColor,[])
}
Add(LineBreak,12943196,273,301)
{
link(Out,12198675:doDrawStyle,[])
Primary=[7480950,630,161]
}
Add(CheckBox,8844065,273,427)
{
Left=490
Top=20
Width=70
Checked=0
Caption="Диаметр"
}
Add(CheckBox,7194394,420,427)
{
Left=575
Top=20
Width=70
Checked=0
Caption="Связи"
}
Add(CheckBox,11268426,574,427)
{
Left=650
Top=20
Checked=0
Caption="Точки"
}
Add(IndexToChanel,7484386,273,483)
{
Point(Index)
link(onEvent1,8728187:doWork1,[(410,489)])
link(onEvent2,8472235:doColor,[(313,496)(313,503)])
link(Index,8844065:Checked,[])
}
Add(IndexToChanel,13582094,420,497)
{
Point(Index)
link(onEvent1,6148131:doWork1,[(464,503)(464,489)(564,489)])
link(onEvent2,13997617:doColor,[])
link(Index,7194394:Checked,[])
}
Add(IndexToChanel,13106668,574,504)
{
Point(Index)
link(onEvent2,7310423:doPointSize,[])
link(Index,11268426:Checked,[])
}
Add(HubEx,8728187,406,497)
{
link(onEvent,13582094:doEvent,[])
}
Add(HubEx,6148131,560,504)
{
link(onEvent,13106668:doEvent,[])
}
Add(Hub,12261816,560,245)
{
link(onEvent1,14001167:doSplit,[])
link(onEvent2,1670417:In,[(585,258)(585,335)])
}
Add(LineBreak,12539957,161,413)
{
link(Out,1049454:doEvent2,[(207,419)(207,377)])
Primary=[1670417,441,-84]
}
Add(Button,16630746,157,364)
{
Left=15
Top=40
Width=465
Caption="При нажатии на эту кнопку работает ,а при выборе из таблицы нет"
link(onClick,1049454:doEvent1,[])
}

WIN 7 64bit

Редактировалось 2 раз(а), последний 2020-07-14 19:25:16
карма: 4

0
Ответов: 8926
Рейтинг: 823
#2: 2020-07-14 19:41:30 ЛС | профиль | цитата
tig-rrr, по времени не успевает


Add(Button,8764201,189,35)
{
Left=310
Top=15
Width=90
Caption="Рассчёт"
link(onClick,2159489:doEvent1,[])
}
Add(Edit,13883334,420,49)
{
Left=92
Top=15
Text="321"
}
Add(Label,13311803,189,133)
{
Left=15
Top=20
Width=72
Height=17
Caption="Диаметр, мм"
}
Add(For,7740520,343,49)
{
Start=3
End=100
link(onEvent,2317069:doCalc,[(389,55)(389,139)])
link(End,4115576:Text,[])
}
Add(MathParse,2317069,413,133)
{
MathStr="(sin ((360/%1)/2))*%2"
AngleMode=1
link(onResult,3039440:doOperation,[])
link(X1,12869071:Var2,[(419,121)(349,121)])
link(X2,4326351:Var2,[])
}
Add(GetDataEx,12869071,343,91)
{
link(Data,7740520:Position,[])
}
Add(StringTable,262099,623,133)
{
Left=15
Top=60
Width=465
Height=250
Columns=#16:Диаметр, мм.=100|12:Частей, шт. |10:Хорда, мм.|10:Округленно|
Grid=0
Point(onMouseUp)
link(onClick,12261816:doEvent1,[(667,139)(667,202)])
}
Add(FormatStr,13922804,546,133)
{
DataCount=4
Mask="%1;%2;%3;%4"
link(onFString,262099:doAdd,[])
link(Str1,4326351:Var3,[(552,103)])
link(Str2,12869071:Var3,[(559,96)])
link(Str3,3039440:Result,[(566,121)(494,121)(494,179)(461,179)])
link(Str4,4918351:Result,[(573,121)(593,121)(593,180)(510,180)])
}
Add(Math,3039440,455,133)
{
OpType=35
Op2=0.00001
link(onResult,4918351:doOperation,[])
}
Add(GetDataEx,4326351,420,98)
{
link(Data,13883334:Text,[])
}
Add(Hub,2159489,259,35)
{
InCount=2
OutCount=3
link(onEvent1,262099:doClear,[(605,41)(605,146)])
link(onEvent2,7740520:doFor,[(333,48)(333,55)])
}
Add(Math,4918351,504,133)
{
OpType=35
Op2=0.01
link(onResult,13922804:doString,[])
}
Add(Edit,4115576,350,-7)
{
Left=237
Top=15
Text="16"
}
Add(Label,3312127,189,84)
{
Left=155
Top=18
Width=77
Height=17
Caption="Расчёт от 3 до"
}
Add(GL_Main,12986311,329,238)
{
Color=16777215
TwoSide=0
AASamples=1
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(382,251)(382,286)])
link(Handle,7534867:Var1,[])
}
Add(Timer,9506849,266,378)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,3607840:doWork3,[(326,384)])
}
Add(GL_GTools,771925,392,315)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,343,315)
{
OutCount=5
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,7484386:doEvent,[(375,335)(375,440)])
link(onEvent4,771925:doPopMatrix,[(384,342)(384,335)])
link(onEvent5,12986311:doFlip,[(369,349)(369,288)(319,288)(319,258)])
}
Add(Hub,16299401,196,238)
{
OutCount=4
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent4,2159489:doEvent2,[(238,265)(238,48)])
}
Add(GL_Perspective,3410847,392,280)
{
Fovy=30
}
Add(GL_Disk,5637833,644,455)
{
OutRadius=1.6
Stacks=1
Point(Slices)
Point(Stacks)
link(onDraw,6148131:doWork2,[])
link(Slices,2952427:Var2,[])
}
Add(GL_Color,13997617,595,455)
{
Color=12632256
link(onColor,5637833:doDraw,[])
}
Add(MultiStrPart,14001167,714,196)
{
Count=4
link(onSplit,8650820:doOperation,[])
link(Str,262099:Select,[(720,180)(636,180)])
}
Add(MainForm,8454304,147,238)
{
Width=763
Height=401
Caption="Хорда"
Position=1
link(onActivate,16299401:doEvent1,[])
}
Add(GL_Disk,8052256,483,448)
{
InRadius=1.6
OutRadius=1.6
Slices=50
Stacks=1
link(onDraw,8728187:doWork2,[])
}
Add(GL_Color,8472235,441,448)
{
Color=255
Alpha=0.5
link(onColor,8052256:doDraw,[])
}
Add(Label,7194114,917,196)
{
Left=20
Top=329
Width=20
Font=[MS Sans Serif,10,1,16711680,1]
Transparent=0
Caption=""
}
Add(FormatStr,10033650,875,196)
{
DataCount=3
Mask="Радиус=%3мм %1 Хорда=%2мм"
link(onFString,7194114:doText,[])
link(Str2,14001167:Part4,[(888,174)(753,174)(753,234)(741,234)])
link(Str3,8650820:Result,[(895,187)(867,187)(867,236)(776,236)])
}
Add(Convertor,13355228,826,196)
{
Mode=16
Word_1="часть"
Word_2="части"
Word_5="частей"
link(onResult,10033650:doString,[])
link(Data,1840627:Var3,[(832,187)(818,187)(818,257)])
}
Add(GL_GluTools,12198675,448,238)
{
DrawStyle=1
Orientation=0
Point(doDrawStyle)
}
Add(GetDataEx,1840627,721,252)
{
link(Data,14001167:Part2,[])
}
Add(Math,8650820,770,196)
{
OpType=3
Op2=2
link(onResult,13355228:doConvert,[])
link(Op1,14001167:Part1,[(776,187)(762,187)(762,242)(720,242)])
}
Add(ChildPanel,7534867,329,189)
{
}
BEGIN_SDK
Add(EditMulti,1983358,21,21)
{
VarCount=1
Width=83
Height=88
link(Var1,4591409:Handle,[(27,82)(55,82)])
}
Add(Panel,4591409,49,42)
{
Left=490
Top=60
Width=250
Height=250
Point(Handle)
}
END_SDK
Add(GL_PrimSizes,7310423,742,455)
{
Size=4
link(onSize,9607631:doColor,[])
}
Add(GL_Disk,5960140,826,455)
{
OutRadius=1.6
Stacks=1
Point(Slices)
Point(Stacks)
link(onDraw,10398903:doPointSize,[])
link(Slices,2952427:Var3,[(846,425)])
}
Add(GetDataEx,2952427,658,420)
{
link(Data,1840627:Var1,[(664,257)])
}
Add(GL_PrimSizes,10398903,868,448)
{
}
Add(GL_Color,9607631,784,455)
{
Color=0
link(onColor,5960140:doDraw,[])
}
Add(CheckBox,8844065,392,378)
{
Left=490
Top=20
Width=70
Checked=0
Caption="Диаметр"
}
Add(CheckBox,7194394,539,378)
{
Left=575
Top=20
Width=70
Checked=0
Caption="Связи"
}
Add(CheckBox,11268426,693,378)
{
Left=650
Top=20
Checked=0
Caption="Точки"
}
Add(IndexToChanel,7484386,392,434)
{
Point(Index)
link(onEvent1,8728187:doWork1,[(529,440)])
link(onEvent2,8472235:doColor,[(432,447)(432,454)])
link(Index,8844065:Checked,[])
}
Add(IndexToChanel,13582094,539,448)
{
Point(Index)
link(onEvent1,6148131:doWork1,[(583,454)(583,440)(683,440)])
link(onEvent2,13997617:doColor,[])
link(Index,7194394:Checked,[])
}
Add(IndexToChanel,13106668,693,455)
{
Point(Index)
link(onEvent2,7310423:doPointSize,[])
link(Index,11268426:Checked,[])
}
Add(HubEx,8728187,525,448)
{
link(onEvent,13582094:doEvent,[])
}
Add(HubEx,6148131,679,455)
{
link(onEvent,13106668:doEvent,[])
}
Add(Hub,12261816,679,196)
{
link(onEvent1,14001167:doSplit,[])
link(onEvent2,9506849:doTimer,[(704,209)(704,363)(256,363)(256,384)])
}
Add(Button,16630746,276,315)
{
Left=15
Top=40
Width=465
Caption="При нажатии на эту кнопку работает ,а при выборе из таблицы нет"
link(onClick,3607840:doWork2,[])
}
Add(HubEx,3607840,322,315)
{
link(onEvent,1049454:doEvent1,[])
}

карма: 19

0
Ответов: 2267
Рейтинг: 676
#3: 2020-07-15 00:43:50 ЛС | профиль | цитата
tig-rrr, обманывает вас Леонид, все OpenGL успевает. Только после отрисовки OpenGL, панель получает команду по обновлению (видно таблица старается) вот и стирает система ваше художество. Достаточно в схеме Леонида (да и не только в его) переместить форму или как по другому спровоцировать систему на перерисовку формы и ее элементов и нет вашего художества.
Так что как вариант, как нарисуете тяните рисунок туда где система не сотрет. Не исключаю что есть и более элегантный вариант решения, но пока ничего на ум не приходит.
Схема

Add(Button,8764201,112,70)
{
Left=310
Top=15
Width=90
Caption="Рассчёт"
link(onClick,2159489:doEvent1,[])
}
Add(Edit,13883334,343,84)
{
Left=92
Top=15
Text="321"
}
Add(Label,13311803,112,168)
{
Left=15
Top=20
Width=72
Height=17
Caption="Диаметр, мм"
}
Add(For,7740520,266,84)
{
Start=3
End=100
link(onEvent,2317069:doCalc,[(312,90)(312,174)])
link(End,4115576:Text,[])
}
Add(MathParse,2317069,336,168)
{
MathStr="(sin ((360/%1)/2))*%2"
AngleMode=1
link(onResult,3039440:doOperation,[])
link(X1,12869071:Var2,[(342,156)(272,156)])
link(X2,4326351:Var2,[])
}
Add(GetDataEx,12869071,266,126)
{
link(Data,7740520:Position,[])
}
Add(StringTable,262099,546,168)
{
Left=15
Top=60
Width=465
Height=250
Columns=#16:Диаметр, мм.=100|12:Частей, шт. |10:Хорда, мм.|10:Округленно|
Grid=0
Point(onMouseUp)
link(onClick,12261816:doEvent1,[(590,174)(590,237)])
}
Add(FormatStr,13922804,469,168)
{
DataCount=4
Mask="%1;%2;%3;%4"
link(onFString,262099:doAdd,[])
link(Str1,4326351:Var3,[(475,138)])
link(Str2,12869071:Var3,[(482,131)])
link(Str3,3039440:Result,[(489,156)(417,156)(417,214)(384,214)])
link(Str4,4918351:Result,[(496,156)(516,156)(516,215)(433,215)])
}
Add(Math,3039440,378,168)
{
OpType=35
Op2=0.00001
link(onResult,4918351:doOperation,[])
}
Add(GetDataEx,4326351,343,133)
{
link(Data,13883334:Text,[])
}
Add(Hub,2159489,182,70)
{
InCount=2
OutCount=3
link(onEvent1,262099:doClear,[(528,76)(528,181)])
link(onEvent2,7740520:doFor,[(256,83)(256,90)])
}
Add(Math,4918351,427,168)
{
OpType=35
Op2=0.01
link(onResult,13922804:doString,[])
}
Add(Edit,4115576,273,28)
{
Left=237
Top=15
Text="16"
}
Add(Label,3312127,112,119)
{
Left=155
Top=18
Width=77
Height=17
Caption="Расчёт от 3 до"
}
Add(GL_Main,12986311,252,273)
{
Color=16777215
TwoSide=0
AASamples=1
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(305,286)(305,321)])
link(Handle,7534867:Var1,[])
}
Add(GL_GTools,771925,315,350)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,175,350)
{
InCount=2
OutCount=7
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,7484386:doEvent,[(298,370)(298,475)])
link(onEvent4,771925:doPopMatrix,[(307,377)(307,370)])
link(onEvent5,7534867:doWork1,[(223,384)(223,230)])
link(onEvent6,12986311:doFlip,[(231,391)(231,293)])
link(onEvent7,7534867:doWork2,[(240,398)(240,237)])
}
Add(Hub,16299401,119,273)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent3,2159489:doEvent2,[(157,293)(157,83)])
}
Add(GL_Perspective,3410847,315,315)
{
Fovy=30
}
Add(GL_Disk,5637833,567,490)
{
OutRadius=1.6
Stacks=1
Point(Slices)
Point(Stacks)
link(onDraw,6148131:doWork2,[])
link(Slices,2952427:Var2,[])
}
Add(GL_Color,13997617,518,490)
{
Color=12632256
link(onColor,5637833:doDraw,[])
}
Add(MultiStrPart,14001167,637,231)
{
Count=4
link(onSplit,8650820:doOperation,[])
link(Str,262099:Select,[(643,215)(559,215)])
}
Add(MainForm,10062641,70,273)
{
Width=763
Height=401
Caption="Хорда"
Position=1
link(onActivate,16299401:doEvent1,[])
}
Add(GL_Disk,8052256,406,483)
{
InRadius=1.6
OutRadius=1.6
Slices=50
Stacks=1
link(onDraw,8728187:doWork2,[])
}
Add(GL_Color,8472235,364,483)
{
Color=255
Alpha=0.5
link(onColor,8052256:doDraw,[])
}
Add(Label,7194114,840,231)
{
Left=20
Top=329
Width=20
Font=[MS Sans Serif,10,1,16711680,1]
Transparent=0
Caption=""
}
Add(FormatStr,10033650,798,231)
{
DataCount=3
Mask="Радиус=%3мм %1 Хорда=%2мм"
link(onFString,7194114:doText,[])
link(Str2,14001167:Part4,[(811,209)(676,209)(676,269)(664,269)])
link(Str3,8650820:Result,[(818,222)(790,222)(790,271)(699,271)])
}
Add(Convertor,13355228,749,231)
{
Mode=16
Word_1="часть"
Word_2="части"
Word_5="частей"
link(onResult,10033650:doString,[])
link(Data,1840627:Var3,[(755,222)(741,222)(741,292)])
}
Add(GL_GluTools,12198675,357,273)
{
DrawStyle=1
Orientation=0
Point(doDrawStyle)
}
Add(GetDataEx,1840627,644,287)
{
link(Data,14001167:Part2,[])
}
Add(Math,8650820,693,231)
{
OpType=3
Op2=2
link(onResult,13355228:doConvert,[])
link(Op1,14001167:Part1,[(699,222)(685,222)(685,277)(643,277)])
}
Add(GL_PrimSizes,7310423,665,490)
{
Size=4
link(onSize,11735507:doEvent1,[])
}
Add(GL_Disk,5960140,791,497)
{
OutRadius=1.6
Stacks=1
Point(Slices)
Point(Stacks)
link(onDraw,10398903:doPointSize,[])
link(Slices,2952427:Var3,[(811,460)])
}
Add(GetDataEx,2952427,581,455)
{
link(Data,1840627:Var1,[(587,292)])
}
Add(GL_PrimSizes,10398903,833,490)
{
link(onSize,5764263:doWork2,[(874,496)(874,461)])
}
Add(GL_Color,9607631,749,497)
{
Color=0
link(onColor,5960140:doDraw,[])
}
Add(ChanelToIndex,5764263,896,448)
{
link(onIndex,7480950:In,[])
}
Add(Hub,11735507,714,490)
{
link(onEvent1,5764263:doWork1,[(739,496)(739,454)])
link(onEvent2,9607631:doColor,[])
}
Add(LineBreak,10071192,315,287)
{
link(Out,12198675:doDrawStyle,[])
Primary=[7480950,630,161]
}
Add(CheckBox,8844065,315,413)
{
Left=490
Top=20
Width=70
Checked=0
Caption="Диаметр"
}
Add(CheckBox,7194394,462,413)
{
Left=575
Top=20
Width=70
Checked=0
Caption="Связи"
}
Add(CheckBox,11268426,616,413)
{
Left=650
Top=20
Checked=0
Caption="Точки"
}
Add(IndexToChanel,7484386,315,469)
{
Point(Index)
link(onEvent1,8728187:doWork1,[(452,475)])
link(onEvent2,8472235:doColor,[(355,482)(355,489)])
link(Index,8844065:Checked,[])
}
Add(IndexToChanel,13582094,462,483)
{
Point(Index)
link(onEvent1,6148131:doWork1,[(506,489)(506,475)(606,475)])
link(onEvent2,13997617:doColor,[])
link(Index,7194394:Checked,[])
}
Add(IndexToChanel,13106668,616,490)
{
Point(Index)
link(onEvent2,7310423:doPointSize,[])
link(Index,11268426:Checked,[])
}
Add(HubEx,8728187,448,483)
{
link(onEvent,13582094:doEvent,[])
}
Add(HubEx,6148131,602,490)
{
link(onEvent,13106668:doEvent,[])
}
Add(Hub,12261816,602,231)
{
link(onEvent1,14001167:doSplit,[])
link(onEvent2,1670417:In,[(627,244)(627,321)])
}
Add(LineBreak,11428786,126,392)
{
link(Out,1049454:doEvent2,[(165,398)(165,363)])
Primary=[1670417,518,-77]
}
Add(Button,16630746,129,350)
{
Left=15
Top=40
Width=465
Caption="При нажатии на эту кнопку работает ,а при выборе из таблицы нет"
link(onClick,1049454:doEvent1,[])
}
Add(ChildPanel,7534867,252,224)
{
}
BEGIN_SDK
Add(EditMulti,1983358,21,21)
{
WorkCount=2
VarCount=1
Width=608
Height=305
link(Var1,15040464:Var1,[(27,96)])
link(doWork1,5103000:doClear,[(269,27)(269,62)])
link(doWork2,16454260:doCapture,[(165,34)(165,125)])
}
Add(Panel,4591409,49,42)
{
Left=490
Top=60
Width=250
Height=250
Point(Handle)
}
Add(Image,5103000,301,49)
{
Width=250
Height=250
Align=5
Color=16777215
Point(Handle)
}
Add(ScreenShort,16454260,308,119)
{
link(onCapture,5103000:doLoad,[(390,125)(390,40)(289,40)(289,55)])
link(Handle,15040464:Var2,[])
}
Add(GetDataEx,15040464,308,91)
{
link(Data,5103000:Handle,[])
}
END_SDK

Редактировалось 3 раз(а), последний 2020-07-15 00:50:40
карма: 11

0
Ответов: 2059
Рейтинг: 132
#4: 2020-07-15 01:15:36 ЛС | профиль | цитата
tig-rrr писал(а):
Непрерывное рисование( обновление ) сцены таймером N раз в секунду не нужно.

Если ты сюда полез, то всё пишется\рисуется в буфер, а выводить буфер в handle, или ещё куда нужно, или по таймеру(FPS=60), или в конце каждого цикла - классика жанра GL и DX.
По событию не получится, не стоит зря стараться...
Всегда что-то будет затираться.
По событию ты только в буфере чего-то можешь менять!
Посмотри, как все ГУИ в графике делаются.
Приём заявок на "Вечный двигатель" окончен в виду моря, ахринеть каких, красивых и изящных решений.
Imgui, например.

Редактировалось 8 раз(а), последний 2020-07-15 01:55:58
карма: 6

0
Ответов: 495
Рейтинг: 163
#5: 2020-07-15 22:08:56 ЛС | профиль | цитата
sla8a писал(а):
пока ничего на ум не приходит

Спасибо, но этот вариант у меня не работает - затирается и по кнопке и из таблицы..
flint2 писал(а):
Если ты сюда полез
flint2 писал(а):
По событию не получится
- Спасибо,
понял...
карма: 4

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