powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / изменение метода grid в процессе выполнения
15 сообщений из 15, страница 1 из 1
изменение метода grid в процессе выполнения
    #33936915
Алексей О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть объектик grid подстраивающийся под просматриваемую таблицу - в методе init просматривается описание таблицы и создается и настривается нужное количество колонок.
захотелось использовать DblClick event - описал его и на уровне grid и на уровне первой колонки и на уровне текста первой колонки - не отрабатывае. Догадываюсь, что метод теряется в процессе выполнения, когда я настраиваю grid.
а можно переопределить метод в процессе выполнения , ведь свойства мы переопределяем?
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33936938
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свойства - это данные, они не исполняются. Методы - исполняемый код.
Лучше написать класс колонки и его в свой грид и подставлять.
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33936960
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DblClick на НЕ пустом GRID срабатывает на Control, который в колонке (обычно TextBox). Так, что вам придеться изпользовать еще свой класс Column и класс TextBox в классе Column. А в классе GRID установить свойства Member Class и MemberClassLibrary.

С уважением, Алексей
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937272
Алексей О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создать класс column кажется невозможно - это не самостоятельный объект, а вот свой класс textbox сделал и прописал туда событие DblClick да еще и click и rightclick.
при создании новой колонки в гриде удаляю старый text1 создаю свой из своего класса и... опять эти события не отрабатывают.
что может им помешать?
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937303
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать класс column кажется невозможно - это не самостоятельный объект

Начиная с 8-ки можно.
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937325
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Осоздать класс column кажется невозможно - это не самостоятельный объект, а вот свой класс textbox сделал и прописал туда событие DblClick да еще и click и rightclick.
при создании новой колонки в гриде удаляю старый text1 создаю свой из своего класса и... опять эти события не отрабатывают.
что может им помешать?
1. Какая версия у вас VFP?
2. Приведите код добавления нового TextBox (и удаления старого).
С уважением, Алексей.
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937409
Алексей О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня VFP 6
код исполнияется в init формы в которой размещен grid
c_column="column"+alltrim(str(i_column))
this.grid1.&c_column..removeobject("text1")
this.grid1.&c_column..addobject("text1","grid_text")

и на самом деле предложенный метод работает
:-)
мне мешало
this.grid1.&c_column..text1.enabled= .f.
а нужна она мне было для того что-бы нельзя было редактировать прямо в гриде, а readonly - генерирует лишнее сообщение.
но гдето здесь я читал как погасить его - сейчас поищу, или подскажите (если не трудно)
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937474
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Ну я бы еще добавил после AddObject:
this.grid1.&c_column..text1.visible= .T.
2. Мне кажется удобнее ссылаться на колонки через коллекцию Columns, чем использовать макроподстановку

Код: plaintext
1.
2.
3.
4.
5.
6.
FOR m.i =  1  TO THIS.Grid1.ColumnCount
     WITH THIS.Grid1.Columns(m.i)
          .RemoveObject("Tex1")
          .AddObject("text1","grid_text")
          .Text1.Visible = .T.
     ENDWITH
ENDFOR

С уважением, Алексей
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937626
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
for each loColumn in thisform.Grid.Columns
    for each loControl in  loColumn.Controls
        ...
    endfor
    loColumn.add...
endfor

пользуйтесь конструкцией for each
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937753
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100
Код: plaintext
1.
2.
3.
4.
5.
6.
for each loColumn in thisform.Grid.Columns
    for each loControl in  loColumn.Controls
        ...
    endfor
    loColumn.add...
endfor

Не советую для VFP 6.0
В старых версиях цикл FOR EACH ... приводил к утечке (leak) памяти.
С уважением, Алексей.
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937808
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну раз классами пишет
и колонки подменяет, надеюсь там не 6

с 6 с визуальными классами не поработаешь
(код перегруженный не смотрится)
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937825
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Оу меня VFP 6
С уважением, Алексей.
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33937871
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну возможно в сервиспаках поправили
там кажется их 4 было или больше
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33938025
Алексей О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну специально сервис паки не ставил и что входило в дистриб не смотрел, но в данном случае пишу на 6-ке хотя знаком и с более свежими.
это все конечно хорошо. спасибо за советы.
но я всетаки не нашел как погасить сообщение "the control is read-only"
это вообще возможно в 6-ке?
...
Рейтинг: 0 / 0
изменение метода grid в процессе выполнения
    #33938124
Алексей О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну и в этом решение нашел - не ставлю readonly, а в методе keypress заканчиваю свою обработку командой nodefa и в объект нажатые кнопочки не попадают. странно лишь то что этой командочки не оказалось в родном help'е
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / изменение метода grid в процессе выполнения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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