![]() |
Buttonname über popupmenü ändern
Hallo ich habe ein popupmenü und dieses auch bei einem TButton im OI mit eingefügt. nun möchte ich das wenn ich im popupmenü auf umbenennen klicke er diesen button auf dem ich das popupmenü geöffnet habe umbenennt.
Wie kann ich an die Sache rangehen ? procedure TForm1.Umbenennen1Click(Sender: TObject); begin // den angeklickten Button ermitteln // Button xy.caption:='Hallo'; end; Hat jemand ne idee?? |
AW: Buttonname über popupmenü ändern
Ich würde schon beim Öffnen des Popupmenü den Button ermitteln, über dem das Popupmenü (mit Rechtsklick?) geöffnet wurde. Das macht IMO die Sache einfacher, weil man zu diesem Zeitpunkt die Mausposition hat und auch ermitteln kann, über welchem Element der Klick stattgefunden hat.
Für das Umbenennen selbst bietet sich eine InputBox an; je nach Programm/Wunsch geht natürlich auch ein TEdit, das man ein- und danach wieder ausblendet. MfG Dalai |
AW: Buttonname über popupmenü ändern
Delphi-Quellcode:
Wie mache ich das???
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var p:Tpoint; begin getcursorpos(p);//bekomme ich die Maus positon if Button = mbright then popupmenu2.Popup(p.x,p.y); //nun muss ich nur noch an den button namen rankommen end; |
AW: Buttonname über popupmenü ändern
Delphi-Quellcode:
= die Komponente, welche das PopupMenu aufrief
PopupMenu1.PopupComponent
oder man hangelt sich komplett durch die Besitzerstruktur
Delphi-Quellcode:
((Sender as TMenuItem).GetParentMenu as TPopupMenu).PopupComponent
|
AW: Buttonname über popupmenü ändern
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:
Gruß
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; |
AW: Buttonname über popupmenü ändern
Danke Funtz super XD
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz