示例#1
0
// ---------------------------------------------------------------------------
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);
}
示例#2
0
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;
}