AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Buttonname über popupmenü ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Buttonname über popupmenü ändern

Ein Thema von Natcree · begonnen am 2. Dez 2013 · letzter Beitrag vom 3. Dez 2013
Antwort Antwort
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

Buttonname über popupmenü ändern

  Alt 2. Dez 2013, 22:25
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??
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: Buttonname über popupmenü ändern

  Alt 2. Dez 2013, 23:01
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
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Buttonname über popupmenü ändern

  Alt 2. Dez 2013, 23:06
Delphi-Quellcode:
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;
Wie mache ich das???
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Buttonname über popupmenü ändern

  Alt 2. Dez 2013, 23:27
PopupMenu1.PopupComponent = die Komponente, welche das PopupMenu aufrief

oder man hangelt sich komplett durch die Besitzerstruktur
((Sender as TMenuItem).GetParentMenu as TPopupMenu).PopupComponent
$2B or not $2B

Geändert von himitsu ( 2. Dez 2013 um 23:34 Uhr)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: Buttonname über popupmenü ändern

  Alt 3. Dez 2013, 00:04
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ß
Volker Zeller
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Buttonname über popupmenü ändern

  Alt 3. Dez 2013, 14:45
Danke Funtz super XD
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz