powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Release формы
19 сообщений из 44, страница 2 из 2
Release формы
    #36423246
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимотобишь рассуждая о ...,
ну Вы меня поняли.
Да. Причем давно. Сценарий наших дискуссий всегда один и тот же. Такой же, как в данном случае:

- Вы высказали свои аргументы
- я высказал аргументированное сомнение в справедливости Ваших слов
- Вы перешли на личности...

Т.е. доказательствами Вы себя не утруждаете. С Вашей точки зрения "Существует два мнения: одно мое, другое - неправильное"

Ну, а заставляет меня вмешиваться именно безапеляционность и бездоказательность Ваших высказываний...

Цель моего вмешательства в дискуссии с Вашим участием - это показать то, что, как минимум, приводимые Вами аргументы не абсолютны и вызывают обоснованные сомнения. Не есть "истина в последней инстанции". Показать не Вам (Вы любые аргументы просто игнорируете). Показать участникам дискуссии.
...
Рейтинг: 0 / 0
Release формы
    #36423251
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: прошелмимо

У тебя пример двухзвенки, в которой получить это не представляет проблем, у меня трехзвенка, и получить эту информацию
от SQL-сервера я тоже могу и получаю и дальше формирую строку с признаком ошибки и отдаю на клиента, где проверяю
полученную строку на признак ошибки и если нахожу, вытаскиваю само сообщение для показа пользователю. Но клиент общается
с серверной частью при помощи SOAP, я не знаю какую структуру данных формировать в случае ошибки, что-бы она "пролезла"
через SOAP и на клиенте её можно было обработать нативными средствами, как это делается в моем веб-сервере и в твоем
примере при прямом общении с SQL-сервером.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Release формы
    #36423285
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТ.е. доказательствами Вы себя не утруждаете.

Мужчина, мне нах не нужно что-то лично Вам доказывать,
идите на фоксклаб и там доказывайте.
...
Рейтинг: 0 / 0
Release формы
    #36423319
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ , прошелмимо

Вы оба классные специалисты. Читать Ваши ответы одно удовольствие. Вести дисскусию - ещё большее удовольствие. Но у Вас
различаются подходы к ответам.
Вы, ВладимирМ , даёте маленькую теоретическую вводную, с помощью которой, спрашивающий сам выбирает как ему
поступить в его случае. Что очень способствует пониманию того, как можно решать возникшие проблемы. Перейдя в VFP от
VB6, C++Builder, мне очень не хватало таких маленьких лекций и я их и сейчас внимательно читаю. Спасибо!
Вы, прошелмимо , даете пример и говорите делай как я. Что в итоге способствует решению вопроса, НО для
извлечения дополнительных бонусов, нужно иметь зачастую более высокую подготовку, чем имеет спрашивающий. Я кстати,
внимательно изучал некоторые Ваши примеры, когда начинал писать на VFP и перенимал опыт как правильно писать. Спасибо!
Я считаю что Вы, дополняете друг, друга. Так дополняйте, а не пикетируйтесь. От этого выиграют все.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Release формы
    #36423322
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Игорь Горбонос

авторя не знаю какую структуру данных формировать в случае ошибки

относительно строк все просто: анализировать по началу строки XML это или нет

если отработало нормально, то
отдаем строку: <?xml version ....
иначе(ошибка): EROR ..., ну или как-нить придумать

относительно:
автор Но клиент общается
с серверной частью при помощи SOAP, я не знаю какую структуру данных формировать в случае ошибки
это вопрос не ко мне, я с этим добром не работал
в сило того что нет необходимости.

относительно примера, то он демонстрирует
явный выигрышь и простоту абстрактной настройки некоторых
задуманных сущностей и механизм взаимодействия
настроек-абстрактных механизмов работы с данными-рисования интерфейса.
далее уже Ваше желание понять эти преимущества и каким-то образом
задуматься о необходимости использования такого способа разработки.
...
Рейтинг: 0 / 0
Release формы
    #36423337
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПоказать не Вам (Вы любые аргументы просто игнорируете). Показать участникам дискуссии.

Мужчина, уже есть прогресс.


авторЭто да.

2 года назад Вы писали только главы словесного поноса.

Возможно через пару лет мы договоримся.
...
Рейтинг: 0 / 0
Release формы
    #36423868
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимоавторТ.е. доказательствами Вы себя не утруждаете.
Мужчина, мне нах не нужно что-то лично Вам доказывать,
идите на фоксклаб и там доказывайте.
При чем тут я? Я же прошу доказательств для тех, кому Вы что-то объясняете. Если Вы думаете, что Ваши оскорбления и хамство - это доказательства, то Вы очень сильно заблуждаетесь.

прошелмимо
авторЭто да
2 года назад Вы писали только главы словесного поноса.

Возможно через пару лет мы договоримся.
Как обычно, Вы читаете слова, а не текст. Если бы Вы прочитали следующее за вырванной фразой предложение, то увидели бы, что моя позиция не изменилась. Просто я делаю скидку на Ваше хамство и нетерпимость к чужому мнению. Пишу в доступной для Вас форме
...
Рейтинг: 0 / 0
Release формы
    #36423870
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
ВладимирМ , прошелмимо
Я считаю что Вы, дополняете друг, друга. Так дополняйте, а не пикетируйтесь. От этого выиграют все.

Так я тоже именно так и считаю. Я просто показываю, что есть и другие способы решений. Ничем не хуже предложенных им. Только он почему-то крайне нервно реагирует на ЛЮБОЕ сомнение в правильности его слов. Сразу начинает хамить. Видимо, это какие-то проблемы сугубо личного характера у прошелмимо .
...
Рейтинг: 0 / 0
Release формы
    #36423931
ВладимирМпрошелмимоавторТ.е. доказательствами Вы себя не утруждаете.
Мужчина, мне нах не нужно что-то лично Вам доказывать,
идите на фоксклаб и там доказывайте.
При чем тут я? Я же прошу доказательств для тех, кому Вы что-то объясняете. Если Вы думаете, что Ваши оскорбления и хамство - это доказательства, то Вы очень сильно заблуждаетесь.

прошелмимо
авторЭто да
2 года назад Вы писали только главы словесного поноса.

Возможно через пару лет мы договоримся.
Как обычно, Вы читаете слова, а не текст. Если бы Вы прочитали следующее за вырванной фразой предложение, то увидели бы, что моя позиция не изменилась. Просто я делаю скидку на Ваше хамство и нетерпимость к чужому мнению. Пишу в доступной для Вас форме

так и я Вам парирую в доступной форме.
в данном обсуждении мы выяснили, что Вам более интересно рассматривать
стратегию разработки с позиции пользователя.
О снижении трудозатрат Вы не задумываетесь.
Вы первый враг фокспро, о чем я неоднократно заявлял,
и попробую об этом позднее разъяснить
для разработчиков старше ясельной группы детсада.
...
Рейтинг: 0 / 0
Release формы
    #36424364
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_usa__83_
Совсем вас забросили с перепалками :-)
Я сделал так:
в классе формы
в QueryUnload прописал Return .T.
в классе кнопок, для выхода с формы
IF thisform.QueryUnload()
_screen.ActiveForm.release()
ENDIF
Если при закрытии формы необходимо выполнить какой либо код, то его можно записать в
в QueryUnload формы, будь то сохранение данных или еще что.
Теперь при закрытии формы кнопкой или крестиком - у вас всегда будет отрабатывать нужный код.
...
Рейтинг: 0 / 0
Release формы
    #36424510
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoshaS,

авторСовсем вас забросили с перепалками :-)

ждемс очередного высеперла от Кулинара,
затем повеселимся вновь,
посетители фоксклаба - молчат,
верной дорогой идете, товарищи:
двое - в драке, третий цветочки собирает


покритикую ниваабидуканечно, может натолкнет на мысль
(не из-за злобы и выпендрежа, а на воблаго)
авторв QueryUnload прописал Return .T.
в классе кнопок, для выхода с формы
IF thisform.QueryUnload()
_screen.ActiveForm.release()
ENDIF

оригинально,
только этот метод совсем не для этого предназначен,
он предназначен для предотвращения выгрузки формы
посредством проверки каких-то условий
и в случае необходимости отмены этой выгрузки.

закрытие формы посредством скрина еще более оригинальное решение
именно для вызова непосредственно из кнопки самой формы,
так как форма находится через ссылку thisform.

согласен с теоретиком-кулинаром,
о том, что фокспро - это средство-мазохист,
которое удивляет своей устойчивостью к любым извращениям
...
Рейтинг: 0 / 0
Release формы
    #36424630
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мой вариант.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
IF thisform.QueryUnload()
	IF TYPE("THISFORM.Parent") = "O"
		THISFORMSET.Release
	ELSE
		THISFORM.Release
	ENDIF
ENDIF 
Предложите свой. Критиковать легче простого.
...
Рейтинг: 0 / 0
Release формы
    #36424750
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoshaSВот мой вариант.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
IF thisform.QueryUnload()
	IF TYPE("THISFORM.Parent") = "O"
		THISFORMSET.Release
	ELSE
		THISFORM.Release
	ENDIF
ENDIF 
Предложите свой. Критиковать легче простого.

мои варианты Вы можете посмотреть в примере, указанном по ссылке

QueryUnload:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
with this
	if !this.lInit and !.lPushExit
		local llEnabledSaveCmd, llEnabledExitCmd
		if pemstatus(thisform, "CmdSave",  5 ) 
	   		llEnabledSaveCmd = (.CmdSave.Visible and .CmdSave.Enabled)
		   	if llEnabledSaveCmd
		   		if !.checkSave()
			   		.lLock_msg_save = .f.
			   		nodefault 
					return
				else
					.lLock_msg_save = .t.
				endif			
			endif	
		endif
		if pemstatus(thisform, "CmdExit",  5 ) 
			llEnabledSaveCmd = (.CmdExit.Visible and .CmdExit.Enabled)
			if llEnabledExitCmd
				.CmdExit.Click()
			endif
		endif
	endif
endwith

ну и код класса-кнопочки закрывалочки
Код: plaintext
1.
2.
3.
4.
5.
6.
with thisform
	if PemStatus(thisform,"checkSave", 5 ) and .checkSave()
		.lPushExit = .t.
	EndIf
	.Release()
endwith

но это уже сложнее и предназначено не только для закрытия формы,
а для осуществления ряда дополнительных проверок на:
- наличие потроганности и несохраненности данных
- обработки различных "желаний"
- ну и т.д.

В классическом варианте:
THISFORM.Release() должна подавать откуда угодно, но не из QueryUnload.
QueryUnload сработает и по нажатию на крестик в заголовке.
Этот метод как раз и стартует перед анлоадом формы,
т.е. тем методом который инициализируется THISFORM.Release().

в QueryUnload посредством команды NODEFAULT
как раз отменять выгрузку формы в случае необходимости таковой
(недать потерять потроганные и не сохраненные данные или еще что-либо)
...
Рейтинг: 0 / 0
Release формы
    #36424803
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного подправлюсь:

QueryUnload сработает при нажатии на крестик закрытия формочки
перед методом Destroy, а затем уже метод Unload
...
Рейтинг: 0 / 0
Release формы
    #36424870
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно я не так выразился.
QueryUnload в классе формы стоит по умолчанию
Код: plaintext
 return .T. 
- это для тех форм, где не надо ни каких проверок, отчетные и пр. Если все-же проверки нужны, то пишется что-то подобное
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCAL l_release
l_release=MESSAGEBOX('Сохранить изменения?',  3 + 512 + 0 , '/К. Прутков/ - Бди!')
DO CASE 
	CASE  l_release= 6 
		IF thisform.custom_check1.data_update('t_predpr')= 1 
			RETURN .T.
		ENDIF
	CASE  l_release= 7 
		TABLEREVERT(.T., 't_predpr')
		RETURN .T.
	CASE l_release=	 2 
		NODEFAULT 
		RETURN .F.
ENDCASE 
А в классе кнопки на клик сейчас прописал/подправил вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
IF thisform.QueryUnload()
	IF TYPE("THISFORM.Parent") = "O"
		THISFORMSET.Release
	ELSE
		THISFORM.Release
	ENDIF
ENDIF
Т.е. у вас идет обращение к .checkSave() из QueryUnload и кнопки, у меня вызов процедуры сохранения таблицы прописан в одном месте: QueryUnload и он вызывается либо при нажании кнопки закрытия или на крестике формы.
Вот и все различия.
Ни о каком вызове уничтожения формы из QueryUnload - речи не идет.
...
Рейтинг: 0 / 0
Release формы
    #36425006
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНи о каком вызове уничтожения формы из QueryUnload - речи не идет.

тогда мир - дружба -жевачка.

но топикпастеру пока не до методов QueryUnload
там решение пока необходимо намного проще
в виде простого релиза самой формы
из объекта самой формы.
...
Рейтинг: 0 / 0
Release формы
    #36426458
Игорь Горбонос

З.Ы. Не холивара ради, хочу понять как можно более эффективно использовать VFP9.

З.Ы.Ы Если нужно, давайте перейдем в новую тему. И я могу сделать пример проектов для показа как
делаю сейчас и выслушать критику и предложения по улучшению.



2 Игорь Горбонос,
пожалуйста создайте свой топик,
там если возможно какой-то пример с инструкциями,
возможно мы совместно создадим какие-то абстрактные механизмы
применительно к таким задачам,
иначе Ваш опыт также будет всем полезен.
...
Рейтинг: 0 / 0
Release формы
    #36428309
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: прошелмимо_

Хорошо, я подготовлю тестовый проект и создам тему

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Release формы
    #36431034
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://forum.foxclub.ru/read.php?29,424083

топикпастера попросите сюда

дело в том, что грид имеет особенность привязываться
к любой текущей области, если у него пустые ссылки на источник.
инит контролов грида, затем самого грида проходит
раньше инита формы, поэтому происходит привязка контролов
не к тем источникам и полям,
соответственно контролам выставляется ридонли.

топикпастеру в рекордсоурсы необходимо написать
.null., либо правильно прописать рекордсоурсы,
а еще лучше обратить внимание на абстрактный механизм
настройки атрибутов колонок грида,
продемонстрированный ранее,
это избавит от анализа подобных ошибок,
сократит трудозатраты.
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Release формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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