Привет!
Подскажите плиз, есть ли возможность создать свой тип в тест комплите 5.14(delphiscript)
мне например нужен массив типа запись
создание собственных типов
Автор Rumata, 10 апр 2008 06:39
Сообщений в теме: 5
#1
Отправлено 10 апреля 2008 - 06:39
#2
Отправлено 10 апреля 2008 - 08:39
Если я не ошибаюсь, в DelphiScript записи (record) не поддерживаются. В Вашем случае можно использовать массив массивов:
procedure Test; const MyField1 = 0; MyField2 = 1; var arr : array [0..1]; i; begin arr[0] := [5, 'str1']; arr[1] := [10, 'str2']; for i := 0 to VarArrayHighBound(arr, 1) do Log.Message( 'MyField1 = ' + VarToStr( arr[i][MyField1] ) + #13#10 + 'MyField2 = ' + VarToStr( arr[i][MyField2] ) ); end;
#3
Отправлено 10 апреля 2008 - 09:10
С delphiscript не работаю, использую JScript, но судя по тому, что все встроенные языки в ТестКомплите построены по одному принципу с поправкой на синтаксис, то могу привести пример на JScript:Привет!
Подскажите плиз, есть ли возможность создать свой тип в тест комплите 5.14(delphiscript)
мне например нужен массив типа запись
function MyType( ) { this.var1 = 0; this.var2 = ""; this.var3 = new Object(); }
И потом этот тип можно создать так:
var MyObj = new MyType();А дальше уже использовать его свойства var1, var2, var3.
#4
Отправлено 10 апреля 2008 - 10:13
Еще можно ODT использовать - объявить класс, который будет соответствовать Вашей записи, и в ODT.Data создать массив экземпляров класса (см. скриншот в аттаче.) Тогда адресовать поля объектов-записей в скрипте можно будет не индексам, а по именам:
Вот пример скрипта:
Объявлять ODT классы и создавать экземпляры классов можно как визуально, так и в скриптах, см. "Visual Creation of Custom Objects" и "Creating Custom Objects Programmatically" в справке.
Вот пример скрипта:
procedure Test; var arr, i; begin arr := ODT.Data.MyGroup.MyArray; for i := 0 to arr.Count-1 do Log.Message('Name: ' + arr[i].Name + #13#10 + 'Age: ' + arr[i].Age); end;
Объявлять ODT классы и создавать экземпляры классов можно как визуально, так и в скриптах, см. "Visual Creation of Custom Objects" и "Creating Custom Objects Programmatically" в справке.
Прикрепленные файлы
#5
Отправлено 10 апреля 2008 - 10:16
спасибо за советы
я нашел способ сделать по другому.
использую параллельно два массива, в первом массиве имя элемента во втором его значение
я нашел способ сделать по другому.
использую параллельно два массива, в первом массиве имя элемента во втором его значение
#6
Отправлено 10 апреля 2008 - 17:45
Здравствуйте.
Если нужен действительно объект, то, насколько я знаю, в DelphiScript это можно реализовать только с помощью ODT, как заметил modbear.
А если вам нужна хэш табличка, то удобнее двух массивов будет использование объекта Dictionary. Подробнее об этой возможности можно почитать в разделе справки 'Using Dictionary Object To Address Array Elements With String Indexes'.
Если нужен действительно объект, то, насколько я знаю, в DelphiScript это можно реализовать только с помощью ODT, как заметил modbear.
А если вам нужна хэш табличка, то удобнее двух массивов будет использование объекта Dictionary. Подробнее об этой возможности можно почитать в разделе справки 'Using Dictionary Object To Address Array Elements With String Indexes'.
С уважением,
Дмитрий
Дмитрий
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных