Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.29;
Скачать: CL | DM;

Вниз

Очистка окна средствами 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 находится в другом приложении. Хэндл-то я нашел,
>  а очистить никак не могу :(

Значит, у вас ошибка в программе.
Код

 SendMessage(Handle, EM_SETSEL, 0, -1);
 SendMessage (Handle, WM_CLEAR, 0, 0);
прекрасно очищает Edit в «другом приложении».


 
Новичек   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
2-1234166106
CodeMaster
2009-02-09 10:55
2009.03.29
Свои компоненты


2-1233346301
Johnnnn
2009-01-30 23:11
2009.03.29
Доступ к чужому TChart возможен ли?


15-1232422546
DelphiN!
2009-01-20 06:35
2009.03.29
Неудается завершить пользовательский процес


15-1232271058
visiter
2009-01-18 12:30
2009.03.29
англоязычные форумы dephi


1-1208202474
aha
2008-04-14 23:47
2009.03.29
Как можно выполнить такое ? Для сохранения параметров программы