Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: StringGrid + Rechte Mousetaste + Reihe selektieren

  Alt 21. Dez 2003, 02:14
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]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat