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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Пустой" Sender в событии OnKeyPress, Компонента TStringGrid 
V
    Опции темы
Akella
Дата 27.4.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Может я чего-то не знаю.
Код

procedure TfmFindByID.sgIDKeyPress(Sender: TObject; var Key: Char);
begin
  fmMain.DecPoint(Sender, Key);
end;


Дебаггер показывает, что Sender ничему не равен.
Цитата
Sender: ()


Вообще что нужно? Есть TStringGrid. Требуется вводить только цифры. Нажатая клавиша передаётся в общую процедуру.

А как у знать в процедуре Sender, если он "пустой"?
Код

Procedure TfmMain.DecPoint(Sender: TObject; var Key: Char);
begin
 if (Sender is TDBGridEh) then
   if (Sender as TDBGridEh).SelectedField.DataType=ftFloat then
      if (Key='/') or (Key='.') or (Key=',') then Key:=DecimalSeparator;

 if (Sender is TDBEditEh) then
      if (Key='/') or (Key='.') or (Key=',') then Key:=DecimalSeparator;

 if (Sender is TDBNumberEditEh) then
      if (Key='/') or (Key='.') or (Key=',') then Key:=DecimalSeparator;

 if (Sender is TcxTextEdit) then
      if (Key='/') or (Key='.') or (Key=',') then Key:=DecimalSeparator;
end;


Это сообщение отредактировал(а) Akella - 27.4.2009, 15:49
PM MAIL   Вверх
Rodman
Дата 27.4.2009, 15:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Код

procedure TForm1.StringGridlKeyPress(Sender: TObject;var Key: Char);
begin
  case Key of
           #8,'0'..'9' : ; // цифры и клавиша <Backspace>
           #13: // клавиша <Enter>
  if StringGridl.Col < StringGridl.ColCount — 1
             then StringGridl.Col := StringGridl.Col + 1;
  else key := Chr(0); // остальные символы запрещены
end;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Akella
Дата 27.4.2009, 15:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



smile 
Код
ShowMessage(Sender.ClassName);

Вот я тормоз smile

Добавлено через 3 минуты и 57 секунд
Rodman, это понятно, с этим проблем нет, я просто не мог понять в конце дня, в понедельнег, почему Sender пустой. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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