Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизОграничение на ввод в 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]:="ÒÎÂÀÐ"+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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.047 c