TMenuItem Hints
От: tormentor  
Дата: 20.04.05 14:57
Оценка:
Как сделать так,чтобы при паведении на один из пунктов TMainMenu-TMenuItems
hint появлялся в StatusBar'е,но для отальных компонентов он там
не дожен высвечиваться.
Re: TMenuItem Hints
От: wildwind Россия  
Дата: 20.04.05 15:17
Оценка:
Здравствуйте, tormentor, Вы писали:

Прописать у него hint, у остальных очистить.
Re[2]: TMenuItem Hints
От: tormentor  
Дата: 20.04.05 15:34
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Прописать у него hint, у остальных очистить.


В том-то и дело что надо чтоб у остальных hint не в StatusBar'е высвечивался!!!
Re[3]: TMenuItem Hints
От: wildwind Россия  
Дата: 20.04.05 15:50
Оценка:
Здравствуйте, tormentor, Вы писали:

T>В том-то и дело что надо чтоб у остальных hint не в StatusBar'е высвечивался!!!

А где?
Re[4]: TMenuItem Hints
От: tormentor  
Дата: 20.04.05 15:55
Оценка:
Здравствуйте, wildwind, Вы писали:

T>>В том-то и дело что надо чтоб у остальных hint не в StatusBar'е высвечивался!!!

W>А где?

Только не в StatusBar'e
Например в маленьком окошечке подсказок

Нужно только чтоб Хинты менюшек в СтатусБаре высвечивались...
Re: TMenuItem Hints
От: Danchik Украина  
Дата: 20.04.05 16:08
Оценка:
Здравствуйте, tormentor, Вы писали:

T>Как сделать так,чтобы при паведении на один из пунктов TMainMenu-TMenuItems

T>hint появлялся в StatusBar'е,но для отальных компонентов он там
T>не дожен высвечиваться.

Сделай так:
Забери AutoHint у статус бара: StatusBar1.AutoHint := False
Перекрой на своей форме функцию ExecuteAction. Пример приведен ниже

TForm1 = class (TForm)
protected
  function ExecuteAction(Action: TBasicAction): Boolean; override;
  ...
end;
...

function TForm1.ExecuteAction(Action: TBasicAction): Boolean;
var
  aHintText : string;
begin
  Result := inherited ExecuteAction (Action);
  if (Action is THintAction) then begin
    with THintAction (Action) do begin
      aHintText := Hint;
      if aHintText = 'File Hint' then
        aHintText := '' { Не показывать хинт }
      else
      if aHintText = 'File Hint 2' then
        aHintText := '' { Не показывать хинт }
      else
      { И так далее }
      { Проверки можеш организовать как хочеш. Иначе как по тексту хинта сделать это не представляется возможным (в простой реализации) }
    end;
    StatusBar1.SimpleText := aHintText;
  end;
end;


Удачи!
Re[5]: TMenuItem Hints
От: Diouzshev Россия  
Дата: 20.04.05 18:08
Оценка:
Hello, tormentor!
You wrote on Wed, 20 Apr 2005 15:55:03 GMT:


t> Нужно только чтоб Хинты менюшек в СтатусБаре высвечивались...


OnHint

if Sender is TMenuItem then
StatusBar1.Panels[0] := TComponent(Sender).Hint


With best regards, Alexander Diouzshev-Maltsev.
Posted via RSDN NNTP Server 1.9
Re[2]: TMenuItem Hints
От: tormentor  
Дата: 21.04.05 14:04
Оценка:
Здравствуйте, Danchik, Вы писали:


D>function TForm1.ExecuteAction(Action: TBasicAction): Boolean;

D>var
D> aHintText : string;
D>begin
D> Result := inherited ExecuteAction (Action);
D> if (Action is THintAction) then begin <<

Delphi пишет что THintAction Неизвестный идентификатор!
Re[6]: TMenuItem Hints
От: tormentor  
Дата: 21.04.05 14:07
Оценка:
Здравствуйте, Diouzshev, Вы писали:

D>OnHint


D>if Sender is TMenuItem then

D> StatusBar1.Panels[0] := TComponent(Sender).Hint

Delphi пишет,что Sender Неизвестный идентификатор...
Re[3]: TMenuItem Hints
От: Danchik Украина  
Дата: 21.04.05 14:07
Оценка:
Здравствуйте, tormentor, Вы писали:

T>Здравствуйте, Danchik, Вы писали:



D>>function TForm1.ExecuteAction(Action: TBasicAction): Boolean;

D>>var
D>> aHintText : string;
D>>begin
D>> Result := inherited ExecuteAction (Action);
D>> if (Action is THintAction) then begin <<

T>Delphi пишет что THintAction Неизвестный идентификатор!


Забыл упомянуть что THintAction валяется в юните StdActns
А Help батенька иногда почитывать надо
Re: TMenuItem Hints
От: Shtirliz Россия  
Дата: 22.04.05 05:35
Оценка:
Здравствуйте, tormentor, Вы писали:

T>Как сделать так,чтобы при паведении на один из пунктов TMainMenu-TMenuItems

T>hint появлялся в StatusBar'е,но для отальных компонентов он там
T>не дожен высвечиваться.

Попробуй так :

TMainForm = Class(TForm)
....
Private
    procedure DisplayHint(Sender: TObject);
End;

Implementation

.....

procedure TMainForm.FormShow(Sender: TObject);
Begin
  Application.OnHint := DisplayHint;
end;


......


procedure TMainForm.DisplayHint(Sender: TObject);
begin
 StatusBar.SimpleText := GetLongHint(Application.Hint);
end;


Желаю удачи.
... -= RSDN@Home 1.1.4 beta 5 rev 401 =- А в Winamp'e: И ничего не слышно...
Дункан Маклауд любил ходить в лес и издеваться над кукушками.
138385660
Re[2]: TMenuItem Hints
От: tormentor  
Дата: 22.04.05 07:52
Оценка:
Спасибо всем ответившим.
Всё получилось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.