Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Вниз

Текущий элемент меню   Найти похожие ветки 

 
de.   (2007-10-15 09:43) [0]

Как вернуть например Caption у текущего элемента меню на котором я кликнул...?
Пробовал так: GetItem(GetMenuIndex).Caption не получается пишет типа индекс меню выходит за допустимый диапазон.....
Как быть???


 
de.   (2007-10-15 09:49) [1]

Делаю так:

type
{ TMyMenuItem }
 TMyMenuItem = class(TMenuItem)
 private
   { Private declarations }
 protected
   { Protected declarations }
 public
   { Public declarations }
   procedure Click; override;
 published
   { Published declarations }
 end;



procedure TMyMenuItem.Click;
begin
 if GetItem(GetMenuIndex) <> nil then
   if GetMenuIndex >0 then
   frmMain.Caption := GetItem(GetMenuIndex).Caption;
end;


 
Kolan ©   (2007-10-15 09:49) [2]

У меню нет текущего индекса, обрабатывай OnClick


 
de.   (2007-10-15 09:52) [3]


> Kolan ©   (15.10.07 09:49) [2]

Ну чтотож по идеи должно вернуть интерфейс TMenuItem...?
Или нет.? В чем моя ошибка.?


 
de.   (2007-10-15 10:01) [4]

Вот родительский обработчик (не переписанный).
procedure TMenuItem.Click;
begin
 if Enabled then
 begin
   if (not Assigned(ActionLink) and AutoCheck) or (Assigned(ActionLink) and
       not (ActionLink.IsAutoCheckLinked) and AutoCheck) then
     Checked := not Checked;
   { Call OnClick if assigned and not equal to associated action"s OnExecute.
     If associated action"s OnExecute assigned then call it, otherwise, call
     OnClick. }
   if Assigned(FOnClick) and (Action <> nil) and (@FOnClick <> @Action.OnExecute) then
     FOnClick(Self)
   else if not (csDesigning in ComponentState) and (ActionLink <> nil) then
     FActionLink.Execute(Self)
   else if Assigned(FOnClick) then
     FOnClick(Self);
 end;
end;

Чего полезного можно отсюда извлеч.?


 
Kolan ©   (2007-10-15 10:02) [5]

> procedure TMyMenuItem.Click;

Во-первых где inherited?

Во-вторых MenuIndex(а зачем ты используешь геттер?) возвращает Integer, а не интерфейс.


> Или нет.? В чем моя ошибка.?

А чему равно MenuIndex, ты отладил?


 
Kolan ©   (2007-10-15 10:06) [6]

> if GetItem(GetMenuIndex) <> nil then
>   if GetMenuIndex >0 then
>   frmMain.Caption := GetItem(GetMenuIndex).Caption;

Да и наверно нада сначала проверить что индекс валидный, а уж потом GetItem(GetMenuIndex)(опть же нафи геттер?)


 
Игорь Шевченко ©   (2007-10-15 10:32) [7]


> procedure TMyMenuItem.Click;
> begin
>  if GetItem(GetMenuIndex) <> nil then
>    if GetMenuIndex >0 then
>    frmMain.Caption := GetItem(GetMenuIndex).Caption;
> end;


procedure TMyMenuItem.Click;
begin
 frmMain.Caption := Caption;
 inherited;
end;

?


 
de.   (2007-10-15 10:54) [8]


> Игорь Шевченко ©   (15.10.07 10:32) [7]

8-O
Все генеальное просто... :-)))
Спасибо большое...!


 
Юрий Зотов ©   (2007-10-15 16:23) [9]

И еще убрать амперсанды. Функция называется Strip-что-то-там, находится в Menu.pas.


 
Игорь Шевченко ©   (2007-10-15 16:29) [10]


> Функция называется Strip-что-то-там, находится в Menu.pas.


Что-то там - это tease ?


 
Юрий Зотов ©   (2007-10-15 17:50) [11]

> Игорь Шевченко ©   (15.10.07 16:29) [10]

Игорь, щас тя Розыч забанит - будешь знать!
:о)


 
Palladin ©   (2007-10-15 18:02) [12]

:))) Ща Розыч покажет кто тут главный по тизам :)


 
Германн ©   (2007-10-15 18:08) [13]

Да Розыча тут с полудня пятницы не проходило! :-)



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

Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.061 c
2-1192859788
Kolan
2007-10-20 09:56
2007.11.18
Как при сворачивании модальной формы свернуть все приложение?


15-1192064592
Маск
2007-10-11 05:03
2007.11.18
Какой лучше использовать компонент, для отображения данных в


15-1192710762
Сатир
2007-10-18 16:32
2007.11.18
Загрузка модулей, которые содержать компоненты DevExpress


2-1193340746
NikitaNovikov
2007-10-25 23:32
2007.11.18
RoundRect


2-1193342506
Цукор5
2007-10-26 00:01
2007.11.18
сравнение двух TDateTime ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский