Показать сообщение отдельно
  #13  
Старый 31.10.2015, 00:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,107
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Homo-Fantasmus
От тиражирования одного и того-же фрагмента кода я как раз и пытаюсь уйти , а ты мне предлагаешь те-же яйца только в профиль - "присвой этот обработчик всем едитам"

Твой код на первый взгляд оптимизирован лучше...

но во первых
знак разделения дробных чисел может быть не "." а "," - это зависит от настроек конкретной ОС, а для меня важно что-бы они совпадали;
во вторых защита от ввода не нужных символов в данном случае не самоцель.

Главное хотелось бы освоить работу с DLL...
С чего-то начинать нужно..

1. Ну используй вместо '.' DecimalSeparator, эта константа как раз и инициализируется из сиситемных настроек.
2. Кто тебе сказал, что надо РАЗМНОЖИТЬ этот код? Это ОДИН обработчик, который просто надо указать в OnKeyPress ВСЕХ едитов. Просто тупо выдели все едиты и в ObjectInspector'е укажи имя этой процедуры для OnKeyPress. Сам код только в одном месте обращается к едиту и это прописано через Sender, так что он, код, не зависит от конкретного эдита, работает с тем, который и вызвал событие...
3. Как раз эта задача вообще не для DLL, для DLL придумай другую задачу. Тут накладных расходов в DLL больше получается, чем даже если ты начнешь размножать свой вариант кода.

ЗЫ. А еще есть статическая загрузка DLL, когда эти танцы с LoadLibrary/GetProcAddress/FreeLibrary просто не нужны. Но там все прибито гвоздями...