IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Работа с Tlistview
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 91
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Как осуществить следующие действия с компонентом TListView:
1. Drag&Drop из одного TListView в другой.
2. Перемещение одной сторчки (TListItems) на другую позицию
3. Связать со строчкой (TListItems) объект, и(или) запись.


Заранее благодарен!

Сообщение отредактировано: #$# PaVeL #$# -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
1. Drag&Drop из одного TListView в другой.

Смотри DRKB -> VCL -> "Перетаскивание объектов, Drag and Drop, Docking" -> "Примеры использования Drag and Drop для различных визуальных компонентов"
В том числе рассматриваются и TListView
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 91
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Спасибо!, А как насчёт пункта 2 и 3?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, допустим, второй вопрос реализуется точно так же, как первый:
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
Node, SelNode: TTreeNode;
begin
Node := TreeView1.GetNodeAt(x, y);
Accept := (Sender = Source) and (Node <> nil);
if not Accept then
Exit;
SelNode := Treeview1.Selected;
while (Node.Parent <> nil) and (Node <> SelNode) do
begin
Node := Node.Parent;
if Node = SelNode then
Accept := False;
end;
end;

procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
Node, SelNode: TTreeNode;
begin
Node := TreeView1.GetNodeAt(X, Y);
if Node = nil then
Exit;
SelNode := TreeView1.Selected;
SelNode.MoveTo(Node, naAddChild);
end;

Я сейчас попробовал - переносит и ветки и отдельные Item-ы в другое место этого же TListView как и положено...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 91
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Спасибо! good.gif
Может сразу контрольный в голову, для этой темы(пункт 3)? mega_chok.gif lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






связать с объектом определенные данные -

var
__filename:integer; //это номер строки в tstringlist
Lit: TListItem;


Lit:= AppsList.Items.Add;
Lit.Data:= pointer(__filename);


и потом использовать:

procedure TForm1.AppsListDblClick(Sender: TObject);
begin
if AppsList.Selected = nil then EXIT;

ShellExecute(0,
nil,
pchar(
ExeList.Strings[ integer(AppsList.Selected.Data) ]
),
nil,
nil,
sw_restore);

end;
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.11.2021 13:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name