RAD Studio VCL Reference
|
Stores an integer value as part of a component.
property Tag: Longint;
__property Longint Tag;
Tag has no predefined meaning. The Tag property is provided for the convenience of developers. It can be used for storing an additional integer value or it can be typecast to any 32-bit value such as a component reference or a pointer.
C++ Examples:
/* The following example enables the user to move the current selected cell in a db grid. The Up and Down buttons have their OnClick events assigned to the UpDownClick procedure. The Left and Right buttons have their OnClick events assigned to the LeftRightClick procedure. The Up and Left buttons have their Tag property set to -1, while the Down and Right buttons have their Tag property set to 1. MoveBy does not move the cell in the db grid, it only moves the selection. The data set is not edited. Notice that the Up button and the Down button are separate TButtons, not one TUpDown. The tags must be set different. */ void __fastcall TForm1::UpDownClick(TObject *Sender) { CDS2->MoveBy((dynamic_cast<TComponent *>(Sender))->Tag); DBGrid2->SetFocus(); } void __fastcall TForm1::LeftRightClick(TObject *Sender) { DBGrid2->SelectedIndex = DBGrid2->SelectedIndex + (dynamic_cast<TComponent *>(Sender))->Tag; DBGrid2->SetFocus(); }
/* This example demonstrates how to add and delete menu items to a popup menu at runtime and assign an event handler to the OnClick event. Place a TPopupMenu and three buttons on the form named "AddButton", "EditButton", and "DestroyButton" and add OnClick events to all three buttons. Put the TPopupMenu in the PopupMenu property of the form. Place the PopupMenuItemsClick procedure in the TForm1 type declaration so that it can be used as the method call for the menu item OnClick event. */ void __fastcall TForm1::AddButtonClick(TObject *Sender) { // The owner (PopupMenu1) will cleanup this menu item. TMenuItem *NewItem = new TMenuItem(PopupMenu1); // create the new item int index = PopupMenu1->Items->Count; PopupMenu1->Items->Add(NewItem);// add it to the Popupmenu NewItem->Caption = "Menu Item " + IntToStr(index); NewItem->Tag = index; NewItem->OnClick = PopupMenuItemsClick;// assign it an event handler TNotifyEvent(); } void __fastcall TForm1::PopupMenuItemsClick(TObject *Sender) { TMenuItem *ClickedItem = dynamic_cast<TMenuItem *>(Sender); if (ClickedItem) { switch (ClickedItem->Tag) { case 0: { ShowMessage("first item clicked"); break; } case 1: { ShowMessage("second item clicked"); break; } case 2: { ShowMessage("third item clicked"); break; } case 3: { ShowMessage("fourth item clicked"); break; } } } } /* To edit or destroy an item, grab its pointer via the Items property. */ void __fastcall TForm1::EditButtonClick(TObject *Sender) { const int index = 1; TMenuItem *ItemToEdit = PopupMenu->Items->Items[index]; ItemToEdit->Caption = "Changed Caption"; } void __fastcall TForm1::DestroyButtonClick(TObject *Sender) { const int index = 2; TMenuItem *ItemToDelete = PopupMenu->Items->Items[index]; delete ItemToDelete; } void __fastcall TForm1::FormCreate(TObject *Sender) { const int num_items = 4; for (int index = 0; index < num_items; ++index) { // The owner (PopupMenu1) will cleanup this menu item. TMenuItem *NewItem = new TMenuItem(PopupMenu1); // create the new item PopupMenu1->Items->Add(NewItem);// add it to the Popupmenu NewItem->Caption = "Menu Item " + IntToStr(index); NewItem->Tag = index; NewItem->OnClick = PopupMenuItemsClick;// assign it an event handler TNotifyEvent(); } }
Delphi Examples:
{ The following example enables the user to move the current selected cell in a db grid. The Up and Down buttons have their OnClick events assigned to the UpDownClick procedure. The Left and Right buttons have their OnClick events assigned to the LeftRightClick procedure. The Up and Left buttons have their Tag property set to -1, while the Down and Right buttons have their Tag property set to 1. MoveBy does not move the cell in the db grid, it only moves the selection. The data set is not edited. Notice that the Up button and the Down button are separate TButtons, not one TUpDown. The tags must be set different. } procedure TForm1.UpDownClick(Sender: TObject); begin CDS.MoveBy(TComponent(Sender).Tag); DBGrid1.SetFocus; end; procedure TForm1.LeftRightClick(Sender: TObject); begin DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + TComponent(Sender).Tag; DBGrid1.SetFocus; end;
{ This example demonstrates how to add and delete menu items to a popup menu at runtime and assign an event handler to the OnClick event. Place a TPopupMenu and three buttons on the form named "AddButton", "EditButton", and "DestroyButton" and add OnClick events to all three buttons. Put the TPopupMenu in the PopupMenu property of the form. Place the PopupMenuItemsClick procedure in the TForm1 type declaration so that it can be used as the method call for the menu item OnClick event. } type TForm1 = class(TForm) AddButton: TButton; EditButton: TButton; DestroyButton: TButton; PopupMenu1: TPopupMenu; procedure AddButtonClick(Sender: TObject); procedure EditButtonClick(Sender: TObject); procedure DestroyButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public procedure PopupMenuItemsClick(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.AddButtonClick(Sender: TObject); var index: Integer; NewItem: TMenuItem; begin // The owner (PopupMenu1) will cleanup this menu item. NewItem := TMenuItem.Create(PopupMenu1); // create the new item index := PopupMenu1.Items.Count; PopupMenu1.Items.Add(NewItem);// add it to the Popupmenu NewItem.Caption := 'Menu Item ' + IntToStr(index); NewItem.Tag := index; NewItem.OnClick := PopupMenuItemsClick; // assign it an event handler end; procedure TForm1.PopupMenuItemsClick(Sender: TObject); begin with Sender as TMenuItem do begin case Tag of 0: ShowMessage('first item clicked'); 1: ShowMessage('second item clicked'); 2: ShowMessage('third item clicked'); 3: ShowMessage('fourth item clicked'); end; end; end; { To edit or destroy an item, grab its pointer via the Items property. } procedure TForm1.EditButtonClick(Sender: TObject); var ItemToEdit: TMenuItem; begin ItemToEdit := PopupMenu.Items[1]; ItemToEdit.Caption := 'Changed Caption'; end; procedure TForm1.DestroyButtonClick(Sender: TObject); var ItemToDelete: TMenuItem; begin ItemToDelete := PopupMenu.Items[2]; ItemToDelete.Free; end; procedure TForm1.FormCreate(Sender: TObject); var index: Integer; NewItem: TMenuItem; begin for index := 0 to 3 do begin // The owner (PopupMenu1) will cleanup this menu item. NewItem := TMenuItem.Create(PopupMenu1); // create the new item PopupMenu1.Items.Add(NewItem);// add it to the Popupmenu NewItem.Caption := 'Menu Item ' + IntToStr(index); NewItem.Tag := index; NewItem.OnClick := PopupMenuItemsClick; // assign it an event handler end; end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|