Ich hab gerade ein kleines problem. Der folgende Code soll in einer abgeleiteten StringGrid-Komponente einem eventuell definiertem Menü einen zusätzlichen Menüpunkt hinzufügen. das funktioniert so weit auch. nur eben, dass das OnClick-Ereignis nicht ausgeführt wird und ich hab irgendwie keine Ahnung woran das liegen kann
Delphi-Quellcode:
procedure TEnhStringGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
var
p: TPoint;
Col, Row: Integer;
mnuFixieren, mnuLine: TMenuItem;
begin
inherited;
MouseToCell(X, Y, Col, Row);
if (row = 0) and (Button = mbRight) then
begin
// create header popup menu
mnuFixieren := TMenuItem.Create(self);
mnuFixieren.Caption := 'Fixieren';
mnuFixieren.OnClick := fixColumn;
mnuFixieren.Tag := Col;
mnuLine := TMenuItem.Create(self);
mnuLine.Caption := '-';
if GetPopupMenu <> nil then
begin
GetPopupMenu.Items.Insert(0, mnuFixieren);
GetPopupMenu.Items.Insert(1, mnuLine);
end else begin
PopupMenu := TPopupMenu.Create(self);
GetPopupMenu.Items.Add(mnuFixieren);
end;
if ((FixedCols - 1) < Col) then
GetPopupMenu.Items[0].Checked := false
else
GetPopupMenu.Items[0].Checked := true;
GetCursorPos(p);
GetPopupMenu.Popup(p.X, p.Y);
end;
end;
Was mache ich falsch, dass das zugewiesene Ereignis nicht anerkannt wird?