Перейти к содержанию
Fire Monkey от А до Я
  • 0

[ListView]определить элемент


Anatoliy

Вопрос

У меня есть элемент TImageObjectAppearance в который загружена картинка с плюсиком. Есть элемент TTextObjectAppearance, который планируется использовать как счетчик. Т.е щелкнули по элементу TImageObjectAppearance и тогда добавили единичку в элемент TTextObjectAppearance. Не соображу как это реализовать?

void __fastcall TForm1::ListView1ItemClickEx(TObject * const Sender, int ItemIndex,
		  const TPointF &LocalClickPos, TListItemDrawable * const ItemObject)

{
 if(ItemObject == NULL)
  {
   return;
  }
//картинка с плюсиком имеет кастомное имя add
 if(ItemObject->Name == L"add" && ItemObject->InheritsFrom(__classid(TListItemImage)))
  {
   //как добраться до элемента TTextObjectAppearance с кастомным именем TextCount?
   ShowMessage(L"Bingo");
  }

}

 

Изменено пользователем Anatoliy
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Не знаю насколько это правильно ибо выглядит весьма криво. Похоже что работает, но есть ли лучше варианты на паскале?

//переменная для отсечения лишних срабатываний события ListView1ItemClickEx
bool flag = true;

void __fastcall TForm1::ListView1ItemClickEx(TObject * const Sender, int ItemIndex,
		  const TPointF &LocalClickPos, TListItemDrawable * const ItemObject)

{
 if(ItemObject == NULL)
  {
   return;
  }

  if(flag == true)
   {
	  //нажата картинка с плюсом
	 if(ItemObject->Name == L"add" && ItemObject->InheritsFrom(__classid(TListItemImage)))
	  {
		flag = false;
		TListViewItem * item = ListView1->Items->operator [](ItemIndex);
		UnicodeString splus = item->Data[L"TextCount"].AsString();
		int plus = StrToInt(splus) + 1;
		item->Data[L"TextCount"] = TValue::From<UnicodeString>(IntToStr(plus));
	  }

	 //нажата картинка с минусом
	 if(ItemObject->Name == L"min" && ItemObject->InheritsFrom(__classid(TListItemImage)))
	  {
		flag = false;
		TListViewItem * item = ListView1->Items->operator [](ItemIndex);
		UnicodeString smin = item->Data[L"TextCount"].AsString();

		if(smin == "1")
		{
		   return;
		}

		int min = StrToInt(smin) - 1;
		item->Data[L"TextCount"] = TValue::From<UnicodeString>(IntToStr(min));

	  }

   }//flag
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ListView1ItemClick(TObject * const Sender, TListViewItem * const AItem)

{
 flag = true;
}
//---------------------------------------------------------------------------

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...