Я использую Delphi XE4 уже неделю, и я только что открыл новую функцию TListGroups
. Легко установить TlistItem
GroupID
, чтобы легко переключаться между группами. Теперь я хотел бы иметь процедуру, которая вызывает, как только TListItem
УДАЛЯЕТ группу и/или как только TlistItem
ВХОДИТ в группу. Я ищу что-то вроде этого:Delphi XE4 обнаруживает переключатель предметов между TListGroups
procedure TForm1.ListView1On(Before/After)ListGroupEnter(Sender: TObject; Item: TListItem);
begin
// Do some stuff here like...
// AllowedToDraw := TRUE/FALSE
// I/O Code...
// etc...
end;
procedure TForm1.ListView1On(Before/After)ListGroupLeave(Sender: TObject; Item: TListItem);
begin
// Do some stuff here like...
// This might be replaceable with OnDeletion...
// I/O Code...
end;
Основная проблема здесь заключается в обнаружении переключения между различными группами, если вы установите GroupID
свойство. Итак, есть ли что-нибудь, чтобы обнаружить переключатель, как только вы измените/установите свойство GroupID
?
Было бы нужно перехватить 'TListItem.SetGroupID' сеттера. Лучше сделайте свою собственную вспомогательную функцию и установите «GroupID» на элементы оттуда. – TLama
Я точно не знаю, как это относится к групповому коммутатору tho. Удаляет ли элемент полностью, а затем повторно добавляет его в другую группу? –
Наборщик GroupID просто устанавливает член 'iGroupId' из [' LVITEM'] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb774760 (v = vs.85). aspx), которая представляет элемент. Остальное - система. – TLama