Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.27;
Скачать: CL | DM;

Вниз

непростое контекстное меню   Найти похожие ветки 

 
mistic   (2008-08-01 10:19) [0]

Как добавить пункт в системное меню windows, но не в обычное меню вызываемое alt+space а меню editов и memo, в котором пункты вырезать вставить копировать?


 
Leonid Troyanovsky ©   (2008-08-01 10:35) [1]


> mistic   (01.08.08 10:19)  

> Как добавить пункт в системное меню windows

Не надо туда ничего добавлять.

С помощью TActionList подобным меню можно снабдить нужные контролы
за пару минут, не написав ни строки кода.

--
Regards, LVT.


 
mistic   (2008-08-01 10:39) [2]

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


 
mistic   (2008-08-01 10:41) [3]

возможно как то нужно модифицировать команду
AppendMenu (GetSystemMenu (Form1.Handle, False), MF_SEPARATOR, 0, "");


 
Leonid Troyanovsky ©   (2008-08-01 10:49) [4]


> mistic   (01.08.08 10:39) [2]

Считай, что это нереально.

--
Regards, LVT.


 
mistic   (2008-08-01 11:41) [5]

Думаю  в дельфи все реально, возможно нужно задействовать сом обьекты...
или вместо GetSystemMenu может есть какой нибудь getsystempopupmenu...
выход должен быть...


 
Leonid Troyanovsky ©   (2008-08-01 12:57) [6]


> mistic   (01.08.08 11:41) [5]

> выход должен быть...

Ну-ну.

Ничего в этой жизни не бывает просто так,
и даже овцы - в тулупах.

--
Regards, LVT.


 
mistic   (2008-08-01 13:12) [7]

у меня за пунктами вырезать вставить копировать удалить и выделить все, идут пункты "порядок чтения:спраава налево", "показать управляющие символы юникода".
если какая то программа может вставить туда свои пункты, то и мы можем, я так думаю!


 
Anatoly Podgoretsky ©   (2008-08-01 14:26) [8]

> mistic  (01.08.2008 13:12:07)  [7]

> мы можем

Ты это про кого.


 
Сергей М. ©   (2008-08-01 14:37) [9]


> меню всех приложений windows


Интересно, и что же все приложения windows обязаны будут сделать при клике юзера на невесть откуда появившемся у ихних Edit-контроов пункте конт.меню "показать управляющие символы юникода" ?


 
mistic   (2008-08-01 14:57) [10]


> Интересно, и что же все приложения windows обязаны будут
> сделать при клике юзера на невесть откуда появившемся у
> ихних Edit-контроов пункте конт.меню "показать управляющие
> символы юникода" ?

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


 
mistic   (2008-08-01 15:12) [11]


> Ты это про кого.

про дельфийстов


 
Anatoly Podgoretsky ©   (2008-08-01 16:20) [12]

> mistic  (01.08.2008 14:57:10)  [10]

В русском языке Вставить и Показать - это разные слова с разным смыслом.


 
Anatoly Podgoretsky ©   (2008-08-01 16:23) [13]


> будет несколько пунктов, на одном я бы не заморачивался.

Разница между несколькими и один чисто экстенсивная.


 
Сергей М. ©   (2008-08-01 16:52) [14]


> вставить определенный текст


Откуда, к примеру, приложение Notepad узнает, что при клике на это меню нужно что-то куда-то "вставить" ?)


 
Anatoly Podgoretsky ©   (2008-08-01 16:57) [15]

> Сергей М.  (01.08.2008 16:52:14)  [14]

Вставка делается через посылку сообщений, а Notepad работает через сообщения. В Notepad стандартный MEMO компонент Виндоус.


 
Сергей М. ©   (2008-08-01 17:08) [16]


> Anatoly Podgoretsky ©   (01.08.08 16:57) [15]


Причем здесь это ?)

Я про реакцию контрола на клик невесть откуда взявшегося пункта меню)


 
Anatoly Podgoretsky ©   (2008-08-01 20:01) [17]

> Сергей М.  (01.08.2008 17:08:16)  [16]

Как думаешь, каким образом реагирует Дельфи на чужое, внешнее меню, для TEdit

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


 
Сергей М. ©   (2008-08-01 20:52) [18]


> Anatoly Podgoretsky ©   (01.08.08 20:01) [17]


> каким образом реагирует Дельфи на чужое, внешнее меню


Никаким.

Толя, ты вообще мне что доказать хочешь ? Очевидное ?)

Очевидно ведь одно - чужое приложение знать не знает ни про какие чудеса в некоем контекстном меню некоего своего контрола, хоть стандартного виндового хоть любого другого.


 
Anatoly Podgoretsky ©   (2008-08-01 21:15) [19]

> Сергей М.  (01.08.2008 20:52:18)  [18]

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


 
KilkennyCat ©   (2008-08-01 22:01) [20]

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


 
mistic   (2008-08-04 09:03) [21]

значит невозможно.
чтож будем идти обходным путем, писать свой popup и посылать команду вставки активному контролу.


 
mistic   (2008-08-04 09:53) [22]

Кстати, как тогда это возможно?
http://img.muffs.ru/imgstore/D605q895T_1217829135_w638410


 
Cobalt   (2008-08-04 22:16) [23]

Дело в том, что есть стандартные контролы, поведение которых прописано в Comctrl32.dll.
Вот это есть стандартное меню Виндовс для контрола Edit.
Программы могут переопределять поведение контролов по своему усмотрению (у себя, конечно).


 
CodeMonkey ©   (2008-08-08 11:24) [24]


> Как добавить пункт в системное меню windows

Это невозможно. За стандартное меню на edit-контролах отвечает система. Никакими средствами получить хэндл этого меню для модификации нельзя. Стандартное меню не ловится хуками, для него не рассылаются стандартные сообщения (типа WM_INITMENUPOPUP) и т.п. Возможно, это сделано специально, чтобы программисты не мутили с этим (как известно - дай только людям в руки возможность - и они обязательно воспользуются ей неправильно).
Единственный метод - установить полностью своё меню с эмулированными стандартными пунктами. Проблема в том, что нужно, во-первых, делать пункты локализованными, а во-вторых, учитывать наличие дополнительных unicode-меню (и прочих дополнительных пунктов, если они есть).


> Кстати, как тогда это возможно? http://img.muffs.ru/imgstore/D605q895T_1217829135_w638410

Что не так с этим меню? Это - системное меню и система распоряжается им по своему усмотрению. Очевидно, что она может добавить сколько угодно пунктов. В частности, при установке поддержки письма слева-направо и т.п. она добавляет туда эти пункты. Это ни разу не означает, что вы можете менять это меню.



Страницы: 1 вся ветка

Текущий архив: 2009.09.27;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.011 c
15-1248427424
Empleado
2009-07-24 13:23
2009.09.27
Обмен данными между сервисом и GUI


15-1248550533
Эстет
2009-07-25 23:35
2009.09.27
Футболки?


3-1227710340
DSKalugin
2008-11-26 17:39
2009.09.27
как этот FB триггер перевести на MS SQL


15-1248515578
Palladin
2009-07-25 13:52
2009.09.27
Права группы на директорию, FreeBSD 7


2-1248157687
abun
2009-07-21 10:28
2009.09.27
Проблема с отладкой