Tmetricagrid:: Tinplaceedit Как Получить Табличку?

  • Автор темы Necrolog
  • Дата начала
N

Necrolog

#1
Я не программист делфи, при помощи программы SPY нашел класс окна в приложении написанном на делфи как я понял.
Это окно очень напоминает по виду ListView. Мне нужно достать из этого окна данные. только при помощи SENDMESSAGE или POSTMESSAGE в другое приложении. Какими сообщениями можно попробовать достать все ячейки?
 

sinkopa

Well-known member
17.06.2009
344
4
#2
А на чем пишете?
при помощи программы SPY нашел класс окна в приложении написанном на делфи как я понял.
Это окно очень напоминает по виду ListView. Мне нужно достать из этого окна данные.
Огласите пожалуйста класс окна... Если это действительно Delphi класс, тогда попытаюсь подсказать можно ли из него вообще достать текст и если да, то как...
только при помощи SENDMESSAGE или POSTMESSAGE в другое приложении. Какими сообщениями можно попробовать достать все ячейки?
Если он (текст) там (в окне) вообще есть... Может там одна канва и все на ней графическими функциями отрисовывается... :)
Если есть, то как обычно:
1. Сначала WM_GETTEXTLENGTH (узнаем длину текста в байтах)
Код:
var
FocusedWnd : HWND;
BytesNeeded : DWORD;
TexBuffer : PChar;
//...
BytesNeeded := SendMessage(FocusedWnd, WM_GETTEXTLENGTH, 0, 0);
2. Выделяем память под текст
Код:
 GetMem(TexBuffer, BytesNeeded + 1);
ZeroMemory(TexBuffer, BytesNeeded + 1);
3. Ну и собственно WM_GETTEXT (получаем текст)
Код:
  if (SendMessage(FocusedWnd, WM_GETTEXT, BytesNeeded + 1, lParam(TexBuffer)) > 0) then
begin
WindowText := TexBuffer;
//...
end;
FreeMem(TexBuffer);
Т.е. никаких особых извратов... :)
 
N

Necrolog

#3
Класс окна в шапке темы Tmetricagrid
Скорее всего производный от Tinplaceedit.
пишу на C#
WM_Gettext там точно не поможет