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

Вниз

Ограничение на ввод в Stringgrid   Найти похожие ветки 

 
Настенька   (2004-10-21 20:15) [0]

я меня есть стринггрид. я хочу, чтобы в 1 ячейку можно было вводить только цифры, а во 2 - только буквы. как это сделать?


 
begin...end ©   (2004-10-22 08:52) [1]

TStringGrid.OnSetEditText ?


 
RDen   (2004-10-22 09:10) [2]

StringGridGetEditMask


 
Настенька   (2004-10-23 08:28) [3]

нет я делала так на событие onkeypress
if not (key in ["0".."9",#10,#13]) then key:=#0;
это круто работает, но для всего стринггрида, а мне надо для каждой ячейки свое ограничение


 
Amoeba ©   (2004-10-23 13:47) [4]


> Настенька   (23.10.04 08:28) [3]
> нет я делала так на событие onkeypress
> if not (key in ["0".."9",#10,#13]) then key:=#0;
> это круто работает, но для всего стринггрида, а мне надо
> для каждой ячейки свое ограничение

Тогда смотри посты [1] и [2].


 
Настенька   (2004-10-23 15:42) [5]

извините, что такое посты? и где их смотреть?


 
Amoeba ©   (2004-10-23 15:45) [6]


> Настенька   (23.10.04 15:42) [5]
> извините, что такое посты? и где их смотреть?

Если не поняла - то имеются в виду ответы [1] и [2].


 
Настенька   (2004-10-23 15:51) [7]

ну а какой из них правильный и как их использовать? помогите кодом


 
Amoeba ©   (2004-10-23 16:41) [8]

Вполне можно обрабатывать OnKeyPress, как у тебя сделано, только при это нужно отслеживать в какую ячейку делатся ввод (св-ва Row и Col) и в зависимости от этого задавать неообходимые ограничения на ввод. Это сделать очень просто.


 
begin...end ©   (2004-10-23 19:26) [9]


> [7] Настенька   (23.10.04 15:51)


> помогите кодом

Вы меня расстроили, Настенька. Я теперь расстроенный. :о(


 
GanibalLector ©   (2004-10-23 19:52) [10]


procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
 ARow: Integer; const Value: String);
var i:integer;  
begin
if acol=3 then begin
if length(value)>1 then
stringgrid1.cells[acol,arow]:="1";
for i:=1 to length(value) do
if (value[i]<"1") or (value[i]>"8") then
stringgrid1.cells[acol,arow]:="1";
                      end;
if acol=2 then begin
if length(value)>6 then
stringgrid1.cells[acol,arow]:="0";
for i:=1 to length(value) do
if ((value[i]<"0") or (value[i]>"9"))then
stringgrid1.cells[acol,arow]:="0";
              end;
if acol=1 then begin
if length(value)>13 then
stringgrid1.cells[acol,arow]:="&#210;&#206;&#194;&#192;&#208;"+inttostr(arow);
for i:=1 to length(value) do
if value[i]=";"then
...
...


 
atruhin ©   (2004-10-24 08:04) [11]

>>GanibalLector ©   (23.10.04 19:52) [10]
Извени но это галимотья.
StringGrid.GetEditMask и в зависимости от номера активной колонки возвращаем маску. Вопрос решается в 2 строки.


 
Настенька   (2004-10-24 08:48) [12]

нет лучше на onkeypress, там код в 1 строку, а мистер GanibalLector сделал код в 23 строки.



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

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

Наверх




Память: 0.49 MB
Время: 0.025 c
4-1096522951
Muhsin
2004-09-30 09:42
2004.11.07
Как используется ShellExecute


14-1098303857
KilkennyCat
2004-10-21 00:24
2004.11.07
Мож старо, но я только сейчас увидел про писающих программеров


1-1098284549
Vikont
2004-10-20 19:02
2004.11.07
Импорт из Екселя в SQLтаблицу


3-1097069063
Rule
2004-10-06 17:24
2004.11.07
Вопрос по хранимой процедуре (FB 1.x + IBX 7.08)


4-1096483539
antonioxxx
2004-09-29 22:45
2004.11.07
Доступ к аудиокарте