![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Очистка окна средствами WinAPI [D7, XP]
Новичек © (2009-01-31 15:18:00)Существует ли возможность очистить поле ввода средствами WinAPI?
clickmaker (2009-02-02 11:16:00) [1]StrBase := '';
SendMessage(hInput, WM_SETTEXT, 0, Integer(PChar(StrBase))); ?
Новичек (2009-01-31 16:24:00) [2]
> Джо
> Значит, у вас ошибка в программе.
Да я и не спорю: конечно, ошибка может быть.
Но не дает покоя одна деталь - приведенный мной код работает ведь, текст-то появляется...
Голову уже сломал :(
Джо (2009-01-31 16:15:00) [3]
> Новичек (31.01.09 16:07) [7]
> > ДжоА Edit находится в другом приложении. Хэндл-то я нашел,
> а очистить никак не могу :(
Значит, у вас ошибка в программе.
Код
прекрасно очищает Edit в «другом приложении».
SendMessage(Handle, EM_SETSEL, 0, -1);
SendMessage (Handle, WM_CLEAR, 0, 0);
Новичек (2009-01-31 16:07:00) [4]
> Джо
А Edit находится в другом приложении. Хэндл-то я нашел, а очистить никак не могу :(
Джо (2009-01-31 16:04:00) [5]Если угодно «на чиста API», то SelectAll меняем на SendMessage(Handle, EM_SETSEL, 0, -1);
Новичек (2009-01-31 16:04:00) [6]
> Можно послать окну сообщение WM_SETTEXT с пустой строкой
Опять не хочет: упорно добавляет переданую строку к уже существующей без всякой предварительной очистки :(
Вот код:
StrBase := '';
SendMessage(hInput, WM_SETTEXT, 0, Integer(StrBase));
StrBase := 'Test';
SendMessage(hInput, WM_SETTEXT, 0, Integer(StrBase));
Джо (2009-01-31 16:01:00) [7]
> Да и описание сообщения какое-то туманное: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;
palva (2009-01-31 15:49:00) [8]Можно послать окну сообщение WM_SETTEXT с пустой строкой
Новичек (2009-01-31 15:46:00) [9]Пробовал, не работает.
Да и описание сообщения какое-то туманное:
wm_Clear: Удаляет текущий выбоp, сделанный в окне (MSDN).
Джо (2009-01-31 15:40:00) [10]SendMessage (Handle, WM_CLEAR, 0, 0)