Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Внизаналог for each Найти похожие ветки
← →
mariya_mezenceva © (2006-03-30 09:49) [0]есть ли в delphi аналог конструкции VB
for each ... in ...
next
подскажите, пожайлуста
← →
MBo © (2006-03-30 09:56) [1]В последних версиях Дельфи есть
← →
mariya_mezenceva © (2006-03-30 10:00) [2]в 7 есть?
← →
MBo © (2006-03-30 10:13) [3]нет.
Да и не вижу большого смысла.
← →
mariya_mezenceva © (2006-03-30 10:16) [4]как тогда можно перебирать элементы множества, к которому нельзя обращаться по индексу?
← →
begin...end © (2006-03-30 10:19) [5]> mariya_mezenceva © (30.03.06 10:16) [4]
var
MySet: set of TMyType;
I: TMyType;
begin
for I := Low(TMyType) to High(TMyType) do
if I in MySet then
...
end
← →
mariya_mezenceva © (2006-03-30 10:43) [6]не подходит
я работаю через ole
выбираю коллекцию объектов
и мне нужно перебрать эти объекты
← →
Плохиш © (2006-03-30 10:51) [7]
> mariya_mezenceva © (30.03.06 10:16) [4]
> как тогда можно перебирать элементы множества, к которому
> нельзя обращаться по индексу?
В делфи таких типов нет.
← →
mariya_mezenceva © (2006-03-30 11:10) [8]эх...
ну неужели vb в этом функциональней моего любимого delphi
эх......
← →
begin...end © (2006-03-30 11:15) [9]> mariya_mezenceva © (30.03.06 10:43) [6]
Тогда почему в [4] шла речь о множествах?
← →
Сергей М. © (2006-03-30 11:18) [10]
> mariya_mezenceva © (30.03.06 10:43) [6]
> работаю через ole
олей-серверы, если они создают какие-либо объекты-коллекции, как правило поддерживают соответствующий интерфейс для обращения к коллекциям.
Например, в Excel св-во Workbooks объекта Application как раз и возвращает ссылку на объект-коллекцию. Обращение к св-ву Worbooks.Count даст число элементов в коллекции, а обращение к св-ву Worbooks.Items[i] вернет ссылку на объект Workbook, являющийся i-ым коллекции Worbooks.
var
Books, Book: Olevariant;
i: Integer;
..
for i := 1 to Books.Count do
Book := Books.Items[i]; //получение очередного объекта из коллекции
← →
mariya_mezenceva © (2006-03-30 11:38) [11]просто в моем случае это erwin
там такого свойства нет
← →
Сергей М. © (2006-03-30 11:58) [12]
> это erwin
> там такого свойства нет
Импортируй библ-ку типов erwin"а и убедись, что нечто похожее и там должно быть.
← →
mariya_mezenceva © (2006-03-30 12:00) [13]как импортировать?
← →
Плохиш © (2006-03-30 12:15) [14]http://delphimaster.net/view/3-1143617371/
← →
Сергей М. © (2006-03-30 12:22) [15]
> как импортировать?
В главном меню Delphi выбери "Project | Import Type Library..".
Следуй инструкциями в стандартной справке по теме "type libraries, importing"
← →
mariya_mezenceva © (2006-03-30 12:55) [16]есть только item[index:OleVariant]
т.е. обращаться можно только указывая ссылку на объект коллекции
← →
Сергей М. © (2006-03-30 13:03) [17]Что, ни у одного из объектов, имеющих св-во Item, рпи этом нет св-ва Count ?!
Что-то слабо верится в это ...
← →
Сергей М. © (2006-03-30 13:21) [18]Впрочем, если св-во Count у объекта-коллекции, имеющего св-во Item, действительно отсутствует, наводит на мысль о "кривизне рук" разработчиков данного ПО. Но и в этом случае, думаю, можно "совершить подвиг", примерно так:
const
SomeLowestItemIndex = 0; //иногда элементы коллекции индексируются начиная с единицы, это следует проверить (см. документацию и практ.эксперимент)
var
CollectionIndex: Integer;
SomeCollectionObject: OleVariant;
SomeCollectionItemObject: OleVariant;
..
CollectionIndex := SomeLowestItemIndex;
while True do
try
SomeCollectionItemObject := SomeCollectionObject.Item[CollectionIndex];
..
Inc(CollectionIndex);
except
on e: EOleSysError do Break;
end;
← →
mariya_mezenceva © (2006-03-30 15:08) [19]я же написала
item[index:OleVariant]
OleVariant а не integer
поэтому у меня и возникли проблемы
← →
Сергей М. © (2006-03-30 15:17) [20]
> mariya_mezenceva © (30.03.06 15:08) [19]
Тип данных OleVariant на то и есть OleVariant, что может хранить в каждый конкретный момент времени данные более чем одного базового типа - и integer, и string, и boolean ...
Не почитать ли тебе умный букварь по Делфи, прежде чем бросаться в дебри олей-программинга ?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.043 c