Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

Drag&Drop в MDI child   Найти похожие ветки 

 
Sergey SP ©   (2003-07-10 08:38) [0]

Возникла следуюящая проблема. Имеются два окна child на них расположены TreeView, не получается перенести элемент из одного дерева в другое. Не могу получить sender, как бы пустой он у меня получается. Читал статью "Примеры использования Drag and Drop для различных визуальных компонентов" - не помогло. Может кто подкинет идейку как сделать?


 
MBo ©   (2003-07-10 08:45) [1]

>Не могу получить sender, как бы пустой он у меня получается
вот об этом поподробнее


 
Sergey SP ©   (2003-07-11 07:44) [2]

К примеру в процедуре DragOver мне необходимо определить тот ли это Sender, что мне нужно? Т.к. TreeView расположены на разных окнах, то я как бы не могу к ним обратится напрямую, т.е. не могу узнать Sender это Form1.TreeView1 или какой другой объект? И следовательно уже потом в процедуре DragDrop так же не могу обратится к этому объекту...
Или могу? Но как?


 
MBo ©   (2003-07-11 08:39) [3]

Подозреваю, что ты просто невнимательно читал статью и хелп. Sender - пославший сообщение о перетаскивании на него контрол, т.е. приемник, а проверять нужно обычно Source.

(Sender может понадобиться только при назначении одного обработчика нескольким контролам и в нек. других случаях)

procedure TForm2.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=Source=Form3.Treeview1;
end;

procedure TForm2.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
Treeview1.Items.Add(nil,Form3.Treeview1.Selected.Text+" From Another Tree");

{или так:

Treeview1.Items.Add(nil,TTreeView(Source).Selected.Text+" From Another Tree");}
end;

Надеюсь, я правильно понял твою проблему...




 
Sergey SP ©   (2003-07-11 08:59) [4]

Большое спасибо, что-то видимо действительно я намудрил...


 
ЮЮ ©   (2003-07-11 09:24) [5]

Sergey SP © (10.07.03 08:38)
Имеются два окна child на них расположены TreeView
MBo © (11.07.03 08:39)
Accept:=Source= Form3.Treeview1;


Скорей всего это два окна одного и того же класса TForm3 и Form3, если и есть, то безсмысленен.
Скорей всего следует сравнивать Source.Owner и Self, а оперировать с TForm3(Source.Owner).TreeView1 и TreeView1


 
MBo ©   (2003-07-11 09:41) [6]

>ЮЮ
Может, и так.
Я для теста сделал формы разных классов, а проблема вроде бы у автора была в том, что спутал sender и source.



Страницы: 1 вся ветка

Текущий архив: 2003.07.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
8-78006
Fast
2003-04-02 23:54
2003.07.24
mp3->wav


14-78065
Opera
2003-07-06 20:15
2003.07.24
Прописование


7-78179
dim-
2003-05-14 21:28
2003.07.24
Как отследить из какой программы была послана печать и сколько ко


1-77946
Erik
2003-07-10 16:30
2003.07.24
В чем отличия CallBack для DCOM и Borland Socket Server?


1-77849
Checist [root]
2003-07-12 19:37
2003.07.24
Сортировка в FileListBox е