[Gelöst] DBGrid: Funktion in Popup-Menü nur bei Klick auf Reihe anzeigen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Ich934
Lazarusforum e. V.
Beiträge: 155
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

[Gelöst] DBGrid: Funktion in Popup-Menü nur bei Klick auf Reihe anzeigen

Beitrag von Ich934 »

Hallo,

ich habe hier ein Problem was noch nicht so geht wie ich das mir eigentlich gedacht habe. Vielleicht seh ich aber auch nur den Wald vor lauter Bäumen nicht. ;-)

Ich habe ein DBGrid in dem Werte stehen. Das funktioniert prima und alles ist ok. Einträge sollen über ein Popup-Menü gelöscht werden. Jetzt soll der Menüpunkt aber nur aktiv sein, wenn natürlich auch eine Zeile markiert ist.

Das Grid hat die Option "dgAnyButtonCanSelect" aktiviert. Damit funktioniert im Prinzip die Selektion schon. Beim Popup-Menü hab ich jetzt die Prozedure OnPopup erzeugt mit folgenden Inhalt:

Code: Alles auswählen

procedure TfrmMain.PopupMenuQuellenPopup(Sender: TObject);
begin
  if (not dbgQuellen.DataSource.DataSet.IsEmpty) and
    (dbgQuellen.DataSource.DataSet.RecordCount > 0) then
  begin
    // Eintrag selektiert
    if dbgQuellen.SelectedRows.Count > 0 then
    begin
      mnuQuellenEintragLoeschen.Enabled := True;
    end
    // kein Eintrag selektiert
    else
    begin
      mnuQuellenEintragLoeschen.Enabled := False;
    end;
  end
  // kein Eintrag vorhanden
  else
  begin
    mnuQuellenEintragLoeschen.Enabled := False;
  end;
end;   
Das Ergebnis ist, dass der Menüeintrag immer gesperrt ist. Das ist korrekt wenn ich in einen leeren Bereich klicke, jedoch nicht, wenn ich auf eine Zeile klicke.

Kann es sein, dass das OnPopup vor dem Select auf die Row erfolgt? Wenn ja, hat hier jemand eine bessere Idee ohne das ich Fehlermeldungen ausgebe?

Vielen Dank.
Zuletzt geändert von Ich934 am Mi 29. Apr 2020, 16:37, insgesamt 1-mal geändert.
Tipp für PostgreSQL: www.pg-forum.de

Ich934
Lazarusforum e. V.
Beiträge: 155
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: DBGrid: Funktion in Popup-Menü nur bei Klick auf Reihe anzeigen

Beitrag von Ich934 »

Viel zu kompliziert gedacht. :-D

Durch das AnyButtonCanSelect ist immer eine Zeile ausgewählt. Problem damit erledigt. Ich muss also nur prüfen, ob überhaupt was vorhanden ist und, was bei einem Spezialfall sein kann, ob die DataSource nicht nil ist.
Tipp für PostgreSQL: www.pg-forum.de

Antworten