|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.07.2010, 07:08 | #1 |
Пользователь
Регистрация: 25.01.2009
Сообщений: 43
|
[Delphi] Как задать массив строк целиком?
Я создаю компонент и мне нужно в нем реализовать свойство - массив строк. Все уже готово и работает, если вместо массива строк взять TStrings, но я стремлюсь к изяществу и например, если мне нужно задать сразу весь этот массив строк, то с TStrings придется делать вот так:
Код:
Код:
Ordinal type required Хотелось бы иметь возможность целиком задать массив так же красиво, как в последнем примере - через запятую значения. Подскажите, как правильно делать свойства-массивы и как добиться, чтобы можно было удобно задавать все свойство целиком, а не по отдельным элементам массива |
17.07.2010, 09:33 | #2 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
А SetLength не думаете вставлять?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
18.07.2010, 07:11 | #3 |
Пользователь
Регистрация: 25.01.2009
Сообщений: 43
|
При чем тут SetLength?? Он нужен просто для работы с массивами, а к ошибке он не имеет никакого отношения, или я не прав??
Если я не прав, то как мне следует использовать SetLength??? Признаюсь, я не уточнил, что у меня с массивом тоже все безупречно работает, кроме возможности сразу задать массив, см. первый пост. |
18.07.2010, 07:57 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
На счёт Delphi не скажу, не знаю, но на С++, можно изящьно всё зделать при помощи контейнеров последовательностей. Например так:
#include <vector> using namecpace std; ....... vector <TStrings> Vector;
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
18.07.2010, 07:57 | #5 | |
not
Участник клуба
Регистрация: 27.06.2009
Сообщений: 1,399
|
Цитата:
Нежели вы в строку хочите вводить бинарные числа?? MyProperty.Text:=Value1+#13#10+Valu e2+#13#10+ и так далее... или как??? Что имено в TStrings не устраивает? |
|
18.07.2010, 10:12 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
можно вот так:
Код:
|
19.07.2010, 08:54 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
19.07.2010, 09:18 | #8 |
Пользователь
Регистрация: 25.01.2009
Сообщений: 43
|
Не получается, все равно выдает ошибку Ordinal type required!
Привожу код, который у меня: Код:
Код:
Компонент (TLTFieldBox) представляет таблицу, где есть поля (строки) и колонки. Поля (TLTFieldBoxFields) представляют собой коллекцию (TCollection), одно поле (TLTFieldBoxField) - элемент коллекции (TCollectionItem). Аналогично с колонками (Коллекция и т п) В компоненте доступ к полям получается через св-во Fields, а к колонкам через Columns. Values - массив значений поля, они связаны с коллекцией колонок, по индексам (Values[Index]=>Columns[Index]) каждому значению соответствует колонка. ValueCount - количество колонок, нужно, чтобы нормально работать с массивом значений. Вот-с... Еще раз повторюсь, что так - все безупречно работает, то есть fb.Fields.Add.Values[0]:='Первый'; Компилируется без ошибок и работает. Всяких глупых предложений типа: "Вдруг, длина массива не соответствует","Надо setlength использовать" и т п.... Больше прошу не писать. Все везде проверил, все работает, кроме этого момента (См Название темы и первый пост). Жду конструктивных предложений =)) Если чего-то не хватает, пишите Думаю, если сейчас проблема с этой ошибкой решится, то и присвоить массив св-ву получится... |
19.07.2010, 09:40 | #9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Не нашел в Вашем коде описания:
fb.Fields.Add.SetValues Опишите Type для TLTFieldBox
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
19.07.2010, 11:51 | #10 | |
Пользователь
Регистрация: 25.01.2009
Сообщений: 43
|
Add - метод TCollection, добавляет новый элемент
Код:
Цитата:
Код:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как задать в массив значение ячейки? | StudentofSUSU | Microsoft Office Excel | 1 | 07.01.2010 23:43 |
Задать двумерный массив (матрицу) 6х4 | zergon | Помощь студентам | 3 | 04.01.2010 00:29 |
как задать массив в программе? | m.a.x.i.m | Помощь студентам | 14 | 12.12.2009 13:40 |
задать массив как константу...нужен совет | dead-vip | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 21.12.2008 16:07 |
задать массив типа X: array [0..N] of integer -где N переменная читаеться из EditBox | Kivin13 | Общие вопросы Delphi | 22 | 06.09.2007 09:25 |