AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dekleration wird nicht erkannt?!?

Ein Thema von Poseidon · begonnen am 16. Jul 2008 · letzter Beitrag vom 16. Jul 2008
Antwort Antwort
Benutzerbild von Poseidon
Poseidon

Registriert seit: 8. Jul 2008
113 Beiträge
 
Delphi 2005 Personal
 
#1

Dekleration wird nicht erkannt?!?

  Alt 16. Jul 2008, 11:54
Hallo Delphianer,

mit meiner neuen, selbestgemachten ( ) Komponente soll man die Lautstärke von TMediaplayer verändern können. Hier der Code:
Code:
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.
In der function
Code:
function GetVolume : integer;
begin
 MPSetVolume(FMediaPlayer, FVolume) ;
end;
kennt Delphi FMediaplayer und FVolumen nicht . Dabei habe ich sie hier doch deklerirt
Code:
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;
Hoffe es ist alles einleuchtend. Danke im voraus

mfg Poseidon
Im Zweifelsfall immer das Richtige tun
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Dekleration wird nicht erkannt?!?

  Alt 16. Jul 2008, 11:56
Ganz einfach
function TMediaPlayerVolume.GetVolume : integer;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Dekleration wird nicht erkannt?!?

  Alt 16. Jul 2008, 11:57
Hai Poseidon,

wenn ich es richtig sehe fehlt in deiner Implementation der Klassenname für deine Methode:

Code:
function [b]TMediaplayerVolume.[/b]GetVolume : integer;
begin
 MPSetVolume(FMediaPlayer, FVolume) ;
end;
[Edit]Und wieder war ich zu langsam
Stephan B.
  Mit Zitat antworten Zitat
Benutzerbild von pilic
pilic

Registriert seit: 10. Aug 2006
Ort: Aschbach
131 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Dekleration wird nicht erkannt?!?

  Alt 16. Jul 2008, 11:58
Das liegt daran, dass GetVolume keine Methode der Klasse TMediaplayerVolume ist.

Edit: ich auch
  Mit Zitat antworten Zitat
Benutzerbild von Poseidon
Poseidon

Registriert seit: 8. Jul 2008
113 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Dekleration wird nicht erkannt?!?

  Alt 16. Jul 2008, 12:02
Vielen dank, das ging wirklich sehr schnell
Im Zweifelsfall immer das Richtige tun
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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