| 
| 
 | Вопрос # 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): Решение найдено. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |