AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Undeklarierter Bezeichner (MediaPlayer)
Thema durchsuchen
Ansicht
Themen-Optionen

Undeklarierter Bezeichner (MediaPlayer)

Offene Frage von "haentschman"
Ein Thema von Sveni795 · begonnen am 19. Mär 2017 · letzter Beitrag vom 19. Mär 2017
Antwort Antwort
Seite 1 von 3  1 23      
Sveni795

Registriert seit: 19. Mär 2017
6 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:10
Hallo Zusammen,

um mich kurz vorzustellen,

ich habe seit 1 Jahr meine Ausbildung abgeschlossen und arbeite in der Firma mit Delphi 10.1
Nun aber auch privat da ich wirklich noch Anfänger bin. Ich habe nun ein Problem mit meinem Quellcode.

Ich bin mir sicher mein Problem ist für fortgeschrittene schnell zu lösen...


Ich möchte versuchen über eine "Click.Button" Funktion einen Sound abzuspielen.
Hierfür verwende ich eine Mediaplayer componente. (Das ganze wird eine Multiplattform Anwendung)

Wird der Button geclickt passiert folgendes:
Code:
procedure TTabbedForm.Button1Click(Sender: TObject);
begin
  DataLink :=
    ('C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3');
  playsound(DataLink);
end;
Ich möchte also den Link in einer Stringvariable übertragen und dem Procedure "playsound" übertragen. "DataLink" ist golbal angelegt
Hier nun die PlaySound procedure:
Code:
procedure PlaySound(VAR DataLink: string);
begin
  MediaPlayer1.FileName := DataLink;
  MediaPlayer1.Play;
end;
Nun kommt die Fehlermeldung MediaPlayer1.FileName sei ein Undeklarierter Bezeichner
Wenn ich die MediaPlayer1 funktionen gleich in der ButtonClick Procedure ausführe funktioniert alles ohne Probleme.

Hat vielleicht jemand einen Tipp?

Vielen Dank
Gruß

Geändert von Sveni795 (19. Mär 2017 um 15:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:15
Playsound gehört nicht zur Form...

Daher ist "ohne" die Form Mediaplayer1 auch nicht erreichbar.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.604 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:15
Code:
procedure TTabbedForm.Button1Click(Sender: TObject);
begin
  DataLink :=
    ('C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3');
  playsound(DataLink);
end;
Code:
procedure PlaySound(VAR DataLink: string);
begin
  MediaPlayer1.FileName := DataLink;
  MediaPlayer1.Play;
end;
Nun kommt die Fehlermeldung MediaPlayer1.FileName sei ein Undeklarierter Bezeichner
Wenn ich die MediaPlayer1 funktionen gleich in der ButtonClick Procedure ausführe funktioniert alles ohne Probleme.
<Glaskugel auspack>
Lass mich raten: MediaPlayer1 ist eine Komponente auf dem Formular TTabbedForm. Und PlaySound ist eine Prozedur, aber keine Methode von TTabbedForm.

Mach mal aus PlaySound eine Methode von TTabbedForm und es wird funktionieren.

</Glaskugel wieder einpack>
Thomas Mueller
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#4

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:16
Hallo.

Als erstes: mach mal das var in procedure playSound() weg.
Als zweites ein paar Fragen die nix mit dem Problem zu tun haben:
- wo ist DataLink in Button1 deklariert?
- warum übergibst du den String nicht direkt an playSound() so wie unten zu sehen
und
- warum stellst du Klammern um den String bei der Deklaration?

Delphi-Quellcode:
 procedure TForm1.playSound(DataLink: string);
 begin
  MediaPlayer1.FileName := DataLink;
  MediaPlayer1.Play;
 end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 playSound('C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\spasti alter.mp3');
end;
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:27
Als erstes: mach mal das var in procedure playSound() weg.
Wieso?

ok ggf. Const aber weg... eher nicht...
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:30
Hallo und willkommen hier...

Ich würde das File als Konstante anlegen. Wenn du mal an verschieden Stellen den gleichen Sound hast, brauchtst nur die Konstante ändern.
Delphi-Quellcode:
const
  conSoundBlubb = 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\spasti alter.mp3'
  conSoundBla = 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\spasti neuer.mp3'
.
.
.
procedure TForm1.playSound(DataLink: string);
 begin
  MediaPlayer1.FileName := DataLink;
  MediaPlayer1.Play;
 end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 playSound(conSoundBla);
end;
.
procedure TForm1.Button6Click(Sender: TObject);
begin
 playSound(conSoundBla);
end;
.
procedure TForm1.Button7Click(Sender: TObject);
begin
 playSound(conSoundBlubb);
end;
PS: Gewöhne dir gleich zu Anfang an, vernünftige Bezeichnungen für die Komponenten, Variablen, Objekte etc. zu verwenden.

Geändert von haentschman (19. Mär 2017 um 15:36 Uhr)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#7

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:33
Als erstes: mach mal das var in procedure playSound() weg.
Wieso?

ok ggf. Const aber weg... eher nicht...
Hast recht. Aber var ist doch total unnötig. const ist da schon besser. Also entweder nix oder const aber nicht var.
  Mit Zitat antworten Zitat
Sveni795

Registriert seit: 19. Mär 2017
6 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:35
Hallo.

Als erstes: mach mal das var in procedure playSound() weg.
Als zweites ein paar Fragen die nix mit dem Problem zu tun haben:
- wo ist DataLink in Button1 deklariert?
- warum übergibst du den String nicht direkt an playSound() so wie unten zu sehen
und
- warum stellst du Klammern um den String bei der Deklaration?

Delphi-Quellcode:
 procedure TForm1.playSound(DataLink: string);
 begin
  MediaPlayer1.FileName := DataLink;
  MediaPlayer1.Play;
 end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 playSound('C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\spasti alter.mp3');
end;

Vielen Dank für die Antworten.

Die vielen Formatfehler etc kommen einfach daher das ich eigentlich nur C gelernt habe und mich nun in Pascal einarbeite. Das wird besser.

Wenn ich den String direkt übergebe sagt mir der Compiler es seien zu viele Parameter

DataLink ist global deklariert

Das mit den Klammern habe ich nicht verstanden. Sorry
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#9

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:38
Hallöle...
statt:
Delphi-Quellcode:
DataLink := ('C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3');
...
das:
Delphi-Quellcode:
DataLink := 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3';
...
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#10

AW: Undeklarierter Bezeichner (MediaPlayer)

  Alt 19. Mär 2017, 15:39
Hallo.

Als erstes: mach mal das var in procedure playSound() weg.
Als zweites ein paar Fragen die nix mit dem Problem zu tun haben:
- wo ist DataLink in Button1 deklariert?
- warum übergibst du den String nicht direkt an playSound() so wie unten zu sehen
und
- warum stellst du Klammern um den String bei der Deklaration?

Delphi-Quellcode:
 procedure TForm1.playSound(DataLink: string);
 begin
  MediaPlayer1.FileName := DataLink;
  MediaPlayer1.Play;
 end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 playSound('C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\spasti alter.mp3');
end;

Vielen Dank für die Antworten.

Die vielen Formatfehler etc kommen einfach daher das ich eigentlich nur C gelernt habe und mich nun in Pascal einarbeite. Das wird besser.

Wenn ich den String direkt übergebe sagt mir der Compiler es seien zu viele Parameter

DataLink ist global deklariert

Das mit den Klammern habe ich nicht verstanden. Sorry
Guck dir meinen Beitrag nochmal an und hau die globale Variable weg die brauchst du nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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 17:16 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