Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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 находится в другом приложении. Хэндл-то я нашел,
>  а очистить никак не могу :(

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

 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.048 c
2-1234260141
Игорь
2009-02-10 13:02
2009.03.29
MOUSEHOOKSTRUCT


2-1233305201
mobwar
2009-01-30 11:46
2009.03.29
Замена двух, трёх символов на один


15-1232528030
deadteachers
2009-01-21 11:53
2009.03.29
RS-232


15-1233097754
Германн
2009-01-28 02:09
2009.03.29
Ох уж мне эти писатели "кривых" драйверов!


2-1233121683
Vemer
2009-01-28 08:48
2009.03.29
Записать-прочитать файл под WinApi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский