Можно ли при работа с компонентом TStringGrid именно в момент обработки события OnKeyPress определить к ячейке с какими координатами идет обращение ?
Не пользуясь обходными путями (обрабатывать событие OnSelectCell и в каких-то глобальных переменных запоминать координаты и использовать эти данные уже в OnKeyPress (это по крайней мере мне в голову пришло, но слишком уж муторно ))
Я не понял, ты хочешь получать адрес ТЕКУЩЕЙ (редактируемой в данный момент) клетки?
Так Row/Col вроде не отменили еще...
Очень очень странно. Почему странно - не важно, даже если скажу не поверите
Спасибо.
Хотя нет, всетаки покажу )
где свойство row ?!!!!
strGrd_array: TStringGrid;
Эскизы прикрепленных изображений
Да уж ...
не смотря что сама система мне не хочет подсказать что Row и Col здесь всетаки доступно, такой код компилируется на ура
procedure Tfrm_Main.strGrd_arrayKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, strGrd_array.Cells[strGrd_array.Row, strGrd_array.Col]);
end;
Теперь возникла еще одна проблема :
Есть функция по обработке вводимого значения в какое-либо поле, выглядит она так :
function CheckKey(key: char; text: string): char;
begin
case key of
'0'..'9', #8: result := key;
',', '.':
if pos(DecimalSeparator, text) = 0 then
result := DecimalSeparator else result := char(0);
else result := char(0);
end
end;
procedure Tfrm_Main.edt_setupKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, edt_setup.Text);
end;
procedure Tfrm_Main.strGrd_arrayKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, strGrd_array.Cells[strGrd_array.Row, strGrd_array.Col]);
end;
Все работает... Где-то в другом месте намудрил?
Да негде мудрить - то было пока ...
Вот все что есть в проекте на данный момент (аттач)
АА я понял, нормлаьно почему-то обрабатывается только первая ячейка, щас разберемся
Хыыы вопрос решен
я писал cells[row, col] а надо-то cells[col, row] ;)
Прикрепленные файлы
_____________________1.rar ( 196.32 килобайт )
Кол-во скачиваний: 184