Moin Zusammen,
das entscheidende ist, dass man das PopUpMenü "zu Fuss" anzeigt, also über dessen Methode PopUp.
Das Beispiel gehört in das StringGrid.OnMouseUp Ereignis
Wurde die rechte Maustaste gedrückt, dann wird als erstes die Mausposition in Zellkoordinaten umgerechnet.
Anschliessend die Zeile Selektiert, und dann das Menü, z.B. an der aktuellen Mausposition geöffnet.
Delphi-Quellcode:
var
iCol : integer;
iRow : integer;
grSel : TGridRect;
begin
if Button = mbRight then begin
StringGrid1.MouseToCell(x,y,iCol,iRow);
grSel.Top := iRow;
grSel.Left := 1;
grSel.Right := StringGrid1.ColCount;
grSel.Bottom := iRow;
StringGrid1.Selection := grSel;
PopUpMenu1.Popup(Mouse.CursorPos.x,Mouse.CursorPos.y);
end;
end;
[EDIT]
Ich hab's mal nach
VCL-Komponenten verschoben.
[/EDIT]