Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Вниз
StringGrid как запретить редактирование в определенном столбце? Найти похожие ветки
← →
MadGhost © (2005-01-24 21:44) [0]в StringGrid есть два столбца, один столбец значение, второй параметр, так вот, как сделать так чтобы в первом столбце запретить редактирование, а во втором можно было?
заранее спасибо.
← →
dimaxx © (2005-01-24 21:56) [1]Через OnSetEditText
procedure(Sender: TObject; ACol, ARow: Longint; const Value: String) of object;
Проверяем ACol. Если ACol=2, то делаем добавление в Options параметра goEditing. Иначе - убираем этот параметр.
← →
begin...end © (2005-01-24 22:03) [2]> MadGhost © (24.01.05 21:44)
Обрабатывайте событие TStringGrid.OnSelectSell и в зависимости от номера столбца выбираемой ячейки включайте/исключайте из свойства TStringGrid.Options значение goEditing.
Пример:procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
with (Sender as TStringGrid) do
if (ACol = 1) and (goEditing in Options) then
Options := Options - [goEditing]
else if (ACol = 2) and not (goEditing in Options) then
Options := Options + [goEditing]
end
Кстати, если таблица только из этих двух столбцов и состоит, то лучше заменить её на компонент TValueListEditor - он как раз для таких целей и предназначен.
> [1] dimaxx © (24.01.05 21:56)
После исключения goEditing обработчик TStringGrid.OnSetEditText, вероятно, больше вызываться не будет.
← →
MadGhost © (2005-01-24 22:40) [3]> begin...end © (24.01.05 22:03) [2]
вау :) при большущее спасибо :), большего и желать нельзя :) тот самый компонент который нужен :) и без геморою.
спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c