Вниз
Скачать: CL | DM;

Как динамически создавать кнопки с событиями для ActionToolBar?   Найти похожие ветки 

 
Destroyer ©   (2005-06-04 20:47) [0]

Есть ActionToolBar и ActionManager. Как правильно динамически добавлять и удалять в ActionToolBar кнопки со своими событиями? При использовании:
actiontoolbar1.Action.Create(Form1.ActionManager1);
получается ошибка доступа к памяти.
И возможно ли менять размер картинки ActionToolBar?


 
Sun bittern ©   (2005-06-04 21:22) [1]

ActionToolBar и ActionManager глючноватые компонентики, советую поискать альтернативу.


 
Destroyer ©   (2005-06-04 23:09) [2]

А еще какие-нибудь предложения есть?


 
Abessalom   (2005-06-05 06:36) [3]

Вот это очень неправильно, и не только в этом контексте:
actiontoolbar1.Action.Create(Form1.ActionManager1);

Не совсем понятно, что значит
> менять размер картинки ActionToolBar

Изменить размер картинки (пиктограммы на кнопке) можно установкой ImageList с большими картинками. Как изменить размер кнопок панели, показано в примере

Пример использования Action компонентов:


type
 TXPStyleButton1 = class(TXPStyleButton)
 public
   procedure CalcBounds; override;
 end;

{ TXPStyleButton1 }

procedure TXPStyleButton1.CalcBounds;
begin
 inherited;
 Height := 50
end;

{ TForm1 }

procedure TForm1.ActionExecute(Sender: TObject);
begin
 ShowMessage("ActionExecute");
end;

procedure TForm1.ActionToolBar1GetControlClass(Sender: TCustomActionBar;
 AnItem: TActionClient; var ControlClass: TCustomActionControlClass);
begin
 ControlClass := TXPStyleButton1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 Action: TCustomAction;
 ActionClient: TActionClientItem;
begin
 Exit;
 if not Assigned(ActionToolBar1.ActionManager) then
 begin
   ActionToolBar1.ActionManager := ActionManager1;
   ActionManager1.ActionBars.Add.ActionBar := ActionToolBar1;
 end;

 Action := TCustomAction.Create(ActionManager1);
 Action.ActionList := ActionManager1;
 Action.Caption := "My Action";
 Action.OnExecute := ActionExecute;

 ActionClient := ActionToolBar1.ActionClient.Items.Add;
 ActionManager1.AddAction(Action, ActionClient);
end;


 
Destroyer ©   (2005-06-05 14:16) [4]

Большое спасибо, буду разбираться!



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
3-1116408719
_e_u_
2005-05-18 13:31
2005.06.29
Вредный, простой скуэль запрос:


4-1115404364
Wolfram
2005-05-06 22:32
2005.06.29
Как вызвать диалоговое окно свойств файла?


1-1118249091
terra0
2005-06-08 20:44
2005.06.29
Динамические массивы


14-1117983887
asdqwer
2005-06-05 19:04
2005.06.29
Quicktime+IE


1-1117524040
BKV
2005-05-31 11:20
2005.06.29
Приложение в сервис.




   Наверх