Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DragDrop в ListView [D6, Win2k]


anod ©   (2002-05-05 20:16:00) 

Возникает ошибка, когда пользователь отпускает перетаскиваемую строку на пересечении 2х строк.(видимо)

s:=DirList.items[DirList.ItemIndex].Caption;
// Вот здесь пытаюсь отследить, но не помогает
if DirList.GetItemAt(x,y).Index<>-1 then
begin
DirList.Items.Delete(DirList.ItemIndex);
i:=DirList.GetItemAt(x,y).Index;
DirList.Items.Insert(i).Caption:=s;
for i:= 0 to length(d)-1 do
d[i]:=trim(copy(DirList.Items[i].Caption,5,length(DirList.Items[i].Caption)));
end;


Помогите, что не так?


anod   (2002-05-06 00:16:00) [1]

Вроде сделал:

Поставил ещё проверку на Index = -1


anod   (2002-05-05 21:10:00) [2]

Странно все равно выдает ошибку, только теперь реже.
EAccessViolation

И помоему я выкупил где, если умудрится при перетаскивании выделить сразу несколько объектов (куда перетаскиваешь), то появляется ошибка (хотя я же вычисляю по X, Y ?)?


anod   (2002-05-05 21:06:00) [3]

Уже 2ой раз так попадаюсь,но по идее если нет Index"a должен вернуть -1 (Где -то в Нелр прочитал)


anod   (2002-05-05 21:04:00) [4]

Я пытался сравнивать nil
пишет Incopatible types,

А понял !!!!

Не

IF Assigned(DirList.GetItemAt(x,y).Index) then ...

,а

IF Assigned(DirList.GetItemAt(x,y)) then ...


Song   (2002-05-05 20:29:00) [5]

Т.е.
...
IF Assigned(DirList.GetItemAt(x,y).Index) then ...
...


Song   (2002-05-05 20:26:00) [6]

help:
If there is no item at the location, GetItemAt returns nil.


Наверх

Титульная страница Поиск, карта сайта Написать письмо