![]() |
Dekleration wird nicht erkannt?!?
Hallo Delphianer,
mit meiner neuen, selbestgemachten ( :coder: ) Komponente soll man die Lautstärke von TMediaplayer verändern können. Hier der Code:
Code:
In der function
unit Component1;
interface uses SysUtils, Classes, mmsystem, mplayer, Windows; const MCI_SETAUDIO = $0873; MCI_DGV_SETAUDIO_VOLUME = $4002; MCI_DGV_SETAUDIO_ITEM = $00800000; MCI_DGV_SETAUDIO_VALUE = $01000000; MCI_DGV_STATUS_VOLUME = $4019; type MCI_DGV_SETAUDIO_PARMS = record dwCallback: integer; dwItem: integer; dwValue: integer; dwOver: integer; lpstrAlgorithm: PChar; lpstrQuality: PChar; end; type MCI_STATUS_PARMS = record dwCallback: integer; dwReturn: integer; dwItem: integer; dwTrack: integer; end; type TMediaplayerVolume = class(TComponent) private FVolume: integer; FMediaplayer: TMediaplayer; //function MPGetVolume(MP: TMediaPlayer): Integer; { Private-Deklarationen } protected { Protected-Deklarationen } public function GetVolume : integer; { Public-Deklarationen } published property Volume : integer read FVolume write FVolume; property Mediaplayer: TMediaplayer read FMediaplayer write FMediaplayer; { Published-Deklarationen } end; procedure Register; procedure MPSetVolume(MP: TMediaPlayer; Volume: Integer) ; // procedure GetVolume; implementation procedure Register; begin RegisterComponents('LPI', [TMediaplayerVolume]); end; function GetVolume : integer; begin MPSetVolume(FMediaPlayer, FVolume) ; end; procedure MPSetVolume(MP: TMediaPlayer; Volume: Integer) ; var p: MCI_DGV_SETAUDIO_PARMS; begin p.dwCallback := 0; p.dwItem := MCI_DGV_SETAUDIO_VOLUME; p.dwValue := Volume; p.dwOver := 0; p.lpstrAlgorithm := nil; p.lpstrQuality := nil; mciSendCommand(MP.DeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p)) ; end; function MPGetVolume(MP: TMediaPlayer): Integer; var p: MCI_STATUS_PARMS; begin p.dwCallback := 0; p.dwItem := MCI_DGV_STATUS_VOLUME; mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p)) ; Result := p.dwReturn; end; end.
Code:
kennt Delphi FMediaplayer und FVolumen nicht :wall: . Dabei habe ich sie hier doch deklerirt
function GetVolume : integer;
begin MPSetVolume(FMediaPlayer, FVolume) ; end;
Code:
Hoffe es ist alles einleuchtend. Danke im voraus
private
FVolume: integer; FMediaplayer: TMediaplayer; //function MPGetVolume(MP: TMediaPlayer): Integer; { Private-Deklarationen } protected { Protected-Deklarationen } public function GetVolume : integer; { Public-Deklarationen } published property Volume : integer read FVolume write FVolume; property Mediaplayer: TMediaplayer read FMediaplayer write FMediaplayer; { Published-Deklarationen } end; mfg Poseidon |
Re: Dekleration wird nicht erkannt?!?
Ganz einfach ;)
Delphi-Quellcode:
function TMediaPlayerVolume.GetVolume : integer;
|
Re: Dekleration wird nicht erkannt?!?
Hai Poseidon,
wenn ich es richtig sehe fehlt in deiner Implementation der Klassenname für deine Methode:
Code:
[Edit]Und wieder war ich zu langsam
function [b]TMediaplayerVolume.[/b]GetVolume : integer;
begin MPSetVolume(FMediaPlayer, FVolume) ; end; |
Re: Dekleration wird nicht erkannt?!?
Das liegt daran, dass GetVolume keine Methode der Klasse TMediaplayerVolume ist.
Edit: ich auch |
Re: Dekleration wird nicht erkannt?!?
Vielen dank, das ging wirklich sehr schnell :thumb: :dp:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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