Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2011, 22:43   #1
z-wer
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 89
По умолчанию AdvStringGrid, пределы значений

Обращаюсь за помощью к сообществу.
Есть AdvStringGrid. Нужно чтобы в определенных ячейках можно было набрать цифровые значения в пределах от -300 до 300. Иначе ячейка должна очиститься. Оно то вроде как работает, если переходить через энтер - но если заполнять до предела ячейку то число (допустим 50000)
не удаляется.
Вот код двух процедур, которые я так думаю отвечают за это дело

Цитата:
procedure TForm1.AdvGetEditorType(Sender: TObject; ACol, ARow: Integer;
var AEditor: TEditorType);
begin
with AdvStringGrid1 do
if (ARow > 0) then
begin
case ACol of
0: AEditor := edCheckBox;
1: begin
AEditor := edNormal;
MaxEditLength := 6;
end;
2: begin
AEditor := edNormal;
MaxEditLength := 24;
end;
3: begin
AEditor := edNumeric;
MaxEditLength := 5;
AlwaysValidate := True;
end;
4: AEditor := edButton;
end;
end;
end;

procedure TForm1.AdvCellValidate(Sender: TObject; ACol, ARow: Integer;
var Value: String; var Valid: Boolean);
begin
with AdvStringGrid1 do
if (ARow > 0) and (ACol = 3) then
begin
Valid := (Ints[ACol, ARow] > -301) and (Ints[ACol, ARow] < 301);
if not (Valid) then
Value := ' ';
end;
end;
Все редактирование должно происходить в третьей колонке.

Может кто работал с данным компонентом и может подсказать где я напартачил?
z-wer вне форума Ответить с цитированием
Старый 10.09.2011, 23:34   #2
z-wer
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 89
По умолчанию

Пока пытаюсь сам разобраться, да и глюки с форумом, ну ежели кто нить надумает чего дельного - подскажите .....
z-wer вне форума Ответить с цитированием
Старый 13.09.2011, 16:18   #3
z-wer
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 89
По умолчанию

Спасибо всем, кто не мешал разобраться самому
Может кому и пригодится
Цитата:
procedure TForm1.AdvStringGrid1SetEditText(Se nder: TObject; ACol,
ARow: Integer; const Value: String);
begin
with AdvStringGrid1 do
if ((ARow > 0) and (ACol = 3)) then
begin
if ((Length(Value) > 3) and (StrToInt(Value) > 3000)) or
((Length(Value) > 4) and (StrToInt(Value) < -3000)) then
AdvStringGrid1.Cells[ACol, ARow] := '';
end;
end;
z-wer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с AdvStringGrid 2.0 в delphi 5 [D5, WinXP] Seally Компоненты Delphi 21 22.06.2010 19:00
AdvStringGrid (TMS) сохранить в Stream Polotenchik Компоненты Delphi 2 18.03.2010 09:39
AdvStringGrid c секциями nazirm Компоненты Delphi 0 15.10.2009 14:25
Компонент advstringgrid(проблема в печати) frodo Компоненты Delphi 0 19.04.2008 09:08
advstringgrid frodo Общие вопросы Delphi 4 07.04.2008 10:23