Tôi đang sử dụng thành phần ActnPopup.TPopupActionBar
và tôi muốn thêm một vài hành động chuẩn như TFileOpen, TFileOpenWith và v.v. Câu hỏi đặt ra là làm thế nào tôi có thể thêm những hành động này trong thời gian chạy đến một TPopupActionBar?Cách thêm hành động chuẩn vào thành phần ActnPopup.TPopupActionBar trong thời gian chạy?
Trả lời
tôi sẽ cố gắng một cái gì đó như thế này:
procedure TForm1.Button1Click(Sender: TObject);
var
MenuItem: TMenuItem;
Action: TCustomAction;
begin
MenuItem := TMenuItem.Create(PopupActionBar1);
Action := TFileOpen.Create(PopupActionBar1);
Action.Caption := '&Open...';
Action.ShortCut := 16463;
MenuItem.Action := Action;
PopupActionBar1.Items.Add(MenuItem);
MenuItem := TMenuItem.Create(PopupActionBar1);
Action := TFileOpenWith.Create(PopupActionBar1);
Action.Caption := 'Open with...';
MenuItem.Action := Action;
PopupActionBar1.Items.Add(MenuItem);
end;
Và nơi nào tôi có được các giá trị Caption và phím tắt? Câu hỏi hay. Đây là từ trình soạn thảo thành phần của danh sách hành động. Bạn có thể lấy chúng nếu bạn thêm các hành động chuẩn vào danh sách hành động của bạn và nhìn vào mã nguồn của biểu mẫu của bạn. Ở đó bạn sẽ thấy các định nghĩa hành động của bạn, như thế này một: (? Cho mục popup menu)
object FileOpen1: TFileOpen
Category = 'File'
Caption = '&Open...'
Hint = 'Open|Opens an existing file'
ImageIndex = 7
ShortCut = 16463
end
Và kể từ khi cho popup menu bạn không cần một Gợi ý, loại (là đối với danh sách hành động) cũng không ImageIndex (bạn có thể xác định tập hợp hình ảnh của riêng bạn, do đó các chỉ mục của bạn có thể khác nhau), bạn có thể để chúng. Trong thực tế, bạn có thể để lại tất cả điều này, hành động sẽ được thực hiện ngay cả như vậy (dựa trên lớp bạn sẽ sử dụng), nhưng bạn sẽ không có chú thích hay phím tắt.