Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
ВнизОчистка окна средствами WinAPI Найти похожие ветки
← →
Новичек (2009-01-31 15:18) [0]Существует ли возможность очистить поле ввода средствами WinAPI?
← →
Джо © (2009-01-31 15:40) [1]SendMessage (Handle, WM_CLEAR, 0, 0)
← →
Новичек (2009-01-31 15:46) [2]Пробовал, не работает.
Да и описание сообщения какое-то туманное:
wm_Clear: Удаляет текущий выбоp, сделанный в окне (MSDN).
← →
palva © (2009-01-31 15:49) [3]Можно послать окну сообщение WM_SETTEXT с пустой строкой
← →
Джо © (2009-01-31 16:01) [4]
> Да и описание сообщения какое-то туманное:wm_Clear: Удаляет
> текущий выбоp, сделанный в окне (MSDN).
An application sends a WM_CLEAR message to an edit control or combo box to delete (clear) the current selection, if any, from the edit control. (c) MSDN
> Пробовал, не работает.
Плохо пробовали.
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.SelectAll;
SendMessage (Edit1.Handle, WM_CLEAR, 0, 0);
end;
← →
Джо © (2009-01-31 16:04) [5]Если угодно «на чиста API», то SelectAll меняем на SendMessage(Handle, EM_SETSEL, 0, -1);
← →
Новичек (2009-01-31 16:04) [6]
> Можно послать окну сообщение WM_SETTEXT с пустой строкой
Опять не хочет: упорно добавляет переданую строку к уже существующей без всякой предварительной очистки :(
Вот код:
StrBase := "";
SendMessage(hInput, WM_SETTEXT, 0, Integer(StrBase));
StrBase := "Test";
SendMessage(hInput, WM_SETTEXT, 0, Integer(StrBase));
← →
Новичек (2009-01-31 16:07) [7]
> Джо
А Edit находится в другом приложении. Хэндл-то я нашел, а очистить никак не могу :(
← →
Джо © (2009-01-31 16:15) [8]
> Новичек (31.01.09 16:07) [7]
> > ДжоА Edit находится в другом приложении. Хэндл-то я нашел,
> а очистить никак не могу :(
Значит, у вас ошибка в программе.
Кодпрекрасно очищает Edit в «другом приложении».
SendMessage(Handle, EM_SETSEL, 0, -1);
SendMessage (Handle, WM_CLEAR, 0, 0);
← →
Новичек (2009-01-31 16:24) [9]
> Джо
> Значит, у вас ошибка в программе.
Да я и не спорю: конечно, ошибка может быть.
Но не дает покоя одна деталь - приведенный мной код работает ведь, текст-то появляется...
Голову уже сломал :(
← →
clickmaker © (2009-02-02 11:16) [10]StrBase := "";
SendMessage(hInput, WM_SETTEXT, 0, Integer(PChar(StrBase))); ?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c