Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП? (число прочтений - 5247 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
26. Мая 2008 :: 05:58
Печать  
Помогите разобраться с методами, и свойствами этого объекта.
1. Как установить свойства выделенной строки (Nod)? Пробовал через "SelectedNode" и через "SelectedNodeStyle" - пишет что ошибка. В MSDN примеры все какие то для asp, в 1С так не получается. Подскажите плиз.

2 - Может кто знает как сделать drug-n-drop с Табличного Поля в ActiveX?
Код
Выбрать все
Эл = СоздатьОбъект("АктивИкс");
	Эл.УстановитьАтрибут(Форма, "ДерГру");
	Эл.СоздатьЭУ("MSComctlLib.TreeCtrl");
	Эл.УстановитьФокус();

	TreVie = Эл.Объект;

	ScrCon = СоздатьОбъект("MSScriptControl.ScriptControl");
	ScrCon.Language = "vbscript";
	ScrCon.AddObject("tv1", TreVie);

	Картин = СоздатьОбъект("MSComctlLib.ImageListCtrl");
	Картин.UseMaskColor = - 1;

	Картин.ListImages.Add(1, "", ScrCon.Eval("LoadPicture(""" + КаталогИБ()+ "\Tree\Expand.bmp"")"));
	Картин.ListImages.Add(2, "", ScrCon.Eval("LoadPicture(""" + КаталогИБ() + "\Tree\Expand2.bmp"")"));

	TreVie.LabelEdit = 1;
	TreVie.LineStyle = 1;
	TreVie.Style = 7;
	TreVie.Indentation = 0;
	TreVie.ImageList = Картин;
	//Snode = TreVie.SelectedNode; //-- Ошибка
	//СтильВыдел = TreVie.SelectedNodeStyle; // -- Ошибка


	RooTre = TreVie.Nodes.Add();
	RooTre.Key = "A1";
	RooTre.Text = "Корневой узел";
	RooTre.Image = 2;
	RooTre.ExpandedImage = 2;

	NewNod = TreVie.Nodes.Add(RooTre, 4, "A2" , "ПодУзел1", 1);
	NewNod.Image = 1;
	NewNod.ExpandedImage = 1;
	//NewNod.Expanded = 1; Развернет все внутри

 



  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #1 - 26. Мая 2008 :: 06:11
Печать  
И в VBA (Exel + Alt+F11) почему то его нет ни под "Microsoft Tree View", ни под "COMCTL.TreeCtrl". Загрузить саму dll (ConCtl32.ocx) также не получается в VBA по кнопке Browse.
  
Наверх
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #2 - 26. Мая 2008 :: 06:24
Печать  
pvase писал(а) 26. Мая 2008 :: 05:58:

Код
Выбрать все
Snode = TreVie.SelectedItem;
 

  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #3 - 26. Мая 2008 :: 06:32
Печать  
pvase писал(а) 26. Мая 2008 :: 05:58:
В MSDN примеры все какие то для asp, в 1С так не получается.

Какой-то ASP.NET ?? Улыбка
  
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #4 - 26. Мая 2008 :: 06:40
Печать  
Если быть точным, то надо установить выделение цветом текущей строки (текущий Нод). Как это можно сделать?
Перепробовал свойства, часть из свойств работают, но не дают требуемый результат, а часть свойств - пишет что синтаксическая ошибка. Какое свойство надо установить, чтобы выделенный нод выделялся курсором (подсветкой, например синей)?
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #5 - 26. Мая 2008 :: 06:52
Печать  
Нашел как выделить системным цветом:
Код
Выбрать все
TreVie.HideSelection = 0; 


Но как сделать чтобы было синим?
  
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #6 - 26. Мая 2008 :: 07:14
Печать  
А TreVie.SelectedItem.BackCOlor = 200*256*256; не сработает?
  
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #7 - 26. Мая 2008 :: 07:29
Печать  
Salimbek писал(а) 26. Мая 2008 :: 07:14:
А TreVie.SelectedItem.BackCOlor = 200*256*256; не сработает?

Возвращает "TreVie.SelectedItem.BackCOlor = 200*256*256;
{D:\1CV77\TEST\ДЕРЕВО\TEST2.ERT(174)}: Плохой тип переменной"
  
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #8 - 26. Мая 2008 :: 07:58
Печать  
Такое в тесте у меня работало:
Код
Выбрать все
Процедура NodeClick(Узел)
	Сообщить(Узел.Key+":"+Счетчик);
	Узел.BackColor=Счетчик;
КонецПроцедуры	// Click
Счетчик=10*256*256+240*256+245;
 


Добавлю тестовый архивчик, с которым сам баловался:
  

tree.rar ( 4 KB | Загрузки )
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #9 - 26. Мая 2008 :: 11:30
Печать  
Salimbek писал(а) 26. Мая 2008 :: 07:58:
Такое в тесте у меня работало:
Код
Выбрать все
Процедура NodeClick(Узел)
	Сообщить(Узел.Key+":"+Счетчик);
	Узел.BackColor=Счетчик;
КонецПроцедуры	// Click
Счетчик=10*256*256+240*256+245;
 


Добавлю тестовый архивчик, с которым сам баловался:

Спасибо, но немного не то. В примере выделяется желтым "история" т.е. то что выбрано было когда то. А надо именно тот что текущей строкой.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #10 - 26. Мая 2008 :: 12:28
Печать  
Наверное вот так:
Код
Выбрать все
Процедура NodeClick(Узел)
	Если СокрЛП(ПредКлюч) <> "" Тогда
		ПредУзел = Узел.hWnd.Item(СокрЛП(ПредКлюч));
		ПредУзел.BackColor= глПолучитьЦвет(255,255,255);
	КонецЕсли;
	Узел.BackColor=глПолучитьЦвет(10,240,245);
	ПредКлюч = СокрЛП(Узел.Key);
КонецПроцедуры	// Click
 


Только как переменную "ПредКлюч" определить так чтобы в ней сохранялось значение, а то чего то не сохраняется? (может как то в модуле из которого вызывается наследник-модуль в котором и расположена эта переменная).
  
Наверх
IP записан
 
NeSpec
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 09. Июня 2008
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #11 - 09. Июня 2008 :: 08:11
Печать  
spock писал(а) 26. Мая 2008 :: 06:32:
pvase писал(а) 26. Мая 2008 :: 05:58:
В MSDN примеры все какие то для asp, в 1С так не получается.

Какой-то ASP.NET ?? Улыбка

  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ActiveX. MSComctlLib.TreeCtr (TreeView)+ТП?
Ответ #12 - 09. Июня 2008 :: 16:12
Печать  
Вот здесь можно получить кое какую информацию:
http://www.hot.ee/jurisfox/vfpplus/ax_treeview_index_ru.htm
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать