Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 66 ОтправитьПечать
Очень популярная тема (более 25 ответов) Colorer for Openconf - обсуждения (число прочтений - 388101 )
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #60 - 15. Марта 2007 :: 13:14
Печать  
ширина гуттера каимто образом определилась равной нулю...
раскажи подробней как такого добился, везде так или только иногда?
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
nikolka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 15. Января 2007
Re: Colorer for Openconf
Ответ #61 - 16. Марта 2007 :: 09:46
Печать  
Все просто в самом начале работы с конфигуратором
заходишь в произвольную обработку прежде чем заходишь в конфигруратор.
В резултате наблюдаються аналогичные а иногда и боле прикольные эффекты.

Лечить можно так первое дело которое ты сделал при входе в конфигуратор зайди в глобальник.
В результате все окей. Подмигивание

Зря я грешил на windows 2003 все же дело скорей всего в не правильной установке,
потому что сейчас в тойже системе все работает нормально.

Еще раз большое спасибо за плагин, мне он очень нравиться. Подмигивание
Успехов.

  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #62 - 16. Марта 2007 :: 10:59
Печать  
nikolka писал(а) 16. Марта 2007 :: 09:46:
Все просто в самом начале работы с конфигуратором
заходишь в произвольную обработку прежде чем заходишь в конфигруратор.
В резултате наблюдаються аналогичные а иногда и боле прикольные эффекты.


да, глюк воспроизвелся...
просто у меня при открытии конфигуратора автоматом открывается и максимизируется окно конфигурации
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #63 - 03. Апреля 2007 :: 06:37
Печать  
покурил я тут побольше про "документ-вид",поискал в инете и понял что технически подменить редактор не так уж и сложно
в прикрепленной длл пример, надо открыть текстовый документ и пощелкать по главному меню...
рядом с родным редатором добавляется подмененный, но аналогично заменяется и первый
редактор успешно заменяется своим, только вот нехочет заменяться наследником от родного редактора CBodyTextView, сразу падает.

Получается надо делать редактор снуля, подсветку итд...
я даже нашел сишных исходников Scite'а (текстовый редактор с подсветков, сверткой, ...)
там 5Mb текста, этож надо разбираться...

также нашел как сделать подсветку строки по условию, в тестовой длл подсвечиваются строки с "процедура/функция"
(это я потом внесу в основной плагин)



Uzhast писал(а) 28. Февраля 2007 :: 18:12:
В свое время некоторыми экспериментами с классом CTemplate7 мне удавалось переопределить класс CView для текстовых документов 1С. Т.е. создаем через меню "Файл" новый текстовый документ и при этом создается нормальный фрейм с текстовым документом, только при этом работает наш левый CView. Естественно, наш CView имеет полный доступ к текстовому документу и может как читать из него что угодно, так и писать. Таким образом, переопределить стандартный текстовый редактор для простых текстовых документов 1С не проблема.

Проблема как такой же фокус проделать с модулями, которые представляют собой не простой фрейм с документом, а являются закладкой в фрейме документа. Однако, врядли 1С может уйти от стандартной MFC-шной архитектуры Document-View, значит наверняка можно подменить CView и для модулей практически "законным" методом. В худшем случае может понадобиться патч 1С. Вообще, ИМХО, подмена стандартного редактора 1С на свой очень перспективна...


полагаю ты переодпределял m_pViewClass для шаблона документа?
утебя получилось подменить наследником от родного view или каким то своим?

я просто скрываю родной view и сверху ложу свой, все события обновления документа и т.п. приходят кнему корректно...
  

OColorer_add.rar ( 7 KB | Загрузки )

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #64 - 03. Апреля 2007 :: 07:09
Печать  
metaeditor писал(а) 03. Апреля 2007 :: 06:37:
Получается надо делать редактор снуля, подсветку итд...
я даже нашел сишных исходников Scite'а (текстовый редактор с подсветков, сверткой, ...)
там 5Mb текста, этож надо разбираться...

+посмотри:
http://notepad-plus.sourceforge.net/ru/site.htm
там и исходники....
++если использовать сцинтилу, тогда не нужно писать редактор с нуля, сильно там не разбирался, но вроде все есть.
« Последняя редакция: 04. Апреля 2007 :: 05:31 - trdm »  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #65 - 03. Апреля 2007 :: 07:16
Печать  
немного не по теме.
насколько сложно изменить окно редактирования свойств реквизитов, элементов форм на свое?
как пример. у меня стоит WinXP, типовая схема, 15 релиз, реквизит Тип: Строка, длина 160, а вижу только 16, и дак далее.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Colorer for Openconf
Ответ #66 - 03. Апреля 2007 :: 08:11
Печать  
Phoenix писал(а) 03. Апреля 2007 :: 07:16:
немного не по теме.
насколько сложно изменить окно редактирования свойств реквизитов, элементов форм на свое?
как пример. у меня стоит WinXP, типовая схема, 15 релиз, реквизит Тип: Строка, длина 160, а вижу только 16, и дак далее.


Самый простой вариант - редактор ресурсов
  
Наверх
ICQ  
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Colorer for Openconf
Ответ #67 - 03. Апреля 2007 :: 11:47
Печать  
metaeditor писал(а) 03. Апреля 2007 :: 06:37:
редактор успешно заменяется своим, только вот нехочет заменяться наследником от родного редактора CBodyTextView, сразу падает.

Проверь размер класса и порядок виртуальных функций.
Вот по крайней мере размер CTextEditor
Код
Выбрать все
class CTextEditor:public CView
{
DECLARE_DYNCREATE(CTextEditor)

public:
	//char m_viewbuf[460];	// Точный размер
	char m_vbuf1[28*4];		// Не знаю
	CPoint m_ptStartSel;	//28,29 (смещение в DWORD'ах)
	CPoint m_ptEndSel;		//30,31
	CPoint m_ptNewStartSel;	//32,33  Пока не знаю точно. Перед WM_CHAR одинаковы, после обработки
	CPoint m_ptNewEndSel;	//34,35  WM_CHAR m_ptNew содержит новую позицию, а m_pt - старую
	char m_vbuf2[9*4];		// Не знаю
	BOOL m_caretInEndOfSel;	// Курсор находится в конце выделенного блока
	char m_vbufEnd[460-28*4-4*sizeof(CPoint)-9*4-sizeof(BOOL)];	// Остаток размера
 


  
Наверх
 
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #68 - 03. Апреля 2007 :: 11:59
Печать  
Phoenix писал(а) 03. Апреля 2007 :: 07:16:
немного не по теме.
насколько сложно изменить окно редактирования свойств реквизитов, элементов форм на свое?
как пример. у меня стоит WinXP, типовая схема, 15 релиз, реквизит Тип: Строка, длина 160, а вижу только 16, и дак далее.


ResHacker такое позволяет делать
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #69 - 03. Апреля 2007 :: 16:10
Печать  
metaeditor писал(а) 03. Апреля 2007 :: 06:37:
полагаю ты переодпределял m_pViewClass для шаблона документа?
утебя получилось подменить наследником от родного view или каким то своим?

я просто скрываю родной view и сверху ложу свой, все события обновления документа и т.п. приходят кнему корректно...

Код использовался примерно такой:
Код
Выбрать все
	m_pTestTemplate = new CTemplate7 (
		0xD2, // этот ИД приводит к замещению стандартного шаблона 1С
		RUNTIME_CLASS (CBodyTextDoc),
		RUNTIME_CLASS (CSplittFrame),
		RUNTIME_CLASS (CMyView) // мой левый класс
		);
	AfxGetApp ()->AddDocTemplate (m_pTestTemplate);
 


Т.е. я создаю новый шаблон, но с кодом, соответствующим коду стандартного шаблона 1С. Получается, я как бы замещаю одинэсный шаблон на свой. После этого, при создании текстовых документов из меню, вместо одинэсного редактора отображается мой View. При этом в функциях типа OnInitialUpdate, OnDraw и т.п. можно вызывать GetDocument и у него runtime-class - CBodyTextDoc (специально проверял). (Правда, после этого 1С вылетает при закрытии.) Вероятно, такой же фокус можно проделать и при простой замене m_pViewClass (главное, докопаться до стандартного шаблона - вроде, есть функции доступа по ИД (0xD2, например)).

Вообще, смотрю, у 1С вся логика редактора реализована в CBodyTextDoc :CTextDocument. Поэтому реализация собственного CView для создания редактора может оказаться проще, чем кажется Улыбка
  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #70 - 05. Апреля 2007 :: 12:50
Печать  
orefkov писал(а) 03. Апреля 2007 :: 11:47:
Проверь размер класса и порядок виртуальных функций.
...


заголовки свежие из репозитария от 1cpp,
sizeof(CTextEditor) говорит = 528
так работает:

Код
Выбрать все
CCreateContext context;
context.m_pCurrentDoc = pTextDoc;
context.m_pNewViewClass = RUNTIME_CLASS(CTextEditor);
pViewNew = (CView*)pActiveFrame->CreateView(&context,AFX_IDW_PANE_FIRST + 1); 



делаю пустого наследника

Код
Выбрать все
class CMyTextEditor : public CTextEditor{
DECLARE_DYNCREATE(CMyTextEditor)
public:
	CMyTextEditor(void);
	virtual  ~CMyTextEditor(void);
DECLARE_MESSAGE_MAP()
}

//=============================================
IMPLEMENT_DYNCREATE(CMyTextEditor, CTextEditor)
CMyTextEditor::CMyTextEditor(){
}

CMyTextEditor::~CMyTextEditor(){
}
BEGIN_MESSAGE_MAP(CMyTextEditor, CTextEditor)
END_MESSAGE_MAP() 



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

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #71 - 05. Апреля 2007 :: 13:12
Печать  
От CBodyTextView не пытался наследовать?
Можешь заслать свой проект погонять?
Очень уж интересной стала тема Улыбка
  

FormEx developer
Наверх
www  
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #72 - 05. Апреля 2007 :: 13:27
Печать  
Цитата:
От CBodyTextView не пытался наследовать?
Можешь заслать свой проект погонять?
Очень уж интересной стала тема Улыбка


пробовал от всего CTexteditor CBodyTextView CMessageView

исходников сейчас сюда положу
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: Colorer for Openconf
Ответ #73 - 05. Апреля 2007 :: 15:29
Печать  
заголовки подключены методом второго проекта.
в \1CHEADERS\LIBS надо ещё положить либы, невлезли в архив.



  

OColorer_add_001.rar ( 116 KB | Загрузки )

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Colorer for Openconf
Ответ #74 - 06. Апреля 2007 :: 04:43
Печать  
Во-первых сравни sizeof(CTextEditor) и RUNTIME_CLASS(CTextEditor)->m_nObjectSize.
Они должны быть одинаковы.
Во-вторых, надо проверить порядок размещения виртуальных фукций в заголовке класса, если они есть. IDA тут рулит.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 66
ОтправитьПечать