Главная страница
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.022 c
1-1098424208
ИМХО
2004-10-22 09:50
2004.11.07
Слово о Structured Storage и не только


1-1098742630
saNat
2004-10-26 02:17
2004.11.07
Прокрутка в Мемо


9-1089442145
1@@@@@1
2004-07-10 10:49
2004.11.07
Collision не работает


3-1097189230
Black
2004-10-08 02:47
2004.11.07
Как добавлять новые столбцы в таблицу ADO?


1-1098431939
Baradatiy
2004-10-22 11:58
2004.11.07
Визуальное линковние объектов