![]() |
|
|
![]()
|
|
| Петрович |
|
||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Ну и думаешь удивил 1. Это мелкософт так в драйвер русской раскладки заложил. Если установлен режим "латинский" то эта клавиша продуцирует код символа '.' (точка), а если тек.регистр "русский" то продуцируется код ',' (запятая). Это если драйверок не патченный 2. Компонент DBEdit построен на базе TCustomMaskEdit (я его просто ненавижу
Не там ставишь. Надо делать сразу после begin проргаммы, до первого Application.CreateForm.
Ну я это уже проходили. Раньше тоже так делали. Но, нехорошо пользователя напрягать. Если он хочет видеть в качестве разделителя ',', то плохо когда программа принудительно показывает (и требует от него ввода) разделителя '.'. На самом деле, есть два решения. Первое - патчить tMaskEdit. Там помимо этого есть еще ошибка (http://forum.vingrad.ru/index.php?showtopi...ndpost&p=476796) Второе - вешать доп.обработку на свою форму. Это попутно поправить работу всех компонентов на форме, включая например DBGrid. Делается так: 1. У формы ставим свойство KeyPreview в True 2. У формы описываем поле LastKeyDown:
3. Назначаем обработчик на событие OnKeyDown формы:
4. Назначаем обработчик на событие OnKeyPress формы:
Причем, чтобы не писать так в каждой форме, можно сделать в одном, базовом классе формы, а все остальные формы в программе наследовать от него. Вот и все. -------------------- Все знать невозможно, но хочется |
||||||||||||
|
|||||||||||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Это когда ты знаешь с какой таблицей работаешь. Я столкнулся с этим в процедуре работающей с абстрактным tDataSet о котором ничего неизвестно. В этой процедуре нужно закрыть датасет и потом открыть его снова. При этом, надо по возможности сохранить позицию в датасете на той-же записи на которой он был спозиционирован до закрытия. А закладки (букмарки) не годятся. В большинстве наследников tDataSet, закладки реализуются в виде порядкового номера записи в наборе. Соответственно, поскольку перечень записей и даже их количестко в таблице может измениться после close/open, то и закладка может спозиционировать не туда. Проверено практикой. Где то в хелпах даже читал о том что значение Bookmark действительно только пока Dataset не закрыт, хотя, что-то сходу не нашел где. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
не всегда, я меняю количество товара, например, закрываю НД, открываю и закладка позиционируется нормально. Да записей я не добавляю в этом случае, поэтому, наверное, и нормально работает. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |