![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вот задачка!!!
Lexx_Lamer © (2006-07-28 22:04:00)Проблема проявляется в следующей ситуации: если у TAction определить shortcut, ActionList разместить на фрейме, фрейм положить на другой фрейм,
а этот фрейм положить уже на форму и никакой фрейм не менять при этом,
то shortcut не срабатывает. Если же использовать только один фрейм,
то все работает. Нужно понять, в чем дело, написать решение
на уровне компонентов (например, наследника TActionList или TFrame),
объяснить, почему это решение работает и не имеет вредных побочных эффектов.
Данн пример, я почти понимаю как это исправить, нужно определить
спомощью SetParent наследуемую форму, (скоре всего).
Но так как я по Delfi почти что ламер подскажите как это сделать
код в котором нужно ,как мне кажеться исправить ниже
unit IssueNavigationFrame;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBActns, ActnList, Buttons, ExtCtrls, db;
type
TIssueNavigation = class(TFrame)
ActionList1: TActionList;
First: TAction;
procedure FirstExecute(Sender: TObject);
private
{ Private declarations }
public
constructor Create( Owner: TComponent ); override;
end;
implementation
{$R *.dfm}
{ TIssueNavigation }
constructor TIssueNavigation.Create(Owner: TComponent);
begin
inherited;
// SetParent( Parent ); КАК Мне кажеться нужно сдесь прописать
end;
procedure TIssueNavigation.FirstExecute(Sender: TObject);
begin
ShowMessage('First called');
end;
end.
ПОДСКАЖИТЕ ПОЖАЛУЙСТА КАК ЭТО СДЕЛАТЬ!!!
Lexx_lamer (2006-07-28 22:56:00) [1]Втом то и дело, что послек расположения всех фреймов трогать ничего нельзя, можно лишь изменить код, скорее всего в этом месте, добавить Set Parent, хотя я и не уверен
constructor TIssueNavigation.Create(Owner: TComponent);
begin
inherited;
// SetParent( Parent );// КАК Мне кажеться нужно сдесь прописать
end;
procedure TIssueNavigation.FirstExecute(Sender: TObject);
begin
ShowMessage('First called'); //а вот эта команда которая должна работать
end; //но не хочет
tesseract (2006-07-28 22:21:00) [2]насколько сейчас могу.
определи отдельный фрейм с taction и кинь его на все формы.