Главная страница
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
3-1097129337
Ega23
2004-10-07 10:08
2004.11.07
Error № 1038


14-1097956533
GuAV
2004-10-16 23:55
2004.11.07
винт FUJITSU MPG3204AT E и DMA


1-1098164882
denis24
2004-10-19 09:48
2004.11.07
определение свойств


14-1098210649
lipskiy
2004-10-19 22:30
2004.11.07
Подскажите по динамическим дискам.


14-1097832119
}|{yk
2004-10-15 13:21
2004.11.07
Программа составления генеалогий