![]() |
StringGrid + Rechte Mousetaste + Reihe selektieren
Hi,
wie kann ich in einem StringGrid auch mit der rechten Mousetaste eine Reihe selektieren? Mit der linken ist das standardmäßig kein Problem. Allerdings liegt auf der rechten Mousetaste ein Kontextmenü, in dem man einzelne Zeilen löschen kann. Dennoch ist es aufwändig und auch fehleranfällig vom Benutzer, wenn er zuerst mit der linken Mousetaste einen Eintrag selektieren muss und dann erst die rechte Mousetaste drücken darf (da sonst beim löschen die noch markierte Zeile entfernt wird). Vielen Dank, Morfio ... |
Re: StringGrid + Rechte Mousetaste + Reihe selektieren
würd ich auch gern wissen
|
Re: StringGrid + Rechte Mousetaste + Reihe selektieren
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:
[EDIT]
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; Ich hab's mal nach VCL-Komponenten verschoben. [/EDIT] |
Re: StringGrid + Rechte Mousetaste + Reihe selektieren
Hi,
vielen Dank, hat prima funktioniert. Wäre ich selber _nie_ im Leben drauf gekommen. Nochmals vielen Dank. Viele Grüsse, Morfio ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 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