Hallo,
spendier doch den Buttons, die in Frage kommen - also umbenannt werden sollen - ein OnContextPopup; dort speicherst Du Dir eine Referenz auf den Button, der umbenannt werden soll und im OnRenameTheButton änderst Du die Caption der gemerkten Referenz. Also z. B. so:
Delphi-Quellcode:
TForm1 =
class (TForm)
Button1 : TButton;
Button2 : TButton;
Button3 : TButton;
Button4 : TButton;
PopupMenu1 : TPopupMenu;
RenameButton : TMenuItem;
private
FButtonToRename : TButton;
procedure RenameButtonContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.PopupMenu := PopupMenu1;
// oder im OI zuweisen
Button1.OnContextPopup := ButtonContextPopup;
// oder über den OI zuweisen
FButtonToRename :=
nil
end;
procedure TForm1.RenameButtonClick(Sender: TObject);
begin
if Assigned (FButtonToRename)
then
FButtonToRename.Caption := '
Some Caption'
end;
procedure TForm1.ButtonToRenameContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
FButtonToRename := TButton (Sender)
end;
Gruß