while ((dgvObj.wRowCount == 0) && (timeout-- >0)) //dgv создался, ждем загрузки строк { aqUtils.Delay(1000); }
Если оставить dgvObj.get_RowCount(), то все периодически рушится... (с эксепшеном описанным выше)
Отправлено 21 апреля 2009 - 07:04
while ((dgvObj.wRowCount == 0) && (timeout-- >0)) //dgv создался, ждем загрузки строк { aqUtils.Delay(1000); }
Отправлено 21 апреля 2009 - 13:34
Отправлено 28 апреля 2009 - 11:39
/* *Функция ожидания загрузки грида *ParentObj - NameMapping родительской формы *dgvObj - Grid NameMapping *childName - замаппелнное имя ожидаемого объекта *timeout - "время" ожидания *ожидается что каждый грид должен содержать VScrollBar */ function WaitForFillingDGV(ParentObj, dgvObj, childName, timeout) { if (!timeout) timeout = 60; IsProcessIdle(); while ((!ParentObj.WaitNamedChild(childName, 3000).Exists) && (timeout-- >0)) { ParentObj.RefreshMappingInfo(); } if (timeout == 0) Log.Message('Объекта не дождались'); timeout = 60; IsProcessIdle(); while ((!dgvObj.WaitNamedChild('VScrollBar', 2000).Exists) && (timeout-- >0)) if (timeout == 0) { if (dgvObj.get_RowCount == 0) { Log.Message('Нет строк в гриде'); return -1; } } return 0; }
Отправлено 08 мая 2009 - 09:24
DrBlast Дата 20.4.2009, 16:18
(Paulitto @ 14.4.2009, 11:31)
Насчет проблемы с ожиданием загрузки - я решал ее следующим образом
Когда в грид загружается очч много данных приложение подвисает - и в этот момент в ObjectBrowser под процессом Explorer появляется окно класса "Ghost". Ждать нужно ровно столько сколько оно существует:
while (Sys["process"]("Explorer")["WaitWindow"]("Ghost", <название приложения>) ["Exists"]())
BuiltIn.Delay(1000);
Надеюсь поможет
Не помогло. Внутрь цикла ТС даж не заходит
0 пользователей, 0 гостей, 0 анонимных