Присваивание текста контролам

Тема в разделе "WASM.WIN32", создана пользователем 2FED, 25 мар 2008.

  1. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Какой функцией контролам(эдиты,кнопки, и т.д.) присваивается текст?

    Перехватил SendMessage(параметр WM_SETTEXT) и SetWindowText, и ничего не происходит, какие ещё есть варианты?

    вот например Edit1.text := 'text'; как работает? пробовал посмотреть в отладчике но дельфи генирирует столько левого кода что я просто ничего не смог найти.
     
  2. LazzY

    LazzY New Member

    Публикаций:
    0
    Регистрация:
    6 мар 2006
    Сообщения:
    123
    SetDlgItemText :lol:
     
  3. MikDay

    MikDay New Member

    Публикаций:
    0
    Регистрация:
    5 май 2005
    Сообщения:
    32
    Адрес:
    Minsk
    Может EM_REPLACESEL
     
  4. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    К сожелению эта программа на дельфи её даже не импортирует =(

    уже перепробывал

    SendMessageA
    SetWindowTextA
    PostMessageA
    PeekMessageA
    DrawTextA
    FormatMessageA
    SetDlgItemTextA

    и нет эффекта =(
     
  5. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Нашел таки, оказалась CallWindowProcA =) но вот теперь немогу понять какой код сообщения передаётся для установки текста, WM_SETTEXT не катит, EM_REPLACESEL тож не то
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    2FED
    Да, это вы Америку открыли :) Эта функция и организует обработку сообщений - она
    все обрабатывает, тут искать напряжно. Лучше возьми spyxx из Visual Studio - очень
    удобная штука.
     
  7. MikDay

    MikDay New Member

    Публикаций:
    0
    Регистрация:
    5 май 2005
    Сообщения:
    32
    Адрес:
    Minsk
    CallWindowProcA не "организует обработку сообщений", а используется, обычно, при subclassing в процедуре (функции) заместившей родную функцию.

    Кроме WM_SETTEXT и EM_REPLACESEL текст в Edit может появится по сообщениям EM_STREAMIN , EM_SETTEXTEX, EM_PASTESPECIAL.
     
  8. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Сообщением оказалось WN_PAINT, в общем я нашел совсем не то =)

    Получается так, в CallWindowProcA приходит WN_PAINT для перерисовки эдита с уже установленым текстом, а текст присваевается гдето ещё до вызова CallWindowProcA, а может быть и в обработчике WN_PAINT он вручную прорисовывается, например TextOut.

    в общем намутили в дельфи, нет чтобы просто GetWindowText/SetWindowText
     
  9. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Ребята, а вот в программе есть маленький компонент, мини веб браузер, он выводит коекакую информацию, буквально несколько строчек текста, как это дело перехватить? С браузерами раньше дел не имел, какие API они юзают чтобы загружать веб страници?
     
  10. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
  11. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Можешь заглянуть сюда, может что полезное отроешь...