Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проверка года в StringGrid

3.6K
17 июня 2007 года
dimas09
92 / / 17.06.2007
У меня есть проблема проверки введенного года налету то есть в событии onSetEditText
 
Код:
if (StrToInt(StringGrid1.Cells[ACol,ARow])>=1985)and (StrToInt(StringGrid1.Cells[ACol,ARow])<=2010) then
    data[ARow-1].year:=StringGrid1.Cells[ACol,ARow]
else if Length(StringGrid1.Cells[ACol,ARow])>=4 then begin
     MessageDlg('&#208;&#179;&#234; &#239;&#238;&#226;&#232;&#237;&#229;&#237; &#225;&#243;&#242;&#232; &#226; &#236;&#229;&#230;&#224;&#245; 1985-2010',mtError,[mbOK],0);
     StringGrid1.Cells[ACol,ARow]:=data[ARow-1].year
    end;

Если ввести год из трех цифр то ошибку не получаешь.
Подскажите может можно пойти другим путем.
3.6K
17 июня 2007 года
dimas09
92 / / 17.06.2007
Код:
procedure TForm8.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin

if (StringGrid1.Col=5) and (StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row]<>'') then begin
    if (StrToInt(StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row])>=1985)and
    (StrToInt(StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row])<=2010) then
    data[StringGrid1.Row-1].year:=StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row]
    else begin
     MessageDlg('&#208;&#179;&#234; &#239;&#238;&#226;&#232;&#237;&#229;&#237; &#225;&#243;&#242;&#232; &#226; &#236;&#229;&#230;&#224;&#245; 1985-2010',mtError,[mbOK],0);
     StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row]:=data[StringGrid1.Row-1].year;
    end;
   end;
end;

Поставил в событие onSelectCell, но еще надо что при возникновении ошибки в другую ячейку не переходило.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог