Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
3-77775
rh
2003-07-02 05:13
2003.07.24
AdoQuery и BatchMove


1-77962
Appa
2003-07-11 08:04
2003.07.24
TMonthCalendar


14-78104
Вован
2003-07-07 16:14
2003.07.24
Так значить в Delphi нельзя добавить lookup поле у dataset в


14-78126
Chris
2003-07-08 21:39
2003.07.24
загрузка ОС на бездисковой станции


3-77722
HardClubber
2003-06-30 16:30
2003.07.24
Что можно использовать?




   Наверх