Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог MaskEdit на API 
:(
    Опции темы
Fox_in
Дата 30.4.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Средствами API сделал Edit. Теперь нужно, чтобы пользователь мог вводить только цифры. Как это можно реализовать??
PM MAIL   Вверх
anwe
Дата 30.4.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 4
Всего: 23



Сабклассить Edit.
PM MAIL   Вверх
Fox_in
Дата 30.4.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



А это как??
PM MAIL   Вверх
anwe
Дата 30.4.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 4
Всего: 23



Надо переопределить процедуру окна твоего edit'а. Посмотри в msdn SetWindowLong.
PM MAIL   Вверх
Fox_in
Дата 1.5.2007, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Что-то там слишком сложно получается. Вся проблема состоит в том, что EN_CHANGE я использовать не могу -- при программном изменении текста нескольких  edit'ов после изменения первого происходит событие EN_CHANGE, и остальные не изменяются.

Кстати, еще один вопрос возник. Как можно отловить такое -- button уже нажат, но еще не отпущен??
Как убрать рамку у окна?? Или как сделать окно во весь экран??

Это сообщение отредактировал(а) Fox_in - 1.5.2007, 00:24
PM MAIL   Вверх
anwe
Дата 1.5.2007, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 4
Всего: 23



OldWndproc:=SetWindowLong(hwndEdit,GWL_WNDPROC,EditWndProc)
Первый парамент - хэндл  твоего эдита, второй - установка нового адреса для процедры, третий - новое значение процедуры окна. Она вернет адрес старой. Его надо сохранить.

Код

procedure EditWndproc (hEdit,uMsg,wparam,lparam:DWORD);
       if uMsg=WM_CHAR then
       begin
           cod:=wparam;
           cod:=code and 16;
           if ((cod>="0") and (cod<="9")) or (cod=VK_BACK) then
               CallWindowproc(OldWndproc,hEdit,uMsg,eax,lparam);
       end;


Цитата(Fox_in @  1.5.2007,  00:20 Найти цитируемый пост)
button уже нажат, но еще не отпущен??

По нажатию мыши.
PM MAIL   Вверх
Rouse_
Дата 16.5.2007, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Цитата(Fox_in @  30.4.2007,  18:53 Найти цитируемый пост)
Средствами API сделал Edit. Теперь нужно, чтобы пользователь мог вводить только цифры.

При создании указать стиль ES_NUMBER или после создания выставить данный флаг стиля:
Код

SetWindowLong(EditHandle, GWL_STYLE, GetWindowLong(EditHandle, GWL_STYLE) or ES_NUMBER);



--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0680 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.