AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi StringGrid + Rechte Mousetaste + Reihe selektieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid + Rechte Mousetaste + Reihe selektieren

Ein Thema von Morfio · begonnen am 20. Dez 2003 · letzter Beitrag vom 21. Dez 2003
Antwort Antwort
Morfio

Registriert seit: 15. Dez 2003
53 Beiträge
 
#1

StringGrid + Rechte Mousetaste + Reihe selektieren

  Alt 20. Dez 2003, 15:32
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 ...
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: StringGrid + Rechte Mousetaste + Reihe selektieren

  Alt 20. Dez 2003, 16:06
würd ich auch gern wissen
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
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
Morfio

Registriert seit: 15. Dez 2003
53 Beiträge
 
#4

Re: StringGrid + Rechte Mousetaste + Reihe selektieren

  Alt 21. Dez 2003, 13:40
Hi,

vielen Dank, hat prima funktioniert. Wäre ich selber _nie_ im Leben drauf gekommen. Nochmals vielen Dank.

Viele Grüsse,

Morfio ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 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