![]() |
|
![]() ![]() ![]() |
|
Ner-zul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 24.1.2004 Где: Москва Репутация: нет Всего: нет |
Я работаю с Delphi6 с базами под InterBase7.1
У меня есть объект TIBDataSet из него я с помощью DataSource вывожу информацию по выборке в DBGride. Одно из полей таблицы по которой и происходит выборка типа Даты(день года и время). Так вот Я хочу чтобы , например при вставке новой записи в таблицу при заполнения этого поля Даты, у меня был такой треугольничек(справа и внутри данной ячейки), на который я нажал и прямо из под этой строки выпал бы стандартный к примеру календарик и я бы там выбрал уж дату с помощью мышки , затем он бы сам убрался и в поле даты в данной строке появилось бы мною выбранное значение!!! Подскажите как же так можно сделать??? Мне кажется, что это както реализовывается стандартными средствами... Потомучто это можно встретить во всех СУБД, к примеру... --------------------
Ner-zul |
|||
|
||||
Ner-zul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 24.1.2004 Где: Москва Репутация: нет Всего: нет |
Пожалуйста не забывайте про мой вопрос...
--------------------
Ner-zul |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
Ты заполнение производишь из Грида???
|
|||
|
||||
jack128 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 18.5.2005 Репутация: нет Всего: 4 |
хе, как ни странно, но стандартный грид, действительно такой фишки не умеет. Лудше возьми грид из EhLib, по третью версию включительно он free для ExUSSR
|
|||
|
||||
Fedia |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 465 Регистрация: 2.8.2006 Где: первым встречаю р ассвет Репутация: 3 Всего: 13 |
Ner-zul, здесь статья на эту тему. Если все же решишь использовать DBGridEh, то скачивай либо новую версию (хотя она платная), либо ищи версию 3.6b, правда для нее использования календаря придется немного подправить. Модуль с исправлениями у меня есть, если нужен будет, то пиши.
-------------------- Накануне решающей битвы Я иду, и надеждою зыбкой Озаряется эта дорога, Я мечтаю увидеть улыбку На лице победившего Бога… |
|||
|
||||
Ner-zul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 24.1.2004 Где: Москва Репутация: нет Всего: нет |
Спасибо за консультацию, я щас обдумаю все варианты.
--------------------
Ner-zul |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
http://forum.vingrad.ru/index.php?showtopi...ad=#entry299888
здесь есть ссылки на разнве гриды Добавлено @ 15:52 http://forum.vingrad.ru/index.php?showtopi...st&p=299891 Добавлено @ 15:55 ![]() |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Fedia,
По-моему способ из статьи - мазохизм какой-то. В RxLib есть функция SelectDate() - вызывает календарь. Навесив на CellClick var DT0 : TDateTime; Ds0 : TDataSet; begin if Column.Field.DataType in [ftDate, ftDateTime] then begin Dt0 := Column.Field.AsDateTime; if SelectDate(Dt0, 'Выбор даты', Mon, [Sat, Sun], clRed, nil) then begin { use selected date } Ds0 := Column.Field.DataSet; Ds0.Edit; Column.Field.Value := Dt0; Ds0.Post; end; end; end; а на ColEnter var DT0 : TDateTime; Ds0 : TDataSet; begin if TDBGrid(Sender).SelectedField.DataType in [ftDate, ftDateTime] then begin Dt0 := TDBGrid(Sender).SelectedField.AsDateTime; if SelectDate(Dt0, 'Выбор даты', Mon, [Sat, Sun], clRed, nil) then begin { use selected date } Ds0 := TDBGrid(Sender).SelectedField.DataSet; Ds0.Edit; TDBGrid(Sender).SelectedField.Value := Dt0; Ds0.Post; end; end; end; имеем 2 процедуры обработки на все колонки с датами всех dbgrid-ов. Ну еще проверку на null можно навесить. |
|||
|
||||
Fedia |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 465 Регистрация: 2.8.2006 Где: первым встречаю р ассвет Репутация: 3 Всего: 13 |
SergeBS, может и мазохизм, да и написано далеко не профессионально. Я достаточно давно для этих целей использую DBGridEh, поэтому особо с возможностью использования TDateTimePicker-а в DBGrid-е я не разбирался. Кстати для удобного использования календаря RxLib-а ваш пример, по хорошему, придется доработать:
1. Необходимо, чтобы календарь появлялся под редактируемой ячейкой. 2. Отображение календаря должно происходить не при каждом клике на ячейку, а при клике на ее определенной области (поскольку редактировать ячейку с датой пользователи чаше всего предпочитают без календаря). 3. Область, на которой кликнет пользователь для вызова календаря, по хорошему должна содержать соответствующую пиктограмму. Вышеперечисленные изменения сделают ваш пример не таким простым. Не говорю, что это догма, просто так работать удобно и многие привыкли именно к такому способу редактирования. А так, идея с функцией SelectDate очень даже хороша для тех, кто доверяет только стандартному гриду. Это сообщение отредактировал(а) Fedia - 26.9.2006, 05:04 -------------------- Накануне решающей битвы Я иду, и надеждою зыбкой Озаряется эта дорога, Я мечтаю увидеть улыбку На лице победившего Бога… |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |