Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2011, 03:19   #1
marina15056
Пользователь
 
Регистрация: 17.04.2009
Сообщений: 68
По умолчанию Как запретить компоненту Edit вывод системного меню?

Код:
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if button = mbRight then ????????????????
end;
marina15056 вне форума Ответить с цитированием
Старый 01.06.2011, 05:29   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

св-во PopupMenu измени, вставь свои пустой TPopupMenu
ZuBy вне форума Ответить с цитированием
Старый 01.06.2011, 07:23   #3
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

а горячие клавиши тоже надо биндить
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 01.06.2011, 10:57   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

есть большое подозрение на необходимость исключения возможности изменения текста - убрать пункты "отмена", "повтор", "вставить", "вырезать". если только это , то замечательно справится свойство Tedit.ReadOnly , а если надо ещё и запретить пункт "копировать" то можно даже использовать Edit1.enabled := false;
phomm вне форума Ответить с цитированием
Старый 01.06.2011, 11:48   #5
marina15056
Пользователь
 
Регистрация: 17.04.2009
Сообщений: 68
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
а горячие клавиши тоже надо биндить
Блин, я почему-то думала, что можно запретить key 17 в процедуре KeyDown, и горячим клавишам хана.
Я не знаю, что такое биндить. Но это легко решилось с помощью майнменюшки ))))))) (Создаешь в майнменюшке дополнительные итомы, назначаешь на них эти горячие клавиши, потом прячешь их, и вуаля.)

Цитата:
св-во PopupMenu измени, вставь свои пустой TPopupMenu
Спасибо ZuBy. Это помогло )

А программа нужна, что бы вводить русский текст независимо от раскладки, и что бы никто не мог туда скопировать текст, только ручками. (защита от нерадивых)
Вложения
Тип файла: rar problema.rar (306.4 Кб, 17 просмотров)

Последний раз редактировалось marina15056; 01.06.2011 в 15:59.
marina15056 вне форума Ответить с цитированием
Старый 24.08.2012, 20:18   #6
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от marina15056 Посмотреть сообщение
Код:
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if button = mbRight then ????????????????
end;
Код:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);


var //цифровая маска
  vrPos, vrLength, vrSelStart: byte;
const
  I: byte = 1;
    //I+1 = количество знаков после запятой (в данном случае - 2 знака)
begin

  with Sender as TEdit do
  begin
    vrLength := Length(Text); //определяем длину текста
    vrPos := Pos(',', Text); //проверяем наличие запятой
    vrSelStart := SelStart; //определяем положение курсора
  end;

  case Key of

    '0'..'9':
      begin
        //проверяем положение курсора и количество знаков после запятой
        if (vrPos > 0) and (vrLength - vrPos > I) and (vrSelStart >= vrPos) then
          Key := #0; //"погасить" клавишу
      end;
    ',', '.':
      begin
        //если запятая уже есть или запятую пытаются поставить перед
        //числом или никаких цифр в поле ввода еще нет
        if (vrPos > 0) or (vrSelStart = 0) or (vrLength = 0) then
          Key := #0 //"погасить" клавишу
        else
          Key := #44; //всегда заменять точку на запятую
      end;
    #8: ; //позволить удаление знаков клавишей 'Back Space'
  else
    Key := #0; //"погасить" все остальные клавиши
  end;

Последний раз редактировалось Stilet; 24.08.2012 в 20:41.
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Используя компоненту Edit выполнить следующие действия. Аделинка Помощь студентам 2 31.03.2011 14:42
Delphi 7 Gecko browser. Запретить вывод js сообщений с сайтов Catsys Работа с сетью в Delphi 0 26.02.2011 09:01
Вызов системного меню файла в ListView t2skler Общие вопросы Delphi 15 10.02.2011 23:19
Как запретить отображение контекстного меню kovalevskivf Microsoft Office Excel 2 10.05.2009 15:18
Вопросы по компоненту syn edit LAGOX Компоненты Delphi 1 10.04.2009 18:14