Перейти к содержимому

Фотография

Определение координат объекта


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 jackcreeper

jackcreeper

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Джек Криппер

Отправлено 29 августа 2011 - 10:37

Имеется TreeView, в котором необходимо выполнить перенос элемента. Использование координат не приемлемо, так как структура дерева меняется. Есть ли методы позволяющие узнать координаты элемента дерева, что бы в дальнейшем передать их как аргументы для Drag метода. Или может есть другой способ переноса элемента 'по имени'. Например: выделил элемент "Item1", и перенёс его в "Item2".
  • 0

#2 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 29 августа 2011 - 10:57

Вот пример: в проводнике в папке "C:\Documents and Settings\user\Главное меню" итем "Рабочий стол" представлен так:
Set wt = Sys.Process("Explorer").Window("ExploreWClass", "C:\Documents and Settings\user\Главное меню", 1).Window("BaseBar", "", 1).Window("ReBarWindow32", "", 1).Window("SysTreeView32", "", 1).wItems.Item(0)
прямоугольник, охватывающий этот итем
Set Bounds_of_Item_0 = wt.Bounds
А дальше дело техники..
  • 1

#3 Vader

Vader

    Активный участник

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 29 августа 2011 - 11:57

Если доступны индексы элементов, а также их высота и ширина, то можно определить координаты. Что-то в духе:
y = itemIndex * itemHeight + itemHeight/2
x = itemWidth/2
Ну и вариации на эту тему.
  • 0

#4 jackcreeper

jackcreeper

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Джек Криппер

Отправлено 13 сентября 2011 - 09:23

А возможно ли узнать границы ячейки в grid? Возникла необходимость нахождения координат конкретной ячейки. Так же хотелось бы узнать, как прочитать текст написанный в выделенной ячейки. Могу поменять цвет текста, но никак не получается получить саму строку.
  • 0

#5 Anna_DV

Anna_DV

    Новый участник

  • Members
  • Pip
  • 47 сообщений


Отправлено 13 сентября 2011 - 11:29

в grid'ах я определяю так
Rect := rxDrawGridEx.CellREct(col,row);
rxDrawGridEx.Click(REct.Left + 10, Rect.Top + 5); // фокусируем
rxDrawGridEx.Click(REct.Left + 10, Rect.Top + 5); // переводим в режим редактирования
rxDrawGridEx.TRxInplaceEditEx.Keys('25');
  • 0

#6 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 13 сентября 2011 - 12:48

А возможно ли узнать границы ячейки в grid? Возникла необходимость нахождения координат конкретной ячейки. Так же хотелось бы узнать, как прочитать текст написанный в выделенной ячейки. Могу поменять цвет текста, но никак не получается получить саму строку.

Какое у грида имя класса? Это стандартный контрол, самописный или стороннего производителя? На чем написано приложение (.NET/Java/Delphi)?

Как правильно задавать вопросы
  • 0

#7 jackcreeper

jackcreeper

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Джек Криппер

Отправлено 14 сентября 2011 - 04:28

Это самописный контрол, на изображении показано как он представлен в Object Browser.
Таким образом могу выбрать ячейку, хотелось бы узнать какой текст она содержит.
panelIndex["gridIndexSections"]["SelectedRow"] = 1;
panelIndex["gridIndexSections"]["SelectedCol"] = 1;

Прикрепленные файлы


  • 0

#8 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 14 сентября 2011 - 10:03

Это самописный контрол, на изображении показано как он представлен в Object Browser.
Таким образом могу выбрать ячейку, хотелось бы узнать какой текст она содержит.

Спросите у разработчиков контрола, какое нативное свойство/метод грида надо для этого использовать. Или попробуйте сами найти в Object Browser нужное свойство/метод - оно может называется Value, Cell, Item, GetValue() или т.п.

Также желательно, чтобы приложение было собрано с дебаг-информацией - без нее в Object Browser видна (и, соответственно, доступна для использования в тестах) только часть нативных свойств/методов объектов приложения.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных