Render.ru

Измерение массива, мультистрока edittext.

Alexander Ledenev

Активный участник
Рейтинг
13
#1
Здравствуйте, меня волнуют три вопроса:
1) как узнать количество измерений в массиве (одномерный, двумерный и т.д.)?
2) как вывести две строки в EditText?
3) (См. прикрепленное изображение) Есть таблица, построенная с помощью EditText, 8 Х 8 ячеек, у каждого элемента задано имя по принципу: var1, var2, var3, var4. Как заполнить каждый элемент таблицы единицами, не записывая присвоение к каждому элементу вручную?

Пример:
TestRollout.var1.text = 1
TestRollout.var2.text = 1
TestRollout.var3.text = 1
...
TestRollout.var64.text = 1


Есть ли менее утомительное решение задачи, чем пример выше? Нельзя ли это сделать с помощью цикла?
 

Вложения

igorznag

Мастер
Рейтинг
103
#2
1) как узнать количество измерений в массиве (одномерный, двумерный и т.д.)?
Напишите сами такую функцию, которая рекурсивно проверяет класс элементов массива.
2) как вывести две строки в EditText? Что-то типа '\n'
Код:
rollout test "Test"
(
edittext t height:(18*2)
on test open do t.text="Line1\nLine2"
);createdialog test
Как заполнить каждый элемент таблицы единицами, не записывая присвоение к каждому элементу вручную?
Код:
rollout test "Test"
(
edittext var1
edittext var2
edittext var3
on test open do
for i=1 to 3 do execute ("test.var"+i as string+".text=\"1\"")
);createdialog test
 

Alexander Ledenev

Активный участник
Рейтинг
13
#3
Большое спасибо! Все получилось. Единственное, не понял момент в третьем ответе:
Код:
.text=\"1\""
Пытался вместо единицы вставить переменную и выдает ошибку конвертации типа переменной (integer -> string)
Код:
execute ("test.var"+i as string+".text=" + var as string)
 

igorznag

Мастер
Рейтинг
103
#4

Владислав Бодюл

Активный участник
Рейтинг
15
#5
Как вариант, можно ещё так:

Код:
rollout unnamedRollout "Untitled" width:56 height:200
(
    editText var1 "" pos:[8,8] width:40 height:16
    editText var2 "" pos:[8,32] width:40 height:16
    editText var3 "" pos:[8,56] width:40 height:16
    editText var4 "" pos:[8,80] width:40 height:16
    editText var5 "" pos:[8,104] width:40 height:16
    editText var6 "" pos:[8,128] width:40 height:16
    editText var7 "" pos:[8,152] width:40 height:16
    editText var8 "" pos:[8,176] width:40 height:16
  
    on unnamedRollout open do
    (
        for i in unnamedRollout.controls where (substring i.name 1 3) == "var" do
        (
            i.text = "1"
        )
    )
)
CreateDialog unnamedRollout
 
Сверху