Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 InteractiveChange  [new]
Tyro
Member

Откуда:
Сообщений: 27
Хочу описать некий процесс в InteractiveChange для Text1 в Grid'e. Но у меня тысячи колонок.Неужели придется писать для каждого. Можно ли как-нибудь по-другому?
22 дек 03, 10:56    [468955]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
malec
Member

Откуда: Украина
Сообщений: 123
Вариант 1:
Напиши InteractiveChange для Text1 и потом для всех последующих в InteractiveChange пиши Text1.InteractiveChange
Вариант 2:
Напиши нужную функцию и вызывай её из InteractiveChange
Вариант 3:
Создай новый метод для формы в которой работаешь и ссылайся на него.
22 дек 03, 11:06    [468970]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
вариант 4
Напиши класс своего TextBox'a с кодом и его уже вставь в колонки грида
22 дек 03, 11:09    [468976]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Tyro
Member

Откуда:
Сообщений: 27
to malec: слишком много колонок, чтобы в каждой писать
Text1.InteractiveChange etc., но все равно спасибо.

to Hel!Riser: Если класс я уже создал, то каким образом я могу его вставить в
колонки GRID'A?
22 дек 03, 11:20    [468995]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
открой форму как таблицу и в поле Class пропиши имя, ClassLoc - откуда взята, для всех полей где в Parent указан твой грид
22 дек 03, 11:40    [469036]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Tyro
Member

Откуда:
Сообщений: 27
Что значит как таблицу?
22 дек 03, 13:23    [469274]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
USE MyForm.SCX IN 0, а потом BROWSE и фс:е такое.. ;)
22 дек 03, 13:34    [469294]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Tyro
Member

Откуда:
Сообщений: 27
Для ВСЕХ , где в Parent встречается Grid или только для тех где в Class встречается TextBox
22 дек 03, 14:06    [469359]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
ну любезный ты хоть открой, посмотри, зависимость установи.. ;)
на вскидку - для фсех, где твой грид и после точки Column встречаеца, если ты названия колонок не менял. ну и еще что-нить заприметь :)
22 дек 03, 14:16    [469378]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512
А не проще ли (и понятнее) в Grid.Init прописать нечто вроде этого:
FOR Each oCol IN This.Columns

m.oCol.AddObject("Txt", "MyTextBox")
m.oCol.txt.Visible = .T.
m.oCol.CurrentControl = "txt"
* Можно убрать стандартный текстбокс, хотя он обычно и не мешает...
* IF TYPE("m.oCol.Text1.Name") == "C"
* m.oCol.RemoveObject("Text1")
* ENDIF
ENDFOR

WBR, Igor
22 дек 03, 15:07    [469522]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Tyro
Member

Откуда:
Сообщений: 27
а oCol = This.Colum ?
22 дек 03, 15:11    [469533]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Tyro
Member

Откуда:
Сообщений: 27
И почему нельзя свой прошлый вопрос удалить :(

Да, а у меня изначально стандартные TextBox'ы визуально не отображаются и, соот-но, при открытии формы как таблицы в поле Class тоже их нету.
т.е вставлять MyTextBox в таблицу никак не получится, а

FOR Each oCol IN This.Columns
m.oCol.AddObject("Txt", "MyTextBox")
m.oCol.txt.Visible = .T.
m.oCol.CurrentControl = "txt"
* Можно убрать стандартный текстбокс, хотя он обычно и не мешает...
* IF TYPE("m.oCol.Text1.Name") == "C"
* m.oCol.RemoveObject("Text1")
* ENDIF
ENDFOR

Тоже нужного результата не дает.
Все работает, когда Стандартные TextBox'ы четко определены и визуально отображаемы.
А как же мне поступить в данном случае?
22 дек 03, 15:31    [469586]     Ответить | Цитировать Сообщить модератору
 Re: InteractiveChange  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512
oCol - это внутренняя переменная цикла FOR EACH. В каждой итерации она ссылается на один из (очередной) элементов коллекции Columns грида. Т.е. на одну из колонок. А вообще не пренебрегай RTFM, это очень полезно :D
WBR, Igor
22 дек 03, 15:36    [469592]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить