Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit dem Mediaplayer (https://www.delphipraxis.net/143789-problem-mit-dem-mediaplayer.html)

Tim178 23. Nov 2009 17:24


Problem mit dem Mediaplayer
 
GUI:
Code:
unit mHaupt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ExtCtrls,mNeben,mDialog, MPlayer;
type
  TGui = class(TForm)
  TMediaPlayer: TMediaPlayer;
  private
    Neben : TNeben;
    Dialog: TDialog;
    procedure Neue;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Gui: TGui;

implementation

{$R *.dfm}

procedure TGui.Neue;
begin
  Neben := TNeben.Create(Gui,TMediaplayer);
  Neben.Parent := GUI;
  Neben.Name := dialog.Getname;
  Neben.Left := Random(Gui.Width-100);
  Neben.Top := Random(Gui.Height-100);
  Neben.Show;
  dialog.Free;
end;
end.
Neben:

Code:
unit mNeben;

interface

uses
  ExtCtrls, Classes, Dialogs, Sysutils,mplayer;

type
   TNeben = class(TImage)
   private
      FFarbe:String;
      Fmp : TMediaplayer;
      { Private-Deklarationen }
   public
      constructor Create(AOwner:TComponent; mp : TMediaplayer); virtual;
      { Public-Deklarationen }
   end;

implementation

implementation

constructor Neben.Create(AOwner:TComponent; mp : TMediaplayer);
var a :integer;
begin
   a := Random(2);
   inherited create(AOwner);
   case a of
        0 : begin
               FFarbe := 'rot';
               Picture.LoadFromFile('xy.bmp');
               Fmp.FileName := 'xy.wav'
            end;
        1 : begin
               FFarbe := 'gelb';
               Picture.LoadFromFile('xy.bmp');
               Fmp.FileName := 'xy.wav'
            end;
    end;
end;
end.

Mein Problem besteht jetzt darin, dass das Programm soweit läuft, doch immer wenn die Prozedur Neue aufgerufen wird, das Programm abstürtzt. Es kann nur an dem Mediaplayer liegen, da das Programm vorher einwandfrei gelaufen ist. Danke für eure Hilfe.

Mithrandir 23. Nov 2009 17:41

Re: Problem mit dem Mediaplayer
 
Kurz überflogen:

Delphi-Quellcode:
begin
   a := Random(2);
   inherited create(AOwner);
   case a of
        0 : begin
               FFarbe := 'rot';
               Picture.LoadFromFile('xy.bmp');
               Fmp.FileName := 'xy.wav'
            end;
        1 : begin
               FFarbe := 'gelb';
               Picture.LoadFromFile('xy.bmp');
               Fmp.FileName := 'xy.wav'
            end;
    end;
end;
Wann gedenkst du denn, Fmp zu intialisieren? :mrgreen:

Tim178 23. Nov 2009 17:44

Re: Problem mit dem Mediaplayer
 
Wo soll denn das wenn intialisiert werden. In Gui oder TNeben? Fmp soll ja TMediaplayer zugewiesen werden.

Mithrandir 23. Nov 2009 17:50

Re: Problem mit dem Mediaplayer
 
Delphi-Quellcode:
TMediaPlayer: TMediaPlayer;
Benenn den mal um. Es scheint ja zu compillieren, aber das ist schlechter Stil. Der Name der Komponente lautet so wie der Typ - das tut man einfach nicht.

Weiter im Programm:

Delphi-Quellcode:
Create(AOwner:TComponent; mp : TMediaplayer);
Du übergibst TMediaPlayer als mp im Create an die Klasse. Und dann nutzt du im Constructor selbst fmp. Merkste wat?

Tim178 23. Nov 2009 17:54

Re: Problem mit dem Mediaplayer
 
Vielen Dank. War schon total frustiert. Habe schon alles nachgeprüft, doch das habe ich leider übersehen.

Auch vielen vielen Dank für die schnelle Antwort.

Tim178 23. Nov 2009 18:52

Re: Problem mit dem Mediaplayer
 
Habe noch ein kleines Problem und zwar will mein TurboDelphi nicht Application.ProcessMessages anerkennen.

Mithrandir 23. Nov 2009 18:54

Re: Problem mit dem Mediaplayer
 
Unit "Forms" einbinden, dann klappts...

toms 23. Nov 2009 18:54

Re: Problem mit dem Mediaplayer
 
(Cursor auf Application.ProcessMessages setzen und F1 betätigen) --> Uses Forms;

Tim178 23. Nov 2009 19:07

Re: Problem mit dem Mediaplayer
 
Danke. Wie ihr merkt bin ich noch nicht so fit in Delphi. Habe aber wieder was neues dazu gelernt.


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

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