Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi StringGrid + Rechte Mousetaste + Reihe selektieren (https://www.delphipraxis.net/13528-stringgrid-rechte-mousetaste-reihe-selektieren.html)

Morfio 20. Dez 2003 15:32


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 ...

supermuckl 20. Dez 2003 16:06

Re: StringGrid + Rechte Mousetaste + Reihe selektieren
 
würd ich auch gern wissen

Christian Seehase 21. Dez 2003 02:14

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:
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]

Morfio 21. Dez 2003 13:40

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 03:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz