|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.03.2007, 18:40 | #1 |
Регистрация: 19.03.2007
Сообщений: 8
|
Перемещение элементов в 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,N ewIndex); end; False: begin NewIndex := lIndex - 1; personslist.Items.Exchange(lIndex,N ewIndex); 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; DoMoveListItem(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; Последний раз редактировалось kodov; 30.03.2007 в 18:43. |
30.03.2007, 21:26 | #2 | ||
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Цитата:
|
||
30.03.2007, 23:24 | #3 |
_________
Пользователь
Регистрация: 27.03.2007
Сообщений: 69
|
Неохота разбираться с твоим кодом, посмотри, может, поймёшь свою ошибку. здесь стрелками вверх-вниз меняется значение элемента соответственно на верхнее и нижнее. Если элемент первый, то меняет на последний, и наоборот.
Код:
Последний раз редактировалось RSLoader; 30.03.2007 в 23:28. |
31.03.2007, 11:44 | #4 |
Регистрация: 19.03.2007
Сообщений: 8
|
Спасибо за ответ. Уже разобрался.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод элементов массива.Изменение элементов массива. | Vesnushka18 | Помощь студентам | 6 | 09.06.2011 13:05 |
перемещение формы | Черничный | Общие вопросы Delphi | 11 | 10.12.2009 11:06 |
Непрерывное перемещение элементов по ListBox | kodov | Общие вопросы Delphi | 2 | 12.08.2008 20:07 |
количество элементов матрицы, больших среднего арифмитического всех её элементов | finch | Помощь студентам | 3 | 27.08.2007 15:48 |
Перемещение элементов в TreeView ????? | Demien | Компоненты Delphi | 3 | 17.08.2007 15:45 |