![]() |
Problem mit dem Mediaplayer
GUI:
Code:
Neben:
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.
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. |
Re: Problem mit dem Mediaplayer
Kurz überflogen:
Delphi-Quellcode:
Wann gedenkst du denn, Fmp zu intialisieren? :mrgreen:
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; |
Re: Problem mit dem Mediaplayer
Wo soll denn das wenn intialisiert werden. In Gui oder TNeben? Fmp soll ja TMediaplayer zugewiesen werden.
|
Re: Problem mit dem Mediaplayer
Delphi-Quellcode:
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.
TMediaPlayer: TMediaPlayer;
Weiter im Programm:
Delphi-Quellcode:
Du übergibst TMediaPlayer als mp im Create an die Klasse. Und dann nutzt du im Constructor selbst fmp. Merkste wat?
Create(AOwner:TComponent; mp : TMediaplayer);
|
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. |
Re: Problem mit dem Mediaplayer
Habe noch ein kleines Problem und zwar will mein TurboDelphi nicht Application.ProcessMessages anerkennen.
|
Re: Problem mit dem Mediaplayer
Unit "Forms" einbinden, dann klappts...
|
Re: Problem mit dem Mediaplayer
(Cursor auf Application.ProcessMessages setzen und F1 betätigen) --> Uses Forms;
|
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:38 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