![]() |
|
|
#1
|
||||
|
||||
|
Добрый день!
Помогите разобраться с коллекциями. Проблема в следующем: есть com-server WinPrice.WPLib ладно в общем код: Код:
var
WinPrice,
Profile,
Query : OleVarian;
....
try
CoInitialize(nil);
WinPrice := CreateOleObject('WinPrice.WPLib');
except
end;
Profile := WinPrice.OpenProfile(ini.ReadString(IDFIRM, 'Profile', ''));
Query := Profile.CreateQuery;
Query.Comment := 'блабла';
{
в идеале должно быть так:
Query.DestPoint := Profile.DestPoints(ClientID);
но выдает ошибку Член Группы не найден!
}
for I := 0 to Profile.DestPoints.Count - 1 do
begin
// нормально UID показывает
if Profile.DestPoints.Item[i].UID = ClientID then
// выдает ошибку Член группы не найде
Query.DestPoint := Profile.DestPoints.Item[i];
end; Вот кусок описания WPA Цитата:
|
|
#2
|
||||
|
||||
|
Код:
var
objEn : IUnknown;
IEnum : IEnumVariant;
ObjEnum : OleVariant;
Fetched : Cardinal;
.....
objEn := Profile.DestPoints._NewEnum;
OleCheck(objEn.QueryInterface(IEnumVariant, IEnum));
while Succeeded(IEnum.Next(1, ObjEnum, Fetched)) do
begin
if Fetched = 0 then
Break;
if ObjEnum.UID = ini.ReadString(idFirm, 'ClientID' + tempStr, '') then
begin
Query.DestPoint := ObjEnum;
break;
end;
//В ObjEnum очередной DestPoint
end; |