Dotnet + MaxScript, Обсуждаем применение DotNet |
Home· Статьи · Вакансии · Чертежи · 3D Галерея · 2D Галерея · Форум · Форум Realtime | Реклама |  Конкурсы | RAR Award | Правила |
Здравствуйте, гость ( Вход | Регистрация )
Dotnet + MaxScript, Обсуждаем применение DotNet |
17/03/2010, 22:27
Сообщение
#16
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
|
|
|
17/03/2010, 23:47
Сообщение
#17
|
|
Creator Группа: AWARD Сообщений: 3 749 Регистрация: 08/12/2002 Пользователь №: 1 252 |
Читал читал про этот dotnet, так и не понял, что за зверь. Это просто библиотека элементов управления? А чем она лучше WinAPI?
|
|
|
18/03/2010, 00:25
Сообщение
#18
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
DotNet cовместим с максом
Независимость от версии макса - практически любой скрипт, написанный с использованием dotnet можно запустить на любой версии 3dsmax (есть моменты, но об этом не сейчас) Ну и конечно отличная документированность, включая русский язык Но ресурсоемкие штуки конечно лучше писать с использованием WinApi. Более развернуто сейчас ответить сложно - опыту без году неделя. |
|
|
18/03/2010, 11:46
Сообщение
#19
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
Проблема следующая, есть DataGridView в ней отображаются ноды сцены, (много 1000-2000).Теперь я хочу убрать часть нод из списка, но
DataGridView.rows.item[index].visible=false DataGridView.rows.removeat index Работает медленно и приудалении 300 нод всё зависает, Что делать? И ещё есть поиск по столбцу?Т.е. можно вернуть индех строки.Типа как масив index=finditem array value Есть ли какието аналоги DataGridView но работаюшие быстрее?Может на ActiveX лучше, есть там похожие таблицы? Сообщение отредактировал MadlasS - 18/03/2010, 11:51 |
|
|
18/03/2010, 16:39
Сообщение
#20
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
ActiveX не будет работать с последними версиями макса - до 8й версии только
Остальное требует тестирования Кстати а почему именно DataGridView ? И в нем должны быть методы вроде BeginUpdate() и EndUpdate() Должен, но я не нашел Это методы из ListView. В общем здесь смотри http://msdn.microsoft.com/ru-ru/library/sy...tagridview.aspx |
|
|
18/03/2010, 16:53
Сообщение
#21
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
DataGridView мне нужна таблица с сортировкой, и чтобы бала возможность исправлять любую ячейку, значения в ячейках могут быть, image, и text, я потому и спросил. Есть ли какието аналоги DataGridView но работаюшие быстрее?
|
|
|
18/03/2010, 19:35
Сообщение
#22
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
|
|
|
19/03/2010, 15:04
Сообщение
#23
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
toTrack И в нем должны быть методы вроде BeginUpdate() и EndUpdate()
И в прямь, я что то тоже не нашёл, но ведь не может быть чтобы небыло.(час сегодня по МСДН лазил) XtraTreeList попробовал, если юзать BeginUpdate() и EndUpdate() вроде терпимо работает, при удалении нод, не охота переводить на XtraTreeList может кто всётаки знает, как для DataGridView BeginUpdate() и EndUpdate() сделать. И ещё такая проблема добавление и удаление строки в таблицу происходит у меня по максовым калбекам хайд унхайд, а они работают для одной ноды, как использовать BeginUpdate() и EndUpdate(). ставить таймер на EndUpdate() 2-3с. или как? |
|
|
19/03/2010, 16:46
Сообщение
#24
|
|
Creator Группа: AWARD Сообщений: 3 749 Регистрация: 08/12/2002 Пользователь №: 1 252 |
А какая конечная цель? Что сделать надо в результате?
|
|
|
19/03/2010, 18:06
Сообщение
#25
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
Смысл следующий UserProperty каждой ноды есть ряд переменных нужен удобный интерфейс для их задания
|
|
|
20/03/2010, 23:53
Сообщение
#26
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
toTrack И в нем должны быть методы вроде BeginUpdate() и EndUpdate() И в прямь, я что то тоже не нашёл, но ведь не может быть чтобы небыло.(час сегодня по МСДН лазил) XtraTreeList попробовал, если юзать BeginUpdate() и EndUpdate() вроде терпимо работает, при удалении нод, не охота переводить на XtraTreeList может кто всётаки знает, как для DataGridView BeginUpdate() и EndUpdate() сделать. И ещё такая проблема добавление и удаление строки в таблицу происходит у меня по максовым калбекам хайд унхайд, а они работают для одной ноды, как использовать BeginUpdate() и EndUpdate(). ставить таймер на EndUpdate() 2-3с. или как? Вот здесь только нашел это свойство (Юзай "Show Net Property") ---------- System.Windows.Forms.DataGridViewComboBoxEditingControl ---------- .BeginUpdate() Таймера не надо перед апдейтом ставишь BeginUpdate() По завершении EndUpdate() Кстати а garbage collection максовский с комбобоксами в GridView не выдает ошибку? Я пытаюсь перекинуть "Show Net Property" с комбобоксов на DataGridView но никак не получается сделать эти "DataGridViewComboBoxCell" редактируемыми Застрял как раз на получении доступа к этим самым "DataGridViewComboBoxEditingControl" У тебя получилось сделать их редактируемыми? Код form = dotNetObject "MaxCustomControls.MaxForm" form.Width = 250 gridView=dotNetObject "System.Windows.Forms.DataGridView" gridView.Dock = gridView.Dock.Fill CellTemplate fn CreatedotNetGridView gridView = ( gridView.AutoGenerateColumns=false gridView.SelectionMode=gridView.SelectionMode.CellSelect gridView.ColumnHeadersVisible=false gridView.AllowUserToResizeRows=false gridView.AllowUserToResizeColumns=false gridView.RowHeadersVisible = false gridView.ColumnHeadersBorderStyle=gridView.ColumnHeadersBorderStyle.Single gridView.ColumnHeadersHeightSizeMode=gridView.ColumnHeadersHeightSizeMode.D isableResizing gridView.ShowCellToolTips=true gridView.ScrollBars=gridView.ScrollBars.None columnCheck = dotNetObject "System.Windows.Forms.DataGridViewComboBoxColumn" -- columnCheck = dotNetObject "System.Windows.Forms.DataGridViewComboBoxEditingControl" columnCheck.Width = 240 columnCheck.ReadOnly=false columnCheck.DropDownWidth=400 columnCheck.MaxDropDownItems=40 columnCheck.Sorted=true -- columnCheck.DropDownStyle=columnCheck.DropDownStyle.DropDown -- columnCheck.SortMode=Avtomatic -- CellTemplate = (dotnetobject"System.Windows.Forms.DataGridViewComboBoxEditingControl") CellTemplate = (dotnetobject"System.Windows.Forms.DataGridViewComboBoxCell") CellTemplate.ReadOnly=false CellTemplate.DisplayStyle=CellTemplate.DisplayStyle.ComboBox -- CellTemplate.EditType.DropDownStyle=CellTemplate.EditType.DropDownStyle.Dro pDown -- CellTemplate.EditingCellValueChanged = true columnCheck.CellTemplate = CellTemplate gridView.columns.AddRange #(columnCheck) )-- fn UpdateFileTypeGridView gridView FolderCell:false = ( -- gridView.Rows.Clear() gridView.AllowUserToAddRows=true CreatedotNetGridView gridView gridView.ColumnHeadersHeight=18 gridView.ColumnCount=1 gridView.RowCount = 3 (gridView.Item 0 0).Items.AddRange #("AA","BB","CC","!!!") (gridView.Item 0 1).Items.AddRange #("AA","BB","CC","!!!") -- (gridView.Item 0 0).EditType.DropDownStyle=(gridView.Item 0 0).EditType.DropDownStyle.DropDown -- gridView.DefaultCellStyle.NullValue = "BB" (gridView.Item 0 0).Value = "!!!" (gridView.Item 0 1).Value = "BB" -- .BaseType() -- CellTemplate.EditType -- CellTemplate.EditType.MemberType -- CellTemplate.EditType.GetExportedTypes() -- CellTemplate.EditType. -- CellTemplate.EditType.Name -- for i in CellTemplate.EditType.GetMembers() do print (i.tostring()) -- show (gridView.Item 0 0).EditType -- showmethods (gridView.Item 0 0).EditType gridView.AllowUserToAddRows=false )--fn CreatedotNetControlGrid gridView UpdateFileTypeGridView gridView form.controls.add gridView form.ShowModeless() |
|
|
21/03/2010, 00:45
Сообщение
#27
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
Код fn EditingControlShowing e = ( -- show e -- showmethods e e.Control.DropDownStyle=e.Control.DropDownStyle.DropDown ) dotNet.addEventHandler gridView "EditingControlShowing" EditingControlShowing Чесно сказать метод сделать комбобокс редактируемым какой-то через одно место - но работает. И при gc() пока ошибку не выдает. |
|
|
23/03/2010, 16:30
Сообщение
#28
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
Значит так выяснил что основные тормаза возникали из-за AutoSizeMode
Плюс сделал DataSource=DataTable заработало ещё быстрей, единственное возникла странная проблема DataTable.Rows.item[0].item[0] выводит значение нулевой строки, столбца а, DataTable.Rows.item[0].item[0]="aaa" не работает, хотя в msdn написано возвращает и задаёт, я не понял??? Щас сделал через Array=DataTable.Rows.item[0].itemarray Array[1]="aaa" DataTable.Rows.item[0].itemarray=Array но это както криво |
|
|
23/03/2010, 19:41
Сообщение
#29
|
|
Знаток Группа: Пользователи Сообщений: 259 Регистрация: 25/11/2005 Пользователь №: 18 441 |
Возниклаещё одна проблема.С сортировкой
Если использовать Datatable.DefaultView.sort всё сортируется, но при изменении одной из ячеек таблица опять сортируется, сама без нажатия на хедер, и строчка с которой я работал меняет своё положение, это очень неудобно.А как сделать так чтобы сортировка происходила только по нажатию хедера непонятно.Если кто знает подскажите? |
|
|
24/03/2010, 14:42
Сообщение
#30
|
|
Русскоговорящий жидо-бандеровец Группа: Пользователи Сообщений: 1 336 Регистрация: 16/07/2004 Из: Украина-Одесса Пользователь №: 6 600 |
Вообще-то гораздо проще понять в чем дело, когда хотя бы часть кода выложена.
Цитата А как сделать так чтобы сортировка происходила только по нажатию хедера непонятно. Ну так включай сортировку только когда жмешь на заголовок, потом выключай. Сообщение отредактировал Track - 24/03/2010, 14:45 |
|
|
Bots |
Системное сообщение
|
|
|
|
|
Текстовая версия | Сейчас: 25/04/2024 - 09:27 |