Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема В период затишья (число прочтений - 5230 )
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
В период затишья
25. Ноября 2008 :: 13:44
Печать  
artbear

Артур, такое дело.

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

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

В этом случае можно будет, внося дополнительные изменения, сразу же выпускать очередные снапшоты, не опасаясь собрать нерабочую версию.

Ну, надеюсь, что у нас сейчас примерно так и есть.
Я там выпустил 3.0.1.20, предполагая, что подобные положения у нас неявно выполняются.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: В период затишья
Ответ #1 - 25. Ноября 2008 :: 14:24
Печать  
Ну что, Миша, можно поздравить с возвращением?
Подглядел изменения 3.0.1.20
Каскадный перехват - это сила.
Но старинное его объявление типа:
Код
Выбрать все
	//wrap WriteDocFromForm
	static CMap<CV7Form*, CV7Form*, CGetDoc7*, CGetDoc7*> m_mapDoWriteDoc;
	static CTrapSwap m_trDoWriteDoc;
	int DoWriteDoc(int n1, int n2, int n3, CValue* pVal, CString* pStr, int* n4);
	void WrapDoWriteDoc(CGetDoc7* pDoc);
	void UnWrapDoWriteDoc();
 

+ реализация этого = слишком геморно.
Орефков мне помог сбацать шаблон (с применением его же CTrapSwap) под это дело.
Теперь я пишу так:
Код
Выбрать все
TRAP_HEADER(CSheetView_OnLButtonDblClk, CV7TableDocManager, CSheetDoc, "moxel.dll", "?OnLButtonDblClk@CSheetView@@IAEXIVCPoint@@@Z", void)(UINT, CPoint); 

  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: В период затишья
Ответ #2 - 25. Ноября 2008 :: 14:25
Печать  
А в реализации:
Код
Выбрать все
Гдето()
{
  CSheetView_OnLButtonDblClk::Wrap(this, pSheetDoc);
}
Гдето()
{
  CSheetView_OnLButtonDblClk::UnWrap(this);
}
void CV7TableDocManager::CSheetView_OnLButtonDblClk(UINT nFlags, CPoint point)
{
	BOOL bFSO = TRUE;

	CSheetView_OnLButtonDblClk::trapmap& tmap = CSheetView_OnLButtonDblClk::mapper();

	DWORD nViewNum;
	CSheetView* pSheetView = (CSheetView*)this;
	CV7TableDocManager* pRealThis = FindRealThisByViewForEvent(tmap, pSheetView, tdeOnLButtonDblClk, nViewNum);
	if (pRealThis)
		bFSO = pRealThis->InvokeMouseEvent(tdeOnLButtonDblClk,nViewNum, nFlags, point.x, point.y);

	if (bFSO)
	{
		CSheetView_OnLButtonDblClk::trapper().Swap();
		CSheetView_OnLButtonDblClk::isTrap() = FALSE;

		((CSheetView_*)this)->CSheetView_::OnLButtonDblClk(nFlags, point);

		if (!tmap.IsEmpty())
		{
			CSheetView_OnLButtonDblClk::trapper().Swap();
			CSheetView_OnLButtonDblClk::isTrap() = TRUE;
		}
	}
}

 

  

traps.zip ( 3 KB | Загрузки )

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: В период затишья
Ответ #3 - 25. Ноября 2008 :: 15:03
Печать  
trad писал(а) 25. Ноября 2008 :: 14:24:
Ну что, Миша, можно поздравить с возвращением?


Не, это скорее типа свидание с прошлым.
Я же романтик. Улыбка


Цитата:
Каскадный перехват - это сила.
Но старинное его объявление типа:
+ реализация этого = слишком геморно.
Орефков мне помог сбацать шаблон (с применением его же CTrapSwap) под это дело.
Теперь я пишу так:
Код
Выбрать все
TRAP_HEADER(CSheetView_OnLButtonDblClk, CV7TableDocManager, CSheetDoc, "moxel.dll", "?OnLButtonDblClk@CSheetView@@IAEXIVCPoint@@@Z", void)(UINT, CPoint); 


Да, согласен - очень даже юзабельно и корректнее относительно использования статиков.
Сейчас добавлю ссылку на эту тему к http://www.1cpp.ru/bugs/show_bug.cgi?id=4248
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: В период затишья
Ответ #4 - 25. Ноября 2008 :: 15:24
Печать  
kms писал(а) 25. Ноября 2008 :: 15:03:
почитал
Цитата:
Захваты событий

"?OnCloseDocument@CGetDoc7@@UAEXXZ"
"?LayoutForm@CGetDoc7@@UAEHPAVCFormView@@@Z"

невозможно использовать в каскадных захватах.

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

Ого. Ужас
неужели это я так реализовал Озадачен
вроде в моей версии ++ перехват истинно каскадный
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: В период затишья
Ответ #5 - 25. Ноября 2008 :: 15:35
Печать  
А помнишь, Дим, мы же на эту тему с тобой думали уже после рождения CV7Form.
Так что все нормально, в порядке хронологии.

В принципе, я теперь должен был бы стать умнее и перестать говорить лишнее.
Но если что, ты же помнишь: в любое время добро пожаловать в нашу песочницу с любимыми ведерками, совочками и песочком Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: В период затишья
Ответ #6 - 25. Ноября 2008 :: 15:48
Печать  
kms писал(а) 25. Ноября 2008 :: 15:35:
А помнишь, Дим, мы же на эту тему с тобой думали уже после рождения CV7Form.
Так что все нормально, в порядке хронологии.

Я помню обсуждение. И там где нужно стал применять правильную технологию перехвата.
НО я и не подозревал что в 1с++ по сей день не совсем корректный код. Я почему то думал что там все в норме Озадачен
  

1&&2&&3
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: В период затишья
Ответ #7 - 25. Ноября 2008 :: 21:29
Печать  
бедолаги, мучаетесь тут с МФС, сочуствую...
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать