Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Ячейка в Grid


Автор: Thoron 28.7.2008, 09:42
Госпада программисты, подскажите!..
Как в Grid'e взять конкретную ячейку и сделать недоступной для изменения (Enabled = .f.)...

Автор: Yury1 8.8.2008, 18:20
Пробуй в Init Grid-a написать:

thisform.grid1.column1.readonly = ;
"iif(<условие>,.T.,.F.)"

Условие берется из любого поля текущей строки. 

У меня отлично работает такая конструкция:

thisform.pageframe1.page1.grid1.column6.DynamicForeColor = ;
"iif(<условие>,rgb(0,0,0),rgb(255,0,0))"

Автор: Bishop 9.8.2008, 00:09
Цитата(Yury1 @  8.8.2008,  18:20 Найти цитируемый пост)
thisform.grid1.column1.readonly = "iif(<условие>,.T.,.F.)"

Это работать не будет.
ReadOnly — свойство логического типа, и должно присваиваться непосредственно.
DynamicForeColor же — именно строка кода, которая выполняется для каждой строки грида для определения её ForeColor.
Но идея здравая. Можно отслеживать перемещение по таблице в событии Grid.AfterRowColChange и отключать в нужных местах всю колонку.
Код

Grid.AfterRowColChange
LPARAMETERS nColIndex
IF this.RowColChange > 0 && произошло изменение колонки или строки
    IF nColIndex = 1 && к примеру, запрещаем в первой колонке
        this.Columns(nColIndex).ReadOnly = MOD(this.ActiveRow, 2) = 0 && редактировать четные строки
    ENDIF 
ENDIF 

Автор: Yury1 11.8.2008, 14:55
Ну да. Я тож потом подумал, что не выйдет, но комп уже выключил. 
А можно еще условие проверять на WHEN ячейки, но наверное надо будет отключать на VALID

WHEN:
this.readonly = IIF(<условие>,.T.,.F.)
VALID:
this.readonly = .F.



Автор: Cashey 14.8.2008, 11:03
DynamicCurrentControl

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)