|
Вопрос # 5 274/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты!
Нужна Ваша помощь!
Каким образом в StringGrid организовать маску ввода данных для одной конкретной ячейки и для одного конкретного столбца?
Нужно добиться результата #:## для ввода времени.
Заранее благодарен, так как уже измучился поиском, и манипуляции с маской ввода таблицы результата не дали, потому что применяються ко всей таблице, что не нужно. Если возможно, покажите пожалуйста подробный код.
Примечание #1 (10 мая 2011, 15:56): Использую Delphi7, win7 x64
 |
Вопрос задал: Андрей_trico (статус: Посетитель)
Вопрос отправлен: 10 мая 2011, 15:51
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 11; последнее сообщение — 16 мая 2011, 14:42; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 10 мая 2011, 16:07 [#2]:
Ну чем не нравится вариант со встроенным в ячейку TDateTimePicker? И не надо никаких масок и прочей лабуды!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Андрей_trico (статус: Посетитель), 10 мая 2011, 16:15 [#3]:
TDateTimePicker ещё не использовал, нужно попробовать, а MaskEdit просто не знаю как прикрутить к ячейке StringGrid. Сейчас на работе, через два часика буду дома, буду пробовать. Спасибо за наводку, отпишу что получится.
|
|
min@y™ (статус: Доктор наук), 10 мая 2011, 16:27 [#4]:
TMaskEdit - это ацтой для малолеток. Забудь про него. Как встраивать компоненты в ячейки таблицы, есть 100500 тыщмильёнов статей в енторнете. Гугли на здоровье.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Андрей_trico (статус: Посетитель), 10 мая 2011, 22:45 [#5]:
В общем, TDateTimePicker - это точно мне не подходит по его функциям, пользователь должен вводить время в формате 1:20 или 6:40.... мне нужно избежать ситуаций 99:75 или ещё хуже чего-то вроде "р78ар4ар4" - тогда точно будет стоп-кран программе. Нужно визуально показать как вводить, типа постоянная надпись 0:00 и хоть на худой конец самодобавляющийся разделитель ":". придёться играться с Length вводимых символов наверное.
MaskEdit по вышеупомянутому примеру работает только на той ячейке, где он географически находиться, а комбо бокс работает правильно.
В общем я плохо ориентируюсь на устных рассуждениях, мне бы коды...
|
|
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 (статус: Посетитель), 12 мая 2011, 22:44 [#7]:
min@y™: Пожалуйста, снабдите меня простейшим кодом вставки TDateTimePicker в столбец и ячейку StringGrid, и как потом из него извлекать информацию. рабочий код от var до end мне куда понятнее, а так все мы тут мудрецы на пальцах. уж извининяюсь за прямоту русской речи.
|
|
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 (статус: Посетитель), 13 мая 2011, 23:59 [#10]:
Упорно возьмусь за этот вариант. буду разбираться с понедельника.
|
|
Андрей_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): Решение найдено.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|