Главная страница
    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.055 c
15-1233155675
Чудак
2009-01-28 18:14
2009.03.29
Delphi for PHP


2-1233741002
AlexDan
2009-02-04 12:50
2009.03.29
О операторе if


1-1207857224
тКнопка
2008-04-10 23:53
2009.03.29
Как узнать, сколько копий приложения запущенно?


15-1232830550
Unknown user
2009-01-24 23:55
2009.03.29
Delphi 2009 стоит ли переходить?


2-1233920654
девушка
2009-02-06 14:44
2009.03.29
Для чего используется ReadComponentRes





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский