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

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

Drag&Drop из приложение вовне [D6, Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2

AlexanderVasjuk ©   (2002-07-03 15:13:00) 

Как внутри формы реализовать DragDrop знаю.
Как поймать внешний - тоже (DropFile).
А как перетащить аналогично DropFile свой компонент (в виде созданного файла) например в папку Эксплорера.


AlexanderVasjuk   (2002-07-04 19:35:00) [1]

Ну шо, толпарищи, у меня получилось.

Из Тейлора пример не заработал из за несовместимости версий.

А компоненты Меландера оказались тем что нужно.
А именно TDropFileSuorce.


AlexanderVasjuk   (2002-07-04 18:14:00) [2]

Кажись в книге Тейлора есть...

Sam3D © (04.07.02 18:07)
ДААААААААААААААААААААААААААААААААААААА!!!!!!!!!


Skier   (2002-07-04 18:12:00) [3]

>Sam3D
> Если кому интересно - вышлю примеры на мыло


Вышли мне, пожалуйста.


MBo   (2002-07-04 18:12:00) [4]

да


Sam3D   (2002-07-04 18:07:00) [5]


> А примеров как 100% ОТСЫЛАТЬ а не принимать нет?

Есть! С использованием OLE. Рассмотрен пример клиента и сервера перетаскивания... Интересует?


MBo   (2002-07-04 18:06:00) [6]

>AlexanderVasjuk
Самому сделать - IMHO работы много (вероятно, на несколько дней при хорошем понимании OLE и Shell-интерфейсов), так что если надо срочно, лучше готовую библиотеку использовать.


AlexanderVasjuk   (2002-07-04 18:02:00) [7]

MBo © (04.07.02 18:01)
тяну...
(а книжка дома, а надо ЩАС!!!)


Sam3D   (2002-07-04 18:01:00) [8]


> А примеров как 100% ОТСЫЛАТЬ а не принимать нет?

ищу... :)


MBo   (2002-07-04 18:01:00) [9]

>AlexanderVasjuk
компоненты попробовал?


Sam3D   (2002-07-04 17:59:00) [10]

Пардоны... Читаю невнимательно...


AlexanderVasjuk   (2002-07-04 17:56:00) [11]

Sam3D © (04.07.02 17:44)

А примеров как 100% ОТСЫЛАТЬ а не принимать нет?


MBo   (2002-07-04 17:53:00) [12]

>Sam3D
принимать нет проблем, сложнее перетащить из своей программы, причем именно в Explorer и т.п. В другую свою программу,в Notepad, в IDE Delphi я уже умею.


Sam3D   (2002-07-04 17:44:00) [13]

Есть у меня такая книжка...
В ней есть пара примеров как это реализовано, причем без технологии COM. Когда-то я с этим разбирался, показалось достаточно доступно, сейчас уже запамятовал. Если кому интересно - вышлю примеры на мыло. Все работает 100%, принимает файлы из эксплорера, виндоус коммандера и других программ такого рода...
Будут вопросы - спрашивайте, разберемся вместе. :)


MBo   (2002-07-04 17:18:00) [14]

AlexanderVasjuk
понятно ;(


AlexanderVasjuk   (2002-07-04 17:15:00) [15]

Книжка без медиа но с кучей кода


MBo   (2002-07-04 15:29:00) [16]

>AlexanderVasjuk
Я имел в виду исходники к книжке (относящиеся к DnD), если она с ними идет.


AlexanderVasjuk   (2002-07-04 15:20:00) [17]

MBo © (04.07.02 08:18)
Спасибо

leshy (04.07.02 11:45)
Спасибо тоже

MBo © (04.07.02 11:52)
У меня есть Технология СОМ. Как разберусь. Чиркану сюда свои исходники. Наведывайся.


MBo   (2002-07-04 11:52:00) [18]

>leshy
если там есть исходники, пришли, pls.
То, что я пока раскопал, очень объемное, трудно вычленить суть


leshy   (2002-07-04 11:45:00) [19]

Елманова и Трепалин.
Delphi 4, Технология COM.
Москва, ДИАЛОГ-МИФИ, 1999 г.
Глава 6.
стр. 182.


MBo   (2002-07-04 08:18:00) [20]

таким образом в ClipBoard "вставляется файл"
после исполнения этой процедуры можно в проводнике сделать Paste
и файл скопируется. Надо теперь разбираться с OLE-вставкой ;(

procedure TForm1.Label2StartDrag(Sender: TObject; var DragObject: TDragObject);
var
fname: string;
fSize: Integer;
h: thandle;
PDF: PDropFiles;
p: PByte;
begin
fname := "e:\aa.txt";
fsize := sizeof(tdropfiles) + length(fname)+2;
H := GlobalAlloc(GMEM_ZEROINIT + GMEM_MOVEABLE + GMEM_SHARE, fsize);
PDF := GlobalLock(h);
PDF.pFiles := sizeof(TDropFiles);
PDF.pt := point(0, 0);
PDF.fNC := False;
PDF.fWide := False;
p := pointer(PDF);
inc(p, sizeof(TDropFiles));
move(fname[1], p^, length(fname));
GlobalUnlock(h);
OpenClipboard(handle);
EmptyClipboard;
SetClipboardData(CF_HDROP, h);
CloseClipboard;
end;


Страницы:   1 2

Наверх

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