|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
28.10.2007, 02:15 | #1 |
Познаю мир
Форумчанин Подтвердите свой е-майл
Регистрация: 05.10.2007
Сообщений: 387
|
Listbox и прибамбасы =)
Я делаю програмку на подобее Alt Desktop тоесть переключающитеся экраны ...
Подскажите пожалуйста как сдлать перекидывание из одного списка listbox в другой ?? типо Drsg&Drop ... И как организовать поиск в ЛистБоксе с удалением элементов и известным именем ?(в проге используется процедура поиска всех открытых окон... и всегда находится Program Manager ... вот его то мне и нада автоматом удалять из списка чтобы чтото случайно не натворить =)) я думаю так : Код:
Да и вот ещё..можно ли както получить иконки открытых окошеки отображать их динамически ?(тоесть количество иконок не фиксировано - изменяется на текущее количество и добавляется при нехватке...)- как это организовать ? Если что поправьте меня... Заранее всем благодарен... ---
|
28.10.2007, 03:30 | #2 |
Регистрация: 28.10.2007
Сообщений: 3
|
Drag and Drop между двумя компонентами ListBox
-------------------------------------------------------------------------------- Вот пересмотренный OnDragDrop, использующий source (источник) и sender (передатчик) вместо DstList и SrcList. Теперь, если вы установили SrcList и DstList для использования тех же методов OnDragOver и OnDragDrop и создали обработчик события OnDragDrop, то для операции Drag and Drop вы можете использовать оба решения. procedure TDualListDlg.DstListDragDrop(Sender , Source: TObject; X, Y: Integer); var droppedOnIndex: integer; anItem: integer; numberOfItems: integer; begin if (Sender is TListbox) and (Source is TListBox) then begin droppedOnIndex := TListBox(Sender).ItemAtPos(Point(X, Y), false); numberOfItems := TListBox(Source).SelCount; anItem := 0; while numberOfItems > 0 do begin if TListBox(Source).Selected[anItem] = true then begin TListBox(Sender).Items.Insert(dropp edOnIndex, TListBox(Source).Items[anItem]); TListBox(Source).Items.Delete(anIte m); TListBox(Source).Update; TListBox(Sender).Update; numberOfItems := numberOfItems - 1; end else anItem := anItem + 1; end; end; end; Для того, чтобы предотвратить операцию Drag and Drop с одним и тем же компонентом, используйте следующий код в обработчике события OnDragOver: if (Sender is TListBox) and (Source is TListBox) then begin if TListBox(Sender).Name = TListBox(Source).Name then Accept := False else Accept := true; end; |
28.10.2007, 03:31 | #3 |
Регистрация: 28.10.2007
Сообщений: 3
|
а по поводу удаления Program Manager - просто в проге когда находишь его, то в листбокс не добавляй вот и все
|
28.10.2007, 10:21 | #4 |
Познаю мир
Форумчанин Подтвердите свой е-майл
Регистрация: 05.10.2007
Сообщений: 387
|
тоже способ но мне кроме этого ещё и интересно знать как это делается... (поиск итд) я вроде всё прально написал да?
---
|
28.10.2007, 11:39 | #5 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Поиск с удалением по ходу поиска надо начинать с конца (и кстати переменную счетчик самому не надо изменять)
Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
28.10.2007, 12:29 | #6 |
Познаю мир
Форумчанин Подтвердите свой е-майл
Регистрация: 05.10.2007
Сообщений: 387
|
так вроде listbox1.items.count задаётся только вначале цикла ? или он будет изменятся если удалить какойто item ???
---
|
28.10.2007, 17:27 | #7 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
if listbox1.items[9]='Window1'...
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
28.10.2007, 18:26 | #8 |
Познаю мир
Форумчанин Подтвердите свой е-майл
Регистрация: 05.10.2007
Сообщений: 387
|
ясненько... ну это легко исправить поставлю вместо этого переменную и всё =)
а по общему вопросу... Как сделать Drag&Drop с анимацией ? (чтоб когда я перекидываю было видно какой item я взял мышой) и можно ли будет Drop'нуть взятый item не в конец 2-го листбокса а в туда куда например мышкой отпущу.... (например как иконки возле пуска в 'панели быстрого запуска') ??? ---
|
28.10.2007, 18:42 | #9 |
Познаю мир
Форумчанин Подтвердите свой е-майл
Регистрация: 05.10.2007
Сообщений: 387
|
Вот такой простой примерец я сам намутил .... изобрёл калесо
Памагите плиз ДрагДроп нормальный сделать... ---
|
29.10.2007, 10:54 | #10 | ||
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
берем тот же пример, список из 10-ти пунктов, перебираем в цикле, допустим второй[1] удаляем, при этом происходит смещение и третий элемент становится вторым, но следующая итерация цикла третья и в ней будет обрабатываться бывший четвертый, получается что элемент следующий за удаляемым не обрабатывается Цитата:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ListBox | werser | Помощь студентам | 1 | 29.05.2008 22:32 |
ListBox | Witaliy | Общие вопросы Delphi | 10 | 27.04.2008 17:15 |
Про ListBox | AlexMori | Общие вопросы Delphi | 2 | 09.01.2008 16:51 |
Listbox | Dexic | Помощь студентам | 1 | 24.06.2007 15:05 |
ListBox | lin | Помощь студентам | 1 | 04.06.2007 13:46 |