IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Сравнение в AdvStringGrid, Сравнение двух ячеек в AdvStringGrid
Atreides
сообщение 19.07.2012 11:44
Сообщение #1


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Добрый день!
Нужно сравнить два ячейки в AdvStringGrid.Казалось, что может быть проще, но что-то у меня возникли трудности. Задача, есть две колонки в гриде "от" и "до". Пользователь может редактировать обе, но значения "до" не должно быть меньше "от" и соответственно "от" не должно превышать "до", строка значений "от" и "до" одинаковая, разница только в колонках. В итоге нельзя отпускать пользователя пока не введет корректно. Не удается привязать ни к одному событию, ибо если число многозначное условие срабатывает на первом символе и не дает ввести дальше. Есть еще варианты кроме просто сравнения?


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 19.07.2012 13:49
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


Установи активной ячейкой ту, которая была изначально отредактирована, и только потом переходи в EditMode:

procedure TfrmNormRemont.sgNormRemontEditCellDone(Sender: TObject; ACol,
ARow: Integer);
var TheCol, TheRow : Integer;
begin
TheCol := ACol; TheRow := ARow;
if StrToInt(sgNormRemont.Cells[3, ARow])<StrToInt(sgNormRemont.Cells[2, ARow]) then
begin
ShowMessage('Oops, error!!!');
sgNormRemont.Row := TheRow; sgNormRemont.Col := TheCol;
sgNormRemont.SetFocus;
sgNormRemont.EditMode :=True;
end;
end;

Только зачем тебе это делать при редактировании любой ячейки? Поставь доп. условие, если ACol = 2 или 3, только тогда проверяй...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Atreides   Сравнение в AdvStringGrid   19.07.2012 11:44
IUnknown   Оказалось, что не казалось. Ничего проще в TAdvStr...   19.07.2012 12:39
Atreides   Оказалось, что не казалось. Ничего проще в TAdvSt...   19.07.2012 12:56
IUnknown   У меня в Дельфи нет этого компонента, есть в Билде...   19.07.2012 13:05
Atreides   Не владею С, вот попробовал. Вроде верно отрабатыв...   19.07.2012 13:23
IUnknown   Установи активной ячейкой ту, которая была изначал...   19.07.2012 13:49
Atreides   Я так догадываюсь, что он должен войти в режим вво...   19.07.2012 13:54
TarasBer   > // В Дельфи можешь выделить это во вложенную ...   19.07.2012 15:13
IUnknown   TarasBer, ты на самом деле думаешь, что Билдер (лю...   19.07.2012 16:09
TarasBer   [b]TarasBer, ты на самом деле думаешь, что Билдер...   20.07.2012 11:58
Гость   Работает! Огромное спасибо! Вопрос не в ...   19.07.2012 17:36
IUnknown   // CanSelect := not (ACol in [0, 19]); CanSe...   19.07.2012 17:56
Гость   Все нравится! Огромное спасибо!   19.07.2012 20:04
Atreides   Есть ли возможность запретить ввод с клавиатуры в ...   20.07.2012 10:30
IUnknown   В событии AdvStringGrid1GetEditorType для тех стол...   20.07.2012 11:04


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 4:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"