2017-01-21 1 views
2

На показе формы я добавляю скины в dxBarCombo1.Запретить кожные имена от дублирования в моем dxBarCombo1

for I := 0 to cxLookAndFeelPaintersmanager.Count -1 do 
    begin 
    if (cxLookAndFeelPaintersmanager.Items[i].lookandfeelname <> 'UltraFlat') 
    and (cxLookAndFeelPaintersmanager.Items[i].lookandfeelname <> 'Flat') 
    and (cxLookAndFeelPaintersmanager.Items[i].lookandfeelname <> 'Standard') 
    and (cxLookAndFeelPaintersmanager.Items[i].lookandfeelname <> 'Native') 
    and (cxLookAndFeelPaintersmanager.Items[i].lookandfeelname <> 'Office11') 
    then begin 
    dxBarCombo1.Items.Add(cxLookAndFeelPaintersmanager.Items[i].lookandfeelname) ; 
    (cxBarEditItem2.Properties as TcxComboBoxProperties).Items.Add(cxLookAndFeelPaintersmanager.Items[i].lookandfeelname); 
    end; 

Скрытие и отображение основной формы просто продолжает добавлять те же скины снова и снова, так что я получаю много дубликатов в комбо.

Что я должен писать, чтобы эти скины не добавлялись все время?

Я примерил форму близко, чтобы очистить комбо с:

dxBarCombo1.Items.Clear; 

, но это не похоже на работу.

Раздражающий.

+0

OT: ** Пожалуйста ** использовать временные переменные. –

ответ

4

Вы можете проверить, если имя кожа уже в поле со списком:

if (cxBarEditItem2.Properties as TcxComboBoxProperties).Items.IndexOf(
      cxLookAndFeelPaintersmanager.Items[i].lookandfeelname) = -1 then 
    (cxBarEditItem2.Properties as TcxComboBoxProperties).Items.Add(
        cxLookAndFeelPaintersmanager.Items[i].lookandfeelname) 
+0

Большое спасибо – user3351050

Смежные вопросы