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

Тема в разделе "Delphi - СОМ", создана пользователем Necrolog, 25 окт 2011.

  1. Necrolog

    Necrolog Гость

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

    sinkopa Well-Known Member

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

    Necrolog Гость

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

Поделиться этой страницей