Здравствуйте.
Стоит задача: Кастомизированный TListBoxItem содержит TText.Price, TSpinBox.SBCount, TText.Sum.
т.е. есть цена, изменяем кол-во получаем сумму и все это в TListBoxItem.
Вешаем обработчик на TSpinBox.SBCountChange, но встает вопрос, каким образом узнать в каком TListBoxItem произошло событие?
procedure TForm2.SBCountChange(Sender: TObject);
var
Item: TListBoxItem;
SB: TSpinBox;
s1, s2: string;
begin
SB := Sender as TSpinBox; // Получили Sender из TSpinBox
if Assigned(SB) and (SB is TSpinBox) then
begin
Item := ?????? //Узнаем из какого итема была вызван эта процедура
s1 := StringReplace(Item.StylesData['TextPrice'].ToString,'.',',',[rfReplaceAll, rfIgnoreCase]); //Тут обертка точку на запятую меняю
s2 := StringReplace(Item.StylesData['SBCount.Text'].ToString,'.',',',[rfReplaceAll, rfIgnoreCase]);
Item.StylesData['TextSum.Text'] := IntToStr(Round(StrToFloat(s1) * StrToInt(s2)));
end;
end;