Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Panels einfärben (über das gleiche Popupmenü) (https://www.delphipraxis.net/106569-panels-einfaerben-ueber-das-gleiche-popupmenue.html)

BeBored 12. Jan 2008 22:23


Panels einfärben (über das gleiche Popupmenü)
 
Hallo,

ich möchte gerne verschiedene Panels über ein PopUp-Menü einfärben.
Also das PopUp-Menü hat z.B. die Menüpunkte "Rot" und "Grün".
Muss ich dort mit Sender arbeiten? Ich habe mich erst jetzt mit diesem Punkt beschäftigt, komme aber nicht so richtig weiter.
Ich hoffe mein Ansatz ist wenigstens richtig. Bisher habe ich es so versucht:
Delphi-Quellcode:
// PopupMenüpunkt "Rot"
TPanel(Sender).Color := clRed;
// so habe ich es auch versucht
(Sender as TPanel).Color := clRed;
Das funktioniert aber nicht, es gibt eine Access Violation.
Stelle ich mir das zu einfach vor? :gruebel:

DeddyH 12. Jan 2008 22:28

Re: Panels einfärben (über das gleiche Popupmenü)
 
Der Sender ist ja das MenuItem ;) . Du kannst das aber so machen: allen Panels das PopupMenü zuweisen. Im OnClick der Menüpunkte kommst Du dann über PopupComponent an das auslösende Panel.

BeBored 12. Jan 2008 22:37

Re: Panels einfärben (über das gleiche Popupmenü)
 
Zitat:

Zitat von DeddyH
Der Sender ist ja das MenuItem ;) . Du kannst das aber so machen: allen Panels das PopupMenü zuweisen. Im OnClick der Menüpunkte kommst Du dann über PopupComponent an das auslösende Panel.

Danke dir, kannst du mir ein Beispiel geben?
Ich weiß nicht recht wie ich PopUpComponent benutzen soll.

DeddyH 12. Jan 2008 22:41

Re: Panels einfärben (über das gleiche Popupmenü)
 
Delphi-Quellcode:
procedure TForm1.Rot1Click(Sender: TObject);
begin
  if PopupMenu1.PopupComponent is TPanel then //sicherheitshalber
    TPanel(PopupMenu1.PopupComponent).Color := clRed;
end;
Wie gesagt, im OI den Panels das Popupmenü zuweisen. Zur Not stell ich ein Beispielprog online ;)

BeBored 12. Jan 2008 22:43

Re: Panels einfärben (über das gleiche Popupmenü)
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
procedure TForm1.Rot1Click(Sender: TObject);
begin
  if PopupMenu1.PopupComponent is TPanel then //sicherheitshalber
    TPanel(PopupMenu1.PopupComponent).Color := clRed;
end;
Wie gesagt, im OI den Panels das Popupmenü zuweisen. Zur Not stell ich ein Beispielprog online ;)

Danke für deine Hilfe, das funktioniert wunderbar! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 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