Главная страница
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.045 c
14-1098351117
_none_
2004-10-21 13:31
2004.11.07
ЗИЛ


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


1-1098434425
ALex 67
2004-10-22 12:40
2004.11.07
Проблема с графикой


6-1094151616
GuAV
2004-09-02 23:00
2004.11.07
TWebBrowser - designMode


14-1097705686
Piter
2004-10-14 02:14
2004.11.07
Позор... Россия 1 - 7 Португалия