Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Господа подскажите пожалуйста как сделать чтобы в таблицу


JTAG ©   (2006-06-04 15:59:00) 

StringGrid вводились числа только от 0 до 255?


MsGuns   (2006-06-05 10:44:00) [1]

>Kolan ©   (04.06.06 22:41) [8]
>Так то лучьше :)

Ничего хорошего.


Kolan   (2006-06-04 22:43:00) [2]

Ну и еще сеть хорошая вешь with


Kolan   (2006-06-04 22:41:00) [3]

var
 CellValue: Integer;
 ConvertResult: Boolean;
begin
 ConvertResult := TryStrToInt((Sender as TStringGrid).Cells[ACol, ARow],
   CellValue);
 if ConvertResult and ((CellValue > 255) or (CellValue < 0)) then
   (Sender as TStringGrid).Cells[ACol, ARow] := '';
end;

Так то лучьше :)


Kolan   (2006-06-04 22:36:00) [4]

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
 ARow: Integer; const Value: String);
begin
 if (StrToInt((Sender as TStringGrid).Cells[ACol, ARow]) > 255) or
   (StrToInt((Sender as TStringGrid).Cells[ACol, ARow]) < 0)
 then
   (Sender as TStringGrid).Cells[ACol, ARow] := '';
end;


Как-то так наверно.

PS
 Проверить не смог, тк забыл что нужно выставить чтобы разрешить ввод..


Джо   (2006-06-04 22:31:00) [5]

> Проверить не смог, тк забыл что нужно выставить чтобы разрешить
> ввод..

goEditing в Options.


> Как-то так наверно.

Этот вариант просто будет выбрасывать исключения при попытках ввести нечисловые значения. Есть хорошая функция, возвращающая Boolean — TryIntToStr.


JTAG   (2006-06-04 22:27:00) [6]

Спасибо!


Kolan   (2006-06-04 22:27:00) [7]

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
 ARow: Integer; const Value: String);
begin
 if (StrToInt((Sender as TStringGrid).Cells[ACol, ARow]) > 255) or
   (StrToInt((Sender as TStringGrid).Cells[ACol, ARow]) < 0)
 then
   (Sender as TStringGrid).Cells[ACol, ARow] := '';
end;


Как-то так наверно.

PS
 Проверить не смог, тк забыл что нужно выставить чтобы разрешить ввод..


Джо   (2006-06-04 22:21:00) [8]

Ну, делай свою проверку в обработчиках событий OnSelEditText, OnExit или OnKeyPress — в зависимости от способа, выбранного для реагирования на некорректный ввод.


JTAG   (2006-06-04 22:16:00) [9]

Ну да, когда человек вводит число, чтобы оно в процессе ввода проверялось не больше ли 255, если больше , то не вводится.


Галинка   (2006-06-04 21:29:00) [10]

Проверять Cells на значение ??


Наверх

Титульная страница Поиск, карта сайта Написать письмо