Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 274

/ вопрос решён /

Здравствуйте, уважаемые эксперты!
Нужна Ваша помощь!

Каким образом в StringGrid организовать маску ввода данных для одной конкретной ячейки и для одного конкретного столбца?
Нужно добиться результата #:## для ввода времени.
Заранее благодарен, так как уже измучился поиском, и манипуляции с маской ввода таблицы результата не дали, потому что применяються ко всей таблице, что не нужно. Если возможно, покажите пожалуйста подробный код.

Примечание #1 (10 мая 2011, 15:56):
Использую Delphi7, win7 x64

Андрей_trico Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Андрей_trico (статус: Посетитель)
Вопрос отправлен: 10 мая 2011, 15:51
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 16 мая 2011, 14:42; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 10 мая 2011, 15:57 [#1]:

Плохая это идея - делать маску. Но если что - всегда можно поместить MaskEdit. Как именно - посмотреть можно здесь http://sources.ru/delphi/gui/combobox_in_stringgrid_cell.shtml (там правда Combobox)
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 10 мая 2011, 16:07 [#2]:

Ну чем не нравится вариант со встроенным в ячейку TDateTimePicker? И не надо никаких масок и прочей лабуды!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Андрей_trico

Андрей_trico (статус: Посетитель), 10 мая 2011, 16:15 [#3]:

TDateTimePicker ещё не использовал, нужно попробовать, а MaskEdit просто не знаю как прикрутить к ячейке StringGrid. Сейчас на работе, через два часика буду дома, буду пробовать. Спасибо за наводку, отпишу что получится.
min@y™

min@y™ (статус: Доктор наук), 10 мая 2011, 16:27 [#4]:

TMaskEdit - это ацтой для малолеток. Забудь про него. Как встраивать компоненты в ячейки таблицы, есть 100500 тыщмильёнов статей в енторнете. Гугли на здоровье.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Андрей_trico

Андрей_trico (статус: Посетитель), 10 мая 2011, 22:45 [#5]:

В общем, TDateTimePicker - это точно мне не подходит по его функциям, пользователь должен вводить время в формате 1:20 или 6:40.... мне нужно избежать ситуаций 99:75 или ещё хуже чего-то вроде "р78ар4ар4" - тогда точно будет стоп-кран программе. Нужно визуально показать как вводить, типа постоянная надпись 0:00 и хоть на худой конец самодобавляющийся разделитель ":". придёться играться с Length вводимых символов наверное.

MaskEdit по вышеупомянутому примеру работает только на той ячейке, где он географически находиться, а комбо бокс работает правильно.

В общем я плохо ориентируюсь на устных рассуждениях, мне бы коды...
min@y™

min@y™ (статус: Доктор наук), 11 мая 2011, 08:09 [#6]:

Цитата (Андрей_trico):

В общем, TDateTimePicker - это точно мне не подходит по его функциям, пользователь должен вводить время в формате 1:20 или 6:40.... мне нужно избежать ситуаций 99:75 или ещё хуже чего-то вроде "р78ар4ар4" - тогда точно будет стоп-кран программе. Нужно визуально показать как вводить, типа постоянная надпись 0:00 и хоть на худой конец самодобавляющийся разделитель ":". придёться играться с Length вводимых символов наверное.

А ты его (TDateTimePicker) точно видел? Чойта я сомневаюсь, т.к. всё то, что ты тут понаписал, он как раз и поддерживает, причём в полном объёме.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Андрей_trico

Андрей_trico (статус: Посетитель), 12 мая 2011, 22:44 [#7]:

min@y™: Пожалуйста, снабдите меня простейшим кодом вставки TDateTimePicker в столбец и ячейку StringGrid, и как потом из него извлекать информацию. рабочий код от var до end мне куда понятнее, а так все мы тут мудрецы на пальцах. уж извининяюсь за прямоту русской речи.
min@y™

min@y™ (статус: Доктор наук), 13 мая 2011, 08:13 [#8]:

Цитата (Андрей_trico):

Пожалуйста, снабдите меня простейшим кодом вставки TDateTimePicker в столбец и ячейку StringGrid

О, ты молодец, однако! Мне отодвинуть свою работу в долгий ящик и заняться твоей? Сколько платишь?
В инете примеров - туева хуча и гугл пока бесплатный. Главное - набрать правильный запрос.

Цитата (Андрей_trico):

и как потом из него извлекать информацию

Да вот так:
var 
  T: TDateTime; // или TTime 
begin
  T:= Picker.Time;
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 13 мая 2011, 10:49 [#9]:

А вот интересно, чем вставка Combobox'а принципиально отличается от вставки TDateTimePicker - а только названием компонента и парочкой свойств. А я ещё в первом посте дал ссылку:)
Галочка "подтверждения прочтения" - вселенское зло.
Андрей_trico

Андрей_trico (статус: Посетитель), 13 мая 2011, 23:59 [#10]:

Упорно возьмусь за этот вариант. буду разбираться с понедельника.
Андрей_trico

Андрей_trico (статус: Посетитель), 16 мая 2011, 14:42 [#11]:

Упорство таки даёт результат, и ничего усложнять не пришлось.
procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol,
  ARow: Integer; var Value: String);
begin
    if (acol = 5)and(arow = 30) then Value:='0:00';// для ячейки
    if (acol = 3)and(arow <> 0) then Value:='0:00';// для столбца
end;

всем спасибо, вопрос решён.

P.S. Иногда нужно отдохнуть и по новому посмотреть на исходный код))

16 мая 2011, 14:46: Статус вопроса изменён на решённый (изменил автор вопроса — Андрей_trico): Решение найдено.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:37
Выполнено за 0.03 сек.