PopUpMenu nicht über Rechte Maustaste öffnen
-
Moin,
hab ein blödes (anfänger?) problem.
Ich möchte bei einem ListView die Caption der Columns ändern.
Dazu habe ich folgenden code:AnsiString Input = InputBox("Umbenennen...", "Bla", "Bla");
Das klappt auch. nur will ich wenn ich rechte maustaste auf ein Column klicke das ein popupmenu erscheint. und da hängts, das geht nähmlich nicht
pnuUmbenennen->Action->Execute();
sobald ich im programm dan die rechte maustaste betätige kommt eine fehler meldung, Zugriffsverletzung bei Adresse bla bla
was ist an dem Code falsch?
oder gibt es eine besser lösung? zb. wie bei Excel mit einem Doppelklick und dan kann man die Caption ändern...FAQ usw hab ich durchsucht aber nichts passendes gefunden. ist vermutlich wieder ein blöder anfänger fehler. (mit dennen hab ich mehr probs als mit allem anderen *g*)
für vorschläge wäre ich dankbar!
Toadie
-
Also mit
pnuUmbenennen->Action->Execute();
geht es nicht. Am einfachsten ist es im Objektinspektor die Eigenschaft PopupMenu auf pnuUmbenennen setzen.
-
sorry versteh ich nicht. das geht doch garnicht!?
-
hi,
warum setzt du nicht das popupmenu-property der listview auf ein tpopupmenu?
dann gehts allerdings auch auf wenn ausserhalb der headers rechts geklickt wird, aber das dürfte ja nicht so schlimm sein...wenn es jetzt aber nur aufgehn soll wenn mit rechts auf einen header geklickt wird, dann mußt du erstmal drauf schaun das "columnclick=true" der listview eingestellt ist, dann gehst du zu den events der listview und klickst doppelt auf "OnColumnRightClick", hier schreibst du dann den code zum manuellen öffnen des popups rein, z. b:
void __fastcall TForm1::ListView1ColumnRightClick(TObject *Sender, TListColumn *Column, TPoint &Point) { TPoint APoint = ListView1->ClientToScreen(Point); PopupMenu1->Popup(APoint.x, APoint.y); }
mfg
murph
-
DANKE funzt!!
hatte erst das popupmenu bei dem propertys vom Listview. aber ich will ja grade nicht das es überall geht.
danke nochmal, das hilft mir weiter