Mal eine kleine Nebenfrage...
Meine Panel besitzen die Eigenschaft OnClick und reagieren auch auf den Click der Fernbedienung.
Beim leeren der Menüliste bekomme ich natülich eine
AV. Er ist noch in der Procedure drin aber eigentlich existiert das Objekt nicht mehr. Wie könnte ich das umgehen?
Delphi-Quellcode:
procedure TMenuManager.OnClick(Sender: TObject);
begin
if Assigned(FItemClick) then begin
if Sender is TJvPanel then begin
Self.SetActiveButton(TJvPanel(Sender).Tag);
//Self.FActiveButton := TJvPanel(Sender).Tag;
OnItemClick(Self);
// <-- panel existiert nicht mehr
end;
end; // hier error!!!!!!!!!!!!!!!!!
end;
mit OnItemClick wird folgendes aufgerufen
Delphi-Quellcode:
procedure TMain_Frm.SelectPressed;
var
I: Integer;
begin
case Self.FCC.PlayerMode of
// Hauptmenü
pmMain: begin
case Self.FMenuManager.ButtonActive of
// Musik Menü aktiv setzen
0: begin
Self.FOSD.Show('Musik Modus', 2000);
Self.FCC.PlayerMode := pmMusik;
Self.FMenuManager.ClearButtons;
end;
// DVD Menü aktiv setzen
1: begin
Self.FOSD.Show('DVD Modus', 2000);
Self.FCC.PlayerMode := pmDVD;
// Self.FMenuManager.ClearButtons;
for I := Self.FMenuManager.Count -1 downto 0 do
Self.FMenuManager.RemoveButton(I);
end;
Er springt nachher in das OnClick Ereignis zurück und dort kommt die
AV.
Weiß jemand eine saubere Lösung womit ich sie auch wieder entfernen kann?