vitaly_l писал(а):Вот три функции, у которых рект находится внутри функции или придётся считать:
- Код: Выделить всё
AddFunction(@DRW_OutText,'Procedure DRW_OutText(X,Y:Longint;S:String);');
AddFunction(@DRW_MoveTo,'Procedure DRW_MoveTo(X,y:LongInt);');
AddFunction(@DRW_LineTo,'Procedure DRW_LineTo(X,y:LongInt);' );
С другой стороны, в 90% функций, которые Вы привели, вы передаёте функциям уже готовый рект, вот они:
- Код: Выделить всё
AddFunction(@Drw_LoadIMG,'Procedure Drw_LoadIMG(X,Y,x1,y1:LongInt;N:String);');
AddFunction(@DRW_VGradientFill,'Procedure DRW_VGradientFill(X,y,X1,Y1,C1,c2:LongInt);');
AddFunction(@DRW_HGradientFill,'Procedure DRW_HGradientFill(X,y,X1,Y1,C1,c2:LongInt);');
AddFunction(@DRW_Rect,'Procedure DRW_FillRect(X,y,X1,Y1:LongInt);');
AddFunction(@DRW_Rect,'Procedure DRW_Rect(X,y,X1,Y1:LongInt);' );
AddFunction(@DRW_Elips,'Procedure DRW_Elips(X,y,X1,Y1:LongInt);');
AddFunction(@DRW_LINE,'Procedure DRW_Line(X,y,X1,Y1:LongInt);');
Соответственно, все эти ректы, вы где-то храните (в каком-то списке или файле),
почему вы оттуда - не берёте значения ректов, а вместо этого повторно их высчитываете?
Или объекты рисуются друг на друге, а потом 10-ть объектов, вы считаете одной фигурой?
Но даже при таких обстоятельствах, высчитать наибольший рект из 10-ти складываемых ректов,
быстрее по времени и менее затратно для процессора, если брать ректы прямо из списка/файла в котором Вы храните данные для скриптов.
На самом деле безусловно пофигу, т.к. разница в скорости при громадном числе фигур максимум 1 или 20 секунд.
.
Снова не понял в чем фишка ... Я предаю в скрипт набор функций ..
Что рисует их помощью скрипт(по сути подпрограмма на упрощенном диалекте паскаля ) по неким исходным данным, нельзя определить заранее (и размер тоже ) а связь изображения с данными в команде (данные сохраняются в виде изменяемого списка неких абстрактных команд ) весьма условна ( Легко представить например элемент "глобальную рамку" у которого вообще нет связи даже с начальной точкой но есть поля цвет толщина и стиль )

Для каждой команды есть свой скрипт(и даже не один) .
Многие могут иметь в данных размеры но не все
- Код: Выделить всё
FORM $FF $A2045/F1/Login 44 48-308 357
OUTTEXT $FFFF $A2045/101/10/Arial/_Авторизиризация_ 56 60 END
OUTTEXT $FFFFFF $A2045/0/11/default/Логин_: 78 115 END
FORM_EDIT 0 16777215F1Имя_ползьзователя____Edittext 77 139 END
OUTTEXT $FFFFFF $A2045/0/11/default/Пароль:_ 78 164 END
FORM_EDIT_PSW 0 16777215F1*******************************Editpassword 76 187 END
FORM_CHECKBOX 0 16777215F1Запомнить_CheckBoxoff 162 218 END
FORM_BUTTON 0 16777215F1____ОКButtonsubmit 89 266 END
FORM_BUTTON 0 16777215F1ОтменаButtonRESET 177 266 END
PAGE_SETUP [f.htm] [16777215] [] [] [<ZZZ>]
RAPHAEL_KONTUR 65280 16777215 48 215 16 264 16 264 262 265 262 265 242 215 242 215 END
RAPHAEL_KONTUR 65280 16777215 50 217 18 266 18 266 264 267 264 267 244 217 244 217 END
RAPHAEL_KONTUR 65280 16777215 46 213 14 262 14 262 260 263 260 263 240 213 240 213 END
Произвольный замкнутый контур . Где у него размер ? (Специально вычислить можно но глобально, не зная, что делает конкретная команда ? Шишь !)
RAPHAEL_KUB 0 16777215 448 44-579 204
RAPHAEL_KUB 255 16777215 448 44-581 206
RAPHAEL_KUB 0 16777215 377 49-508 209
RAPHAEL_KUB 255 16777215 377 49-510 211
У куба "размер" вроде есть но для его рисования данные используются иначе ....