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