|
Вопрос # 3 155/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Как програмно узнать *Caption* выбранного пункта меню и вывести в ShowMessage .
Например : Выбрал пункт *New file* или *Save*
P.S. Pабота только с одним меню мною созданным.
 |
Вопрос задал: mikael (статус: Посетитель)
Вопрос отправлен: 5 сентября 2009, 10:24
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: hx - Саня
Здравствуйте, mikael!
При моделировании меню щелкните на необходимый пункт и посмотрите его имя в инспекторе объектов (свойство Name).
После этого вы можете сделать это так:
ShowMessage(имя.Caption);
 |
Ответ отправил: hx - Саня (статус: 1-ый класс)
Время отправки: 5 сентября 2009, 13:37
Оценка за ответ: -1
|
Мини-форум вопроса
Всего сообщений: 12; последнее сообщение — 6 сентября 2009, 10:48; участников в обсуждении: 3.
5 сентября 2009, 10:53: Вопрос перемещён из тематического раздела Delphi » Работа с файловой системой в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А.
|
Вадим К (статус: Академик), 5 сентября 2009, 11:39 [#1]:
Это надо узнать когда и где?
в обработчике клика по этому меню?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
mikael (статус: Посетитель), 5 сентября 2009, 11:58 [#2]:
Добрый день.
За звездочки я не знал или забыл простите
Опишу вопрос более детально:
1)--------------------------------
Я создаю пункт меню в ходе работы программы динамически
Код: ( procedure TForm1.N6Click(Sender: TObject);
var x,y:string;
NewItem: TMenuItem;
begin
x:=RzShellList1.Folder.PathName;
NewItem:=TMenuItem.Create(self);
NewItem.Action:=Action1;
NewItem.Caption := x; // в caption записываю адрес открытой страницы
bookmark.Items.Add(NewItem);
end; ) конец кода.
2)----------------------------------
Теперь мне надо воспользываться меню чтобы перейти на сохраненную страницу (закладку)
Код: ( procedure TForm1.Action1Execute(Sender: TObject);
var x:string;
begin
.......................
end; ) конец кода.
|
|
Вадим К (статус: Академик), 5 сентября 2009, 12:11 [#3]:
TMenuItem(Sender).Caption
Галочка "подтверждения прочтения" - вселенское зло.
|
|
DNK (статус: Студент), 5 сентября 2009, 12:15 [#4]:
Надо немного по другому создавать меню.
procedure TForm1.N6Click(Sender: TObject);
var x:string;
NewItem: TMenuItem;
NewAction: TAction;
begin
x:=RzShellList1.Folder.PathName;
NewItem:=TMenuItem.Create(self);
NewAction := TAction.Create(self);
NewAction.Caption := x; // в caption записываю адрес открытой страницы
NewAction.OnExecute := Action1Execute;
NewItem.Action:=NewAction;
bookmark.Items.Add(NewItem);
end;
Обрабатываем клик по менюшке.
procedure TForm1.Action1Execute(Sender: TObject);
var x:string;
begin
x := TAction(Sender).Caption;
.......................
end;
"Digital Networked Knight"
|
|
mikael (статус: Посетитель), 5 сентября 2009, 12:29 [#5]:
Еще вопрос по теме
Как воспроизвести сам переход?
Можете описать в коде?
|
|
Вадим К (статус: Академик), 5 сентября 2009, 12:31 [#6]:
переход по ссылке?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
mikael (статус: Посетитель), 5 сентября 2009, 12:40 [#7]:
Да переход по ссылке
|
|
Вадим К (статус: Академик), 5 сентября 2009, 13:08 [#8]:
вот где то так
если s:string и содержит адрес
ShellExecute(self.WindowHandle,'open',Pchar(s),nil,nil, SW_SHOWNORMAL);
правда наверно надо добавить будет ShellApi в список uses.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
mikael (статус: Посетитель), 5 сентября 2009, 13:45 [#9]:
Благодарю за ответ, но видать я не правильно задал вопрос
Мне нужно открыть по ссылке страницу в RzShellList1.
Функцию я нашел :
var x:string;
.....
RzShellTree1.SelectedFolder:=x;
Но при использывании выбивает ошибку:
[Ошибка] Unit1.pas(150): Incompatible types: 'TRzShellLocator' and 'String'
Как я понял мне надо переменную x привести к нужному типу.
Функцию пока не нашел.
|
|
Вадим К (статус: Академик), 5 сентября 2009, 17:04 [#10]:
думаю тут привести не получиться. Но к сожалению я не знаю, что это за компонент RzShellList и никогда с ним не работал...
Галочка "подтверждения прочтения" - вселенское зло.
|
|
mikael (статус: Посетитель), 5 сентября 2009, 22:41 [#11]:
Добрый вечер.
Это компонент Raize.
Я пытался и со стандартными компонентами
Признаюсь у меня не получилось.
|
|
mikael (статус: Посетитель), 6 сентября 2009, 10:48 [#12]:
Спасибо всем кто откликнулся на призыв
решение нашлось
код:
procedure TForm1.N6Click(Sender: TObject);
var x:string;
NewItem: TMenuItem;
NewAction: TAction;
begin
x:=RzShellList1.Folder.PathName;
NewItem:=TMenuItem.Create(self);
NewAction := TAction.Create(self);
NewAction.Caption := x; // в caption записываю адрес открытой страницы
NewAction.OnExecute := Action1Execute;
NewItem.Action:=NewAction;
bookmark.Items.Add(NewItem);
end;
procedure TForm1.Action1Execute(Sender: TObject);
var x:string;
begin
x := TAction(Sender).Caption;
RzShelltree1.SelectedFolder.PathName:=x;
end;
конец кода.
и на стандартных компонентах
код:
procedure TForm1.N2Click(Sender: TObject);
var x:string;
NewItem: TMenuItem;
NewAction: TAction;
begin
x:=ShellTreeView1.Path;
NewItem:=TMenuItem.Create(self);
NewAction := TAction.Create(self);
NewAction.Caption := x; // в caption записываю адрес открытой страницы
NewAction.OnExecute := Action1Execute;
NewItem.Action:=NewAction;
MainMenu1.Items[0].Add(NewItem);
end;
procedure TForm1.Action1Execute(Sender: TObject);
var x:string;
begin
x := TAction(Sender).Caption;
ShellTreeView1.Path:=x;
end;
конец кода.
P.S. Я рад что разобрался и главное понял ( как бы )
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|