AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid / Popup-Menü

Ein Thema von wurzelsepp1 · begonnen am 17. Feb 2021 · letzter Beitrag vom 26. Feb 2021
Antwort Antwort
wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#1

DBGrid / Popup-Menü

  Alt 17. Feb 2021, 11:35
Moin Gemeinde,

ich hab da mal wieder eine erschreckend einfach Anfängerfrage:

Ich möchte ein DBGrid für eine kaufm. Anwendung komplett Tastenbedienbar machen. Dazu hätte ich gern, dass nach dem Drücken der Enter-Taste in Popup-Menü angezeigt wird. Der Schönheit halber sollte das dort stehen, wo gerade der Datensatz markiert ist.

Frage nun:
- Wie kann ich die aktuelle "Curorposition" ermitteln?

und

- Wie kann ich dem Popup-Menü den Fokus geben? (aktuell ist es so, dass der Fokus beim Grid bleibt.)

Danke für Tipps
Alex
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: DBGrid / Popup-Menü

  Alt 17. Feb 2021, 11:55
Dazu hätte ich gern, dass nach dem Drücken der Enter-Taste in Popup-Menü angezeigt wird.
Warum soll es denn die Enter-Taste sein? Immerhin gibt es für das Kontext-Menü ja schon eine dedizierte Taste: Menü-Taste
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: DBGrid / Popup-Menü

  Alt 17. Feb 2021, 12:03
Warum soll es denn die Enter-Taste sein? Immerhin gibt es für das Kontext-Menü ja schon eine dedizierte Taste: Menü-Taste
Kurzer Einwand an der Stelle: Nicht jede Tastatur hat eine solche Taste.

Vielleicht passt Enter aber auch einfach in die Bedienung des restlichen Programms. Wer weiß.


Die TPopupMenu Komponente hat eine Popup() Methode. Der kannst du die X und Y-Koordinaten übergeben. Eventuell hilft in dem Zusammenhang noch ClientToScreen() und ScreenToClient() weiter.
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: DBGrid / Popup-Menü

  Alt 17. Feb 2021, 12:10
Kurzer Einwand an der Stelle: Nicht jede Tastatur hat eine solche Taste.
Dann nimmt man eben [Shift][F10], das geht auch.

--
LG aus dem hohen Norden, Edmund
  Mit Zitat antworten Zitat
wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#5

AW: DBGrid / Popup-Menü

  Alt 21. Feb 2021, 22:03
Warum soll es denn die Enter-Taste sein? Immerhin gibt es für das Kontext-Menü ja schon eine dedizierte Taste: Menü-Taste
Weil das Programm komplett Tastaturbedienbar sein soll - wobei "Tastatur" Pfeil- und Enter-Tasten meint.
  Mit Zitat antworten Zitat
wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#6

AW: DBGrid / Popup-Menü

  Alt 21. Feb 2021, 22:06
Vielleicht passt Enter aber auch einfach in die Bedienung des restlichen Programms. Wer weiß.

Die TPopupMenu Komponente hat eine Popup() Methode. Der kannst du die X und Y-Koordinaten übergeben. Eventuell hilft in dem Zusammenhang noch ClientToScreen() und ScreenToClient() weiter.
So ist es.

Ja, für das Popup benötige ich ja die Koordinaten. Daher war ja auch die Ursprüngliche Frage, wie bekomme ich die Koordinaten des markierten Datensatzes im Grid?

UND

Wie setze ich den Fokus auf das Popup?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: DBGrid / Popup-Menü

  Alt 21. Feb 2021, 23:15
Das mit den koordinaten ist etwas tricky.
Hier (SO) schau mal rein, die akzeptierte Antwort funktioniert hoffentlich noch.

Hier eine Kopie der Lösung.

Delphi-Quellcode:
// implementation

type
  THackDBGrid=class(TDBGrid);

// Where you need the coordinates
var
  CurrRow: Integer;
  Rect: TRect;
begin
  CurrRow := THackDBGrid(DBGrid1).Row;
  Rect := THackDBGrid(DBGrid1).CellRect(ColIndexYouWant, CurrRow);
// Rect now contains the screen coordinates you need, or an empty
// rectangle if there is no cell at the col and row specified.
end;
Gruß vom KodeZwerg

Geändert von KodeZwerg (21. Feb 2021 um 23:22 Uhr)
  Mit Zitat antworten Zitat
wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#8

AW: DBGrid / Popup-Menü

  Alt 26. Feb 2021, 13:36
Das mit den koordinaten ist etwas tricky.
Hier (SO) schau mal rein, die akzeptierte Antwort funktioniert hoffentlich noch.
Danke, das schaue ich am WE mal an.
  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 16:26 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