Einzelnen Beitrag anzeigen

Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#7

AW: TButtonEdit, buttons und dropdown menu - wie Aufrufer finden?

  Alt 29. Aug 2023, 20:50
Der Quelltext sieht so aus:
Delphi-Quellcode:
    WM_LBUTTONDOWN:
      if FButton.FDropDownMenu <> nil then
      begin
        if not (csDesigning in Parent.ComponentState) then
        begin
          LPoint := ClientToScreen(Point(0, FButton.EditControl.Height));
          FButton.FDropDownMenu.Popup(LPoint.X, LPoint.Y);
        end;
      end
Heißt:
Du hast keinerlei Information, welcher Button dahintersteckt. Das Menü wird einfach nur an Punkt X/Y aufgemacht.

Einziger Weg:
Nachschauen, welcher Button an der Popupstelle liegt. Schön ist das nicht.

Warum klonst du nicht einfach das Menü beim Start des Programms und gibst jedem Button eine eigene Kopie? Dann packst du eine ID in die Eigenschaft Tag (oder nennst das Menü in Name wie den Button plus einen kleinen Zusatz) und kannst die Menüs (und damit die Buttons dazu) so voneinander unterscheiden.
Ja, das scheint wohl die einzigste Möglichkeit zu sein.
  Mit Zitat antworten Zitat