Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

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

 
JTAG   (2006-06-04 15:59) [0]

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


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

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


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

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


 
Джо ©   (2006-06-04 22:21) [3]

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


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

Спасибо!


 
Kolan ©   (2006-06-04 22:27) [5]

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) [6]

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

goEditing в Options.


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

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


 
Kolan ©   (2006-06-04 22:36) [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
 Проверить не смог, тк забыл что нужно выставить чтобы разрешить ввод..


 
Kolan ©   (2006-06-04 22:41) [8]

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:43) [9]

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.072 c
11-1129201301
ECM
2005-10-13 15:01
2006.06.25
BUG: SizeGrip и ASM-версия NewForm


2-1149745508
Wood
2006-06-08 09:45
2006.06.25
Можно ли определить позицию курсора в TEdit и как?


15-1149180484
Dter
2006-06-01 20:48
2006.06.25
"Задача о рюкзаке" (перебор вариантов)


1-1147763722
Бульбаш
2006-05-16 11:15
2006.06.25
Проблемы с крупным шрифтом...


15-1149046091
Skins
2006-05-31 07:28
2006.06.25
ATI = GF6600GT Помогите выбрать