...

Листинг 10.16.

Перемещение сообщений между списками выбранных и доступных сообщений

procedure TfrmMessages.cmbAddMessageClick(Sender: TObject);

var

i: Integer;

begin

if lstAvailMessages.SelCount = 0 then Exit;

//Включение выбранных сообщений в список перехватываемых

for i := lstAvailMessages.Count – 1 downto 0 do

if lstAvailMessages.Selected[i] then

messages_list[GetMessageIndex(i, False)].used := True;

//Отобразим изменения в списках

LoadFilter();

end;

procedure TfrmMessages.cmDelMessageClick(Sender: TObject);

var

i: Integer;

begin

if lstSelMessages.SelCount = 0 then Exit;

//Исключение выбранных сообщений из списка перехватываемых

for i := lstSelMessages.Count – 1 downto 0 do

if lstSelMessages.Selected[i] then

messages_list[GetMessageIndex(i, True)].used := False;

//Отобразим изменения в списках

LoadFilter();

end;

Функция GetMessagelndex, используемая в листинге 10.16, реализована следующим образом (листинг 10.17).

Загрузка...