ПредишенСледващото

Динамично създаване и изтриване на обекти

Разбира се, винаги бихте могли предварително да създаде всички необходими обекти, да ги скрие от потребителя и след това показва правилния път. Но това не е много удобно решение, особено за игри или проекти със сложен код. Тук стигаме до сърцето. От версия 4.9.8, можете динамично да създадете най-основните предмети и дори да ги изтриете (за да спестите памет) с помощта на DeleteObject команда. За да промените свойствата на динамично създадените обекти използвате SetObjectParam.

Ето списък от команди, които ви позволяват да създавате динамично обекти:
  • Създаване на бутон - CreateTextButton ( "inlabel", "outlabel $, X, Y, W, з, текст")
  • Създаване на текстов обект - CreateText ( "inlabel", "outlabel $, X, Y, текст")
  • Създаване на текст с лентата за превъртане - CreateParagraph ( "inlabel", "outlabel $, X, Y, W, з, текст")
  • Създаване на кръг - CreateCircle ( "inlabel", "outlabel $, X, Y, т, п, R, G, б")
  • Създаване на правоъгълника - CreateRectangle ( "inlabel", "outlabel $, X, Y, т, п, R, G, б")
  • Създаване линия (относително позициониране) - CreateLine ( "inlabel", "outlabel $, X, Y, т, п, R, G, б")
  • Създаване на правоъгълник (абсолютно позициониране) - CreateLineAB ( "inlabel", "outlabel $, X1, Y1, Х2, Y2, R, G, б")
  • Създаване активен район - CreateHotSpot ( "inlabel", "outlabel $, X, Y, W, H"),
  • Създаване на скрипт - CreateScript ( "inlabel", "outlabel $")
Къде.
х - координиране на обекта по оста х
Y - координиране на обекта заедно у оста
w - ширината на обекта
ч - височина на обекта
R. гр. б - цвят на обект в RGB система (стойности от 0 до 255)
текст - текстовия обект
inlabel - потребителско име на обекта, например, Текст. Ако проектът вече има един обект със същото име, името на потребителя, за да бъдат приложени, за да получите името и номера ще бъдат прехвърлени към $ outlabel изходната променлива. Както може би знаете, на същата страница не може да бъде два обекта със същото име.

С една дума, ако даден обект вече съществува (например текст), а след това първият от възможните имена, базирани на потребителското име ще се използва (например, Text13). Това име ще бъде прехвърлена към променливата $ outlabel и ще се използва от ММВ. Ако е необходимо да се премахне или скриване на обекта, ще трябва да използвате променлива outlabel $ в съответния отбор.

Всички параметри са въведени (освен outlabel $) и могат да бъдат снабдени с цифрова или низови променливи.

Всички параметри не са задължителни, но препоръчва да се определят най-малко текст / населено място)

Ако не е посочен параметър inlabel, функцията ще използва имената по подразбиране (например TextBTN, кръг.). Ако не е посочен размера / позиция, обектът ще бъде създаден на мястото на 0.0 и има размер на подразбиране.

Можете да пропуснете някои параметри, но все още трябва да се използва подходящ брой запетаи сепаратори опции. Например, искате да създадете един бутон с определен знак в даден момент, както и размера на бутоните оставени на ММВ. Кодът трябва да изглежда така.

С CreateLine CreateLineAB команди и можете да създадете линия.

Възможни варианти за отбор CreateLine.
обичай име, изходяща променлива
х. Y - координати х, у
вата ч - ширина и височина
R. гр. б - цвят

Възможни варианти за отбор CreateLineAB.
обичай име, изходяща променлива
x1. Y1 - координатите на началната точка
x2. y2 - координатите на крайната точка
R. гр. б - цвят

Докато линията е създаден с помощта на екипа на CreateLineAB. има абсолютни координати на точките началната и крайната в прозореца на проекта, позицията на линията, създаден с помощта CreateLine определя от дължината / височината на очертаващ правоъгълник. С други думи, двата отбора с абсолютно същите стойности ще даде различни резултати, защото те имат различни интерпретации на дадените стойности.

Моля да погледнете илюстрацията:


Това е кодът, който се използва за създаване на тази рисунка:

CreateLine ( "LINE", "outlabel $, 20,20,280,200,255,0,0")
CreateLineAB ( "LINE", "outlabel $, 20,20,280,200,0,0,255")

Както вероятно знаете, повечето от ММВ на обекти координати, определени от позицията на горния ляв ъгъл, както и дължината и височината на обекта, която всъщност координатите на долния десен ъгъл. Същото важи и за отбора CreateLine. Въпреки факта, че изглежда безполезен (да се уточни дължината и височината на линията), тя е много удобно, когато трябва да създадете няколко линии с относително позициониране.

** Този пример показва как да се създаде галерия с изчисляването на максималния брой изображения, които се вписват в проекта прозорец
PW = PubWidth ()
рН = PubHeight ()
** разстояние между изображенията
коеф = 10
w = 50
з = 50
** брой изображения към текущия ширината на прозореца
n_imgs_w = PW / (w + коеф)
RoundNum1 = INT (n_imgs_w)
RoundNum2 = n_imgs_w-RoundNum1
Ако (RoundNum2> = 0. 5) След
n_imgs_w = RoundNum1 + 1
край
** брой колони
n_imgs_w = n_imgs_w- 1
** брой изображения за текущата височина прозорец
n_imgs_h = Ph / (з + коеф)
RoundNum1 = INT (n_imgs_h)
RoundNum2 = n_imgs_h-RoundNum1
Ако (RoundNum2> = 0. 5) След
n_imgs_h = RoundNum1 + 1
край
** брой редове
n_imgs_h = n_imgs_h- 1
********************
х = коеф
у = коеф
За J = 1 да n_imgs_h

За I = 1 да n_imgs_w

Пауза ( "50")
CreateHotSpot ( "HSpot", "обект [Ь] $, X, Y, W, H"),
** нов координира х (колона)
х = х + т + коеф
** добавят код на активната област
скрипт $ = 'CurObj $ = CurrentObject () "+ CHR (13) + CHR (10)
скрипт $ = $ скрипт + "Message (" SelectedObject "," CurObj $ ")" + CHR (13) + CHR (10)
SetObjectParam ( "обект [Ь] $", "MOUSEUPSCRIPT: 1 = скрипт $")
/ * Ние дефинираме повторение на изображението. Ако сте в каталога само 3
изображения и броя на активните региони повече, трябва да се
повтаряне на изображения. В нашия пример, в каталога само 3 файлове,
Ето защо, ако броят на регионите е по-голямо или равно на 3,
Изображения нулира брояч * /
Ако (Ni> = 3) След

** друго увеличи стойността на брояча
Ni = Ni + 1

край
imgpath $ = '\ Снимки \\ '+ CHAR (Ni) +' .jpg "
** натоварване изображение в активната област
ReplaceImage ( "обект [Ь] $", "imgpath $")
** Move обект на гърба
ReorderObject ( "обект [Ь] $", "обратно")
Освежете ( "")

Следваща аз
** нулиране координати х (колона)
х = коеф
** нов координира у (за ред)
Y = Y + Н + коеф

С тази команда можете да създадете скрипт.

Възможни опции:
обичай име, изходяща променлива

скрипт на обекта е малка жълта кутия, която съдържа скриптове, които могат да бъдат извикани с помощта на команди и RunScript ScriptTimer. Този вид процедура, която може да бъде наречена от друг работещ (с помощта на RunScript) на вашия проект, или работи в паралел (чрез ScriptTimer). Обикновено скриптове се създават обекти в процеса на разработване на проекта. Но сега, благодарение на екип CreateScript, които можете да създадете нов обект и скрипт по време на работа и да го сравняват с помощта на някакъв код SetObjectParam екип. което позволява (от версия 4.9.8), за да замени текущия скрипт възрази ново. код скрипт може да се генерира с друга писменост се зарежда от файл или просто въвели в editbokse;)

** Създаване на скрипт с име "SCRIPT"
CreateScript ( "SCRIPT", "outlabel $")
** назначаване на нов код
ScriptParam $ = "SCRIPT: 1 = '+' Message (" Hello! "," ")"
SetObjectParam ( "outlabel $", "ScriptParam $")
** направени за изпълнение на скрипта
RunScript ( "outlabel $")

** Създаване на скрипт с име "SCRIPT", този път с няколко реда код
CreateScript ( "SCRIPT", "outlabel $")
** назначаване на нов код
скрипт $ = 'SCRIPT: 1 = "+" За I = 1 до 10' + CHR (13) + CHR (10)
скрипт $ = скрипт $ + 'линия $ = CHAR (и) "+ CHR (13) + CHR (10)
скрипт $ 'съобщение ( "Loop", "контур $")' = скрипт $ + + CHR (13) + CHR (10)
скрипт $ = $ скрипт + 'Next Аз
SetObjectParam ( "outlabel $", "сценарий $")
** направени за изпълнение на скрипта
RunScript ( "outlabel $")

** изтриете обект "TextBTN"
DeleteObject ( "TextBTN")

** изтриете всички бутони TextBTN1 до TextBTN10
За I = 1 до 10
DeleteObject ( "TextBTN [Ь]")
Следваща аз

Подкрепете проекта - споделете линка, благодаря!