Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [COM] Events benutzen (Client) - MediaMonkey (https://www.delphipraxis.net/124201-%5Bcom%5D-events-benutzen-client-mediamonkey.html)

MSSSSM 16. Nov 2008 18:40


[COM] Events benutzen (Client) - MediaMonkey
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,

ich versuche derzeit ein kleines Programm zu schreiben welches den Status des MediaMonkeys ausliest.
Dieser bietet sogar Events an.
Dokumentation der COM Interfaces: http://www.mediamonkey.com/wiki/inde...SDBApplication

Code der Form:
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,SongsDB_TLB,SongsDBEvents, StdCtrls, ComCtrls, XPMan;

type
  TfrmMediaMonkey = class(TForm)
    lstPlaylist: TListView;
    Button1: TButton;
    lblPlaylist: TLabel;
    btnStop: TButton;
    lblStatus: TLabel;
    XPMani: TXPManifest;
    procedure FormCreate(Sender: TObject);
    procedure GetStatus;
    procedure OnMMStatusChanged(Sender:TObject);
  private
    { Private-Deklarationen }
    MM:ISDBApplication;
    MMEvents:TSongsDBISDBApplicationEvents;
  public
    { Public-Deklarationen }
  end;

var
  frmMediaMonkey: TfrmMediaMonkey;

implementation

{$R *.dfm}

procedure TfrmMediaMonkey.FormCreate(Sender: TObject);
begin
MM:=CoSDBApplication.Create;
MMEvents:=TSongsDBISDBApplicationEvents.Create;
MMEvents.OnPlay:=OnMMStatusChanged;
MMEvents.OnPause:=OnMMStatusChanged;
MMEvents.OnStop:=OnMMStatusChanged;
MMEvents.Connect(MM);
GetStatus;
end;

procedure TfrmMediaMonkey.OnMMStatusChanged(Sender:TObject);
begin
  ShowMessage('Status changed');
  GetStatus;
end;

procedure TfrmMediaMonkey.GetStatus;
var Status:string;
begin
  Status:='';
  if MM.Player.isPlaying then
    Status:=Status+'Playing'+sLineBreak
  else
    Status:=Status+'Stopped'+sLineBreak;
  if MM.Player.isPaused then
    Status:=Status+'Paused'+SlineBreak;


  lblStatus.Caption:=Status;
end;

end.
Die TLB.pas und den Sink habe ich mal angehängt.

Problem:
Die Events werden nicht ausgelöst...
Wie muss ich das machen, damit die Events ausgelöst werden?

MSSSSM

P.S.: Ja, ich weiß die private Symbole (?) sollten mit F beginnen...

MSSSSM 17. Nov 2008 13:19

Re: [COM] Events benutzen (Client) - MediaMonkey
 
*PUSH in 5 Stunden*

Also bisher habe ich es jetzt mit Polls realisiert aber dann machts *blitz* und *blink*
und das ist nicht schön :(

MSSSSM 18. Nov 2008 14:48

Re: [COM] Events benutzen (Client) - MediaMonkey
 
*PUUUUUUUUUUUUUUUSH*

MSSSSM 23. Nov 2008 10:10

Re: [COM] Events benutzen (Client) - MediaMonkey
 
*PUSH*
Ich habe immer noch nen Poll.
Aber wie kann man diese verdammten Events benutzen... :( .

Mr_G 23. Nov 2008 10:47

Re: [COM] Events benutzen (Client) - MediaMonkey
 
Zuersteinmal: Ich hab eigentlich keine Ahnung!
Ich habe trotzdem mal in die TBL gesehen und mir ist aufgefallen, dass es sich bei ISDBApplication nur um ein interface handelt. Es gibt da auch noch eine Klasse TSDBApplication, die deine Events als TNotifyEvent anbietet. Vielleicht kannst du direkt mit dieser Klasse arbeiten.

MSSSSM 23. Nov 2008 11:49

Re: [COM] Events benutzen (Client) - MediaMonkey
 
Stimmt Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz