F.A.Q.Pblog
1й год Форума программистов 2006-2007
Перемещение элементов в ListBox |
Есть код для перемещения элементов в ListBox. Я хочу перемещать элементы клавишами вверз и вниз, а также кнопками speedbutton1 и speedbutton2 (вверх и вниз соответственно). Также мне нужно, чтобы когда элемент доходит ко конца, то выдавалось сообщение, типа, Хотите переместить на первую или на последнюю строку. Но мой код немного глюкавит. Помогите, пожалуйста разобраться. Вот сам код: private procedure DoMoveListItem(AKind: Boolean); ------------------------------------------------- procedure TMainForm.DoMoveListItem(AKind: Boolean); var lIndex, NewIndex: Integer; begin lIndex := personslist.ItemIndex; try if (lIndex >= 0) and (lIndex < personslist.Count) then begin case AKind of True: begin NewIndex := lIndex + 1; personslist.Items.Exchange(lIndex,NewIndex); end; False: begin NewIndex := lIndex - 1; personslist.Items.Exchange(lIndex,NewIndex); end; end; personslist.ItemIndex:= lIndex; end; except end; end; procedure TMainForm.personslistKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = vk_up then DoMoveListItem(True); if key = vk_down then DoMoveListItem(False); end; procedure TMainForm.SpeedButton1Click(Sender: TObject); begin personslist.ItemIndex := personslist.ItemIndex -1; DoMoveListItem(True); end; procedure TMainForm.SpeedButton2Click(Sender: TObject); begin personslist.ItemIndex := personslist.ItemIndex + 1; Do MoveListItem(false); end; procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = vk_up then DoMoveListItem(True); if key = vk_down then DoMoveListItem(False); end; |
Просмотр ответов: |
http://programmersforum.ru/showthread.php?t=2702 |
Другие вопросы:
Как сохранить шрифт - TfontStyle
Реализация плавающего окошка
Как сделать так чтоб моя прога при запуске ОС стартовала
Форма с тенью
Помогите с drag-and-drop
<<<Назад Вперёд>>>