Главная страница
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.013 c
3-77724
Devourer
2003-06-30 16:36
2003.07.24
Директория алиаса


9-77705
VEG
2003-01-24 15:59
2003.07.24
Как растянуть картинку с помощью DirectX?


7-78180
MGA
2003-05-05 13:34
2003.07.24
Как отключить Ctrl+Alt+Del в WinXP


3-77750
bura
2003-06-27 16:03
2003.07.24
Обрыв сети.


14-78113
Boss
2003-07-08 11:55
2003.07.24
Как зарегестрировать БД, чтоб она работала на другом ПК