powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как правильно обновить форму?
18 сообщений из 18, страница 1 из 1
Как правильно обновить форму?
    #33306444
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть форма с Grid. При нажатии на кнопку появляется другая форма, при помоши которой заносятся значения в таблицу,связанную с grid на первой форме. Хотелось бы, не закрывая вторую, обновлять grid в первой.
Т.е. спокойно заносим значения в таблицу и при этом, не закрывая форму, видим как обновляются значения в первой (которая на заднем плане)
Как сотворить?
Обе формы Top Level
Спасибо.
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #33306460
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
form1.grid1.refresh()
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #33306485
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык... object form1 not found, однако
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #33306539
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример от Игоря Королёва, жмешь кнопку внизу первой формы, меняешь значения и наслаждаешься

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
PUBLIC goFrmMain  
  goFrmMain = CREATEOBJECT("frmMain")  
  m.goFrmMain.Show()  
    
  DEFINE CLASS frmMain AS Form  
  DataSession =  2   
  Caption = "Main"  
  Height =  450   
  Width =  300   
  oChild = .F.  
    
  ADD OBJECT grd1 AS Grid WITH ;  
   RecordSource = "tmp1", Height =  400 , Width =  300   
  ADD OBJECT cmdCall AS Commandbutton WITH ;  
   Caption = "Child", Top =  410 , Height =  30 , ;  
   Left =  50 , Width =  200   
    
  PROCEDURE Load  
   CREATE CURSOR tmp1 (nID I)  
   LOCAL ln1  
   FOR ln1 =  1  TO  10   
    INSERT INTO tmp1 (nID) VALUES (m.ln1)  
   ENDFOR  
   GO TOP IN tmp1  
  ENDPROC  
  PROCEDURE grd1.AfterRowColChange  
   LPARAMETERS tnColIndex  
   IF TYPE("ThisForm.oChild.Name") = "C"  
    ThisForm.oChild.Refresh()  
   ENDIF  
  ENDPROC  
  PROCEDURE cmdCall.Click  
   IF TYPE("ThisForm.oChild.Name") # "C"  
    ThisForm.oChild = CREATEOBJECT("frmChild")  
   ENDIF  
   ThisForm.oChild.Show()  
  ENDPROC  
  ENDDEFINE  
    
  DEFINE CLASS frmChild AS Form  
  DataSession =  1   
  Caption = "Child"  
  Width =  100   
  Height =  90   
  Top =  100   
  Left =  320   
    
  ADD OBJECT txt1 AS Textbox WITH ;  
  ControlSource = "tmp1.nID", Width =  80 , Height =  20 , ;  
   Top =  10 , Left =  10   
  ADD OBJECT cmdClose AS Commandbutton WITH ;  
   Caption = "Close", Top =  50 , Height =  30 , ;  
   Left =  10 , Width =  80   
    
  PROCEDURE cmdClose.Click  
   ThisForm.Release()  
  ENDPROC  
  ENDDEFINE
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #33306867
Фотография FoxLamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ините 1 формы:
public goParentForm

goParentForm=This


Потом из дочерней формы вызывается
goParentForm.Grid1.Refresh()
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как правильно обновить форму?
    #34858002
lexusXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая же проблема, не чего не получается, может кто нибудь на пальцах объяснит как же обновить грид на первой форме.
у меня получилось обновть только так, пердаю фокус гриду на первой форме, делаю его рефрешь, потом возвращяю фокус второй форме, при этом получаетс мелькание форм, как быть? помогите!
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34858814
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновятся данные в столбце грида первой формы когда потеряет фокус ваш Control на второй во второй форме (c ControlSource= Grid/Column/ControlSource)
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34858834
lexusXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините но ни чего не полнял. Задача такая сделать что то вроде инкрементного поиска. Есть форма-1 на ней грид, в столбце грида я жму какую нибудь кнопку, после этого запускается вторая форма в которой есть только одно текстовое поле, так вот в это время когда я набиваю в текстовое поле что хочу найти, мне надо чтобы на первой форме в гриде указатель перехдил на первую подходящюю запись, не закрывая при этом вторую форму. Вторую форму закрывать только по требованию например клавишей ENTER или ESC. Так вот проблема с обновлением указателя в гриде. Может для этой задачи есть какое то другое решение подскажите пожалуйста!!!
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34861383
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант №1
Запускаешь формы сл.способом
Код: plaintext
1.
2.
PUBLIC f_MyForm
DO FORM f_MyForm NAME f_MyForm LINKED
Теперь из любого места можешь сделать
Код: plaintext
1.
f_MyForm.refresh()
Вариант №2
Запуск из рабочей формы - формы справочника:
Код: plaintext
1.
DO FORM f_MyForm with thisform
В форме, которую вызываем создаем свойство, к примеру ParentForm
в Init формы пишите
Код: plaintext
1.
2.
LPARAMETERS loForm
thisform.ParentForm=loForm
а потом можно уже обращаться к объектам первой формы из второй, к примеру
Код: plaintext
1.
2.
3.
with thisform.ParentForm
 .grid1.refresh()
endwith
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34862098
lexusXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожелению не работает ни первый ни второй вариант, или я что то не так делал. Пробывал в 6 фоксе.
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34862310
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во втором примере неточность допустил. надо так:
Код: plaintext
1.
2.
3.
with (thisform.ParentForm)
 .grid1.refresh()
endwith
Первый пример должен сто пудов работать. Ошибку выдают данные решения или как?
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34862387
lexusXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ни каких ошибок фокс не выдает, просто на перовой форме указатель ни куда не перемещается, когда я во второй форме пытаюсь что то вводить, делаю это в событии InteractiveChange. А вот после того как я закрою вторую форму и фокус передается на первую, то указатель в гриде становится куда надо.
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34862469
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри пример в приаттаченом файле, там оба способа отображено. Оба работают, проверено ;)
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34862924
lexusXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoshaS спасибо за внимание ко мне. Ваш пример идеально работает, но мне нужно немного другое,
попробую объяснить, есть форма-1, да на ней есть грид (только для чтения), пусть будет только один грид и ни чего больше, с подключеной таблицей к нему. Я тыкаю мышкой в текс поле грида и начинаю писать, в этот момент появляется вторая форма с одним текстовым полем и ничего больше, я пишу в нем то что мне надо найти, при этом на первой форме в гриде указатель переходит на запись, которая подходит по условию вводимому в текстовое поле второй формы, получается поиск по первым символам, допстим я нашел то что мне нужно по первым трем буквам я нажимаю ENTER или ESC, вторая форма закрывается и я попадаю на грид в нужную мне запись. Что то вроде этого. Все это у меня уже есть и работает (ищет), тока вот грид не обновляется после каждой нажатой клавиши, при открытой второй форме. :(
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34863599
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может поиск сразу организовать в гриде? Где то видел класс такого грида на фокс-клабе.
А тут скорее всего дело в реализации поиска или привязки источника.
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34864103
lexusXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасиб, буду что нибудь искать.
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34943616
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как правильно обновить форму?
    #34945001
gotko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если имя первой формы уникально - то делай в цикл по _vfp.Forms.Count
типа
LOCAL i1234444
FOR i1234444=1 TO _vfp.Forms.Count
IF _vfp.Forms(i1234444).name='уникальное имя формы'
_vfp.Forms(i1234444).REFRESH
endif
endfor
сунь этот кусок в процедуру поиска - мелькания форм не будет, а перерисовка случится
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как правильно обновить форму?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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