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

Фотография

помощь в работе с MFCGridCtrl TC6


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

#1 svsanek

svsanek

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Пронин Александр Сергеевич

Отправлено 25 октября 2007 - 11:12

1. TC 6.0
2. MS Visual Studio 2005
3. Open Aplication.

Есть грид - полностью кустарный, в ТК он отображается как MFCGridCtrl. С гридом получается только такая работа:
1. вписать данный в ячейку (непонятно именно в какую - не получается адресовать) командой keys.
2. "бегать" фокусом по ячейкам - в этом случае получается адресовать ячейку (номер столбца, номер строки)
А вот самое главное - считать значение ячейки в переменную не получается.
Может есть у кого-нить какая-нибудь информация по работе с MFCGridCtrl ?

w1 = w2["Window"]("MFCGridCtrl", "Custom1"); - что записал сам TK

count = w1["GetColumnCount"]();
row = w1["GetRowCount"]();

w1["SetFocusCell"](1,1);

Этот код работает

А вот получить значение не получается...

Если есть какие-нибудь стандартные способы для работы с подобной штукой?
  • 0

#2 Rifle

Rifle

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

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Vitaliy
  • Город:Kyiv

Отправлено 25 октября 2007 - 13:21

А что на это говорит Object Browser, какие методы есть у вашего компонента MFCGridCtrl?
  • 0

#3 svsanek

svsanek

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Пронин Александр Сергеевич

Отправлено 26 октября 2007 - 07:53

Методов куча! Немного примеров прикрепил. еще прикрепил, как примерно выглядит грид.
Проблема в том, что такие методы как GetItemText(int nRow, int nCol) и SetItemText(int nRow, int nCol) не работают. В случае например
GetItemText(1, 1) возвращает NULL. Хотя данные есть.
Просто проблема в том, что грид нестандартный, просто хотел узнать, есть ли какие-нибуть способы получить данные из ячейки стандартным путем, не прибегая к методам из DebugInfo?
А может у кого есть опыт по работе с такими вещами.
Прикрепленный файл  1.bmp   338,58К   65 Количество загрузок:
Прикрепленный файл  2.bmp   372,24К   54 Количество загрузок:
Прикрепленный файл  3.bmp   355,76К   53 Количество загрузок:
Прикрепленный файл  4.bmp   370,47К   65 Количество загрузок:
Прикрепленный файл  5.bmp   345,13К   62 Количество загрузок:
Прикрепленный файл  6.bmp   322,44К   56 Количество загрузок:
Прикрепленный файл  grid.bmp   471,15К   59 Количество загрузок:
  • 0

#4 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 26 октября 2007 - 10:57

Здравствуйте.



Не используя методы из debug info, можно копировать содержимое клетки в буфер обмена (Ctrl-C), а потом читать это значение в TestComplete (Sys.Clipboard).

PS. Там у грида есть метод GetCell, может он чего-нибудь полезное восвращает. А вообще, вы можете поинтересоваться у разработчиков приложения, как они могут взять текст ячейки работая с гридом в самом приложении. Вероятно, вы сможете использовать тот же метод из TestComplete.
  • 0
С уважением,
Дмитрий

#5 svsanek

svsanek

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Пронин Александр Сергеевич

Отправлено 26 октября 2007 - 12:03

Все! Догадался!
класс наследуется от GridCtrl Соответственно Debug Info показывает только методы и поля этого класса. А такие элементы, как ячейка определены в классе GridCell. Таким образом, нам для работы с ячейкой(записать туда данные, либо считать) требовалось всего лишь использовать метода класса GridCell, а не GridCtrl (как я сперва думал), хоть их Debug Info и не отображает.
делаем так:
\\C++ скрипт
var controll \\это наш контрол
var cell \\это ячейка

cell = controll["GetCell"](n,m); \\получили ячейку - а это уже переменная класса GridCell
Log["Message"](cell["GetText"]()); \\соответственно и получаем данные из нее методами класса GridCell

блин! элементарно все!

вывод такой. Работая с ячейками грида, функцией GetCell указываем на нужную нам ячейку, а там смотрим - какого она типо, либо это ячейка, либо чекбокс, либо дататайм.... и т.д. - пользуемся методами соответсвующего класса

Надо было просто по внимательней разобраться с гридом в студии.
стока времени потратил.
  • 0


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

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