// --------------------------------------------------------------------------- void TClientGood::DataIn(int col, TObject *Sender) { UnicodeString s; TStringList *sld = fFindOrders->slspsk; sld->Clear(); s = DataOut(col); if (s != "") { sld->DelimitedText = s; // получаем старые данные } // вот теперь можно пробовать добавить новые данне if (fUserList->Visible) { // надо выбрать только чекнутые for (int i = 0; i < fUserList->clUsers->Count; i++) { if (fUserList->clUsers->Checked[i]) { TryAdd(sld, fUserList->clUsers->Items->Strings[i], Sender); } } } else TryAdd(sld, fConnect->curUser->login, Sender); s = sld->DelimitedText; // здесь получившиеся данные надо писать прямо в объект DataIn(col, s); }
bool CSketchRelinker::AddNext() { // returns true, if another object was added to m_new_lists if(m_new_back) { bool added = false; // look through all of the old list, starting at m_old_front std::list<HeeksObj*>::const_iterator It = m_old_front; do{ It++; if(It == m_old_list.end())It = m_old_list.begin(); HeeksObj* object = *It; added = TryAdd(object); }while(It != m_old_front && !added); if(added)return true; // nothing fits the current new list m_new_back = NULL; m_new_front = NULL; if(m_old_list.size() > m_added_from_old_set.size()) { // there are still some to add, find a unused object for(std::list<HeeksObj*>::const_iterator It = m_old_list.begin(); It != m_old_list.end(); It++) { HeeksObj* object = *It; if(m_added_from_old_set.find(object) == m_added_from_old_set.end()) { HeeksObj* new_object = object->MakeACopy(); std::list<HeeksObj*> empty_list; m_new_lists.push_back(empty_list); m_new_lists.back().push_back(new_object); m_added_from_old_set.insert(object); m_old_front = It; m_new_back = new_object; m_new_front = new_object; return true; } } } } return false; }