Два вопроса по Listview

  • Автор темы Guest_Expeditor_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Expeditor_*

#1
У меня два вопроса по ListView.
1. ListView при наведении курсора мыши для невмещающихся по длинне строк показывает hint'ы, но стоит только в свойстве CheckBoxes врубить true, как хинты куда-то пропадают, что делать ?
2. Как в ListView перетаскивать итемы ?

Помогите пожалуйста.
 
B

Barmutik

#2
1. Это классический глюк ListView... только или самому показывать.. или использовать другой компонент..
2. Хмм.. что стандартные функции Drag&Drop кто-то отменял ?
 
G

Guest

#3
<!--QuoteBegin-Barmutik+5:02:2006, 10:54 -->
<span class="vbquote">(Barmutik @ 5:02:2006, 10:54 )</span><!--QuoteEBegin-->2. Хмм.. что стандартные функции Drag&Drop кто-то отменял ?[/quote]
В том-то и дело, что у меня не получается уж больно заморочено. Я имеею ввиду чтобы ListView не принимал строки из других компонент, а чтобы перетаскивать в самом ListView вверх-вниз, к примеру для ListBox я смог сделать, а вот в ListView не выходит.
 
B

Barmutik

#4
Примеров по данному вопросу огромное множество в интернете и простейший поиск даст Вам то что вы ищите...
 
E

Expeditor

#5
<!--QuoteBegin-Barmutik+6:02:2006, 08:31 -->
<span class="vbquote">(Barmutik @ 6:02:2006, 08:31 )</span><!--QuoteEBegin-->Примеров по данному вопросу огромное множество в интернете и простейший поиск даст Вам то что вы ищите...
[snapback]30174" rel="nofollow" target="_blank[/snapback]​
[/quote]
Да уж сколько я не искал нету ничего, ну разве что пару примеров на VB попалось и всё.
 
B

Barmutik

#6
Пример написан за 3 минуту .. ен обсессудьте если что криво... 10 элементов .. тянеш за элемент и они меняются местами ... если что не так то модифицируйте сами ...

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
Item: TListItem;
begin
for I := 0 to 10 do
begin
 Item := ListView1.Items.Add;
 Item.Caption := 'Name ' + IntToStr(I);
end;
end;

procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := (Source is TListView) and (Source = Sender);
end;

procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
TargetItem: TListItem;
TempItem : TListItem;
Begin
with TListView(Sender) Do
begin
 TempItem := Items.Add;
 TempItem.Assign(Selected);
 TargetItem := GetItemAt(X, Y);
 if (TargetItem <> nil) Then
 begin
  Selected.Assign(TargetItem);
  TargetItem.Assign(TempItem);
  TempItem.Delete;
 end
 else
  Selected.Delete;
end;
end;
 
Статус
Закрыто для дальнейших ответов.