powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Панели в Grid
4 сообщений из 4, страница 1 из 1
Панели в Grid
    #32430683
Pant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли сделать так, чтобы некоторые столбцы Grid в левой панели были видны, а в правой - нет?
...
Рейтинг: 0 / 0
Панели в Grid
    #32430731
В VFP8 появилась возможность фиксировать колонки в гриде. Например, можно зафиксировать две левые колонки, и они всегда будут видны, а остальные будут прокручиваться.
В предыдущих версиях такой возможности нет.
...
Рейтинг: 0 / 0
Панели в Grid
    #32430855
Pant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, у меня 7.0...
...
Рейтинг: 0 / 0
Панели в Grid
    #32433962
andrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример: заморозка одной колонки слева
Свойство - oldLeftColumn = № предыдущейя левая колонка
Для заморозки более одной колонки слева необходимо
заменить во всех этих процедурах
FOR i=2 на FOR i=m
где m=№ колоки, следующей за замороженной
И для Scrolled поиграйся сам, не смог найти пример с заморозкой более одной колонки

******************************************
Procedure grid.AfterRowColChanged
LPARAMETERS nColIndex
IF ThisForm.oldLeftColumn<>this.LeftColumn
FOR i=2 TO this.LeftColumn
this.Columns .ColumnOrder=i-1
ENDFOR
this.Columns[1].ColumnOrder=this.LeftColumn
FOR i=this.LeftColumn+1 TO This.ColumnCount
this.Columns.ColumnOrder=i
ENDFOR
ThisForm.oldLeftColumn=this.LeftColumn
ELSE
IF (LASTKEY() = 19 OR LASTKEY() = 15) AND this.ActiveColumn = 1
FOR i=1 TO This.ColumnCount
this.Columns.ColumnOrder=i
ENDFOR
ThisForm.oldLeftColumn=this.LeftColumn
ENDIF
ENDIF
******************************************
Procedure grid.BeforeRowColChanged
LPARAMETERS nColIndex
IF (LASTKEY() = 4 OR LASTKEY() = 9 OR LASTKEY() = 13) AND ;
this.ActiveColumn = this.ColumnCount OR ;
(LASTKEY() = 19 OR LASTKEY() = 15) AND (this.ActiveColumn = 1 AND ThisForm.oldLeftColumn=1)
NODEFAULT
RETURN .F.
ENDIF
******************************************
Procedure grid.Scrolled
LPARAMETERS nDirection
DO CASE
CASE nDirection=5 OR nDirection=7 && Right Arrow
FOR i=2 TO this.LeftColumn
this.Columns.ColumnOrder=i-1
ENDFOR
this.Columns[1].ColumnOrder=this.LeftColumn
FOR i=this.LeftColumn+1 TO This.ColumnCount
this.Columns.ColumnOrder=i
ENDFOR
ThisForm.oldLeftColumn=this.LeftColumn
CASE nDirection=4 OR nDirection=6 && Left Arrow
IF ThisForm.oldLeftColumn<>this.LeftColumn
FOR i=2 TO this.LeftColumn
this.Columns.ColumnOrder=i-1
ENDFOR
this.Columns[1].ColumnOrder=this.LeftColumn
FOR i=this.LeftColumn+1 TO This.ColumnCount
this.Columns.ColumnOrder=i
ENDFOR
ThisForm.oldLeftColumn=this.LeftColumn
ELSE
IF (LASTKEY() = 19 OR LASTKEY() = 15) AND this.ActiveColumn = 1
FOR i=1 TO This.ColumnCount
this.Columns.ColumnOrder=i
ENDFOR
ThisForm.oldLeftColumn=this.LeftColumn
ENDIF
ENDIF
ENDCASE
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Панели в Grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]