Оформление таблицы в Delphi 7
Открой для себя DevExpress/EhLib.
const
NOT_EDITABLE_COLS : set of byte = [3,4]; //так делать нельзя (при добавлении колонок у тебя всё поедет)
begin
if TStringGrid(Sender).EditorMode then
if TStringGrid(Sender).Col in NOT_EDITABLE_COLS then
key := #0;
end;
вариантов - уйма.
в любом случае то, что ты делаешь - полный ахтунг. (хотя то что я предложил выше - тоже не особо айс, зато быстро и коротко, и без велосипедов как у тебя)
procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
if ACol>1 then StringGrid1.EditorMode:=false;
end;
Оставить комментарий
ivan84
Помогите пожалуйста грамотно оформить таблицу в Delphi 7. Нужно, чтобы таблица состояла из следующих элементов: 1-й столбец – названия параметров; 2-й столбец – редактируемые данные; 3-й и 4-й столбцы – не редактируемые данные.Максимально приближенная к требуемой таблица у меня получается только путем создания двух таблиц (компонент TStringGrid т.к. подсвойство onEditing свойства Options, обеспечивающее возможность редактирования данных, я могу включить только для полной таблицы. Но при создании двух таблиц возникает следующая неприятная ситуация: изначально при запуске програмы выделено 2 ячейки – верхние левые ячейки данных в таблицах. В дальнейшем если кнопкой мыши понажимать на разные ячейки двух таблиц, при переходе с одной таблицы на другую в первой выделяется последний элемент на который я нажимал . Если затем перейти на другой элемент в форме (не таблицу) то снова выделяются 2 ячейки (в каждой таблице выделяется последняя выбрання ячейка).
В связи с этим возникает 2 вопроса: возможно ли в одной таблице сделать разделение на редактируемые и не редактируемые столбцы? и каким образом можно убрать выделение ячейки при переходе с таблицы на друшгой элемент?
Ниже приведено изображение таблицы которую мне удалось сделать.