Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
1-77871
Jumbo
2003-07-13 14:48
2003.07.24
Из одного проекта - две программы (Lite и Full версии)


3-77725
boka
2003-06-27 09:24
2003.07.24
Как из txt перебросить данные в dbf


14-78146
АлексейК
2003-07-09 07:36
2003.07.24
Похоже в ошибке о наличии у Ирака ОМП виновата Нигерия...


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


1-77915
reer
2003-07-10 12:49
2003.07.24
Может быть есть готовое решение?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский