Thema: Delphi Media Center entwickeln

Einzelnen Beitrag anzeigen

Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#12

Re: Media Center entwickeln

  Alt 26. Jan 2008, 01:17
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?
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat