Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Undeklarierter Bezeichner (MediaPlayer) (https://www.delphipraxis.net/192089-undeklarierter-bezeichner-mediaplayer.html)

Mavarik 19. Mär 2017 14:45

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Zitat:

Zitat von Sveni795 (Beitrag 1364731)
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 :|

Logisch...

Es gibt verschiede Arten von Übergrabeparamtetern

Delphi-Quellcode:
Procedure Foo(S : String);
Procedure Foo(Var S : String);
Procedure Foo(Const S : String);
Procedure Foo(Out S : String);
Ohne Parameter wird von der übergebenen Variablen eine Kopie erzeugt.
Lokale Änderungen haben keinen Effekt nach außen.
Hier kannst Du auch
Delphi-Quellcode:
Foo('Whatever');
übergeben.

Bei Var, erwartet der Compiler auch eine Variable da diese innerhalb der Procedure änderbar ist. Somit kannst du bei VAR keine Konstante 'Whatever' übergeben.

Const, kann beides übernehmen, da innerhalb der procedure (Compilermagic) der String nicht geändert werden kann...

Out ist fast wie Var - zeigt jedoch, dass die Variable als Ausgabeparameter definiert ist und die Procedure keine Initialisierung hiervon erwartet.

und Klammern weg bedeitet:

Delphi-Quellcode:
S := 'Cool';
und nicht
Delphi-Quellcode:
S := ('Cool');

Mavarik

a.def 19. Mär 2017 14:49

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Ich warte ja noch immer auf einen "Thumbs-Up"-Button, "Danke"-Button oder etwas ähnliches ;)

Sveni795 19. Mär 2017 14:51

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Wahnsinn dieses Feedback :)

So ich habe nun die Ratschläge angenommen und entsprechend angepasst:

Code:
  const
    conSoundxx = 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3';

procedure TTabbedForm.Button1Click(Sender: TObject);
begin
  TTabbedForm.playSound(conSoundxx);
end;

procedure TTabbedForm.playSound(DataLink: string);
 begin
  MediaPlayer1.FileName := DataLink;
  MediaPlayer1.Play;
 end;
Die Variable "DataLink" gibt es nun nicht mehr global, die habe ich gelöscht.
Die wird doch jetzt nur noch local verwendet.

Das Problem, dass der Mediaplayer nicht bezeichnet ist, ist jetzt weg. Aber er mag die "Const" nicht.
Diese habe zu viele Parameter!?

Mavarik 19. Mär 2017 14:51

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Zitat:

Zitat von a.def (Beitrag 1364736)
Ich warte ja noch immer auf einen "Thumbs-Up"-Button, "Danke"-Button oder etwas ähnliches ;)

:thumb: aber wofür?

Mavarik 19. Mär 2017 14:53

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Zitat:

Zitat von Sveni795 (Beitrag 1364737)
Aber er mag die "Const" nicht.
Diese habe zu viele Parameter!?

Hast Du Const auch in der Deklaration angegeben? Also einmal "oben" und "unten"?

a.def 19. Mär 2017 14:55

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Zitat:

Aber er mag die "Const" nicht.
So etwas musst du dir unbedingt abgewöhnen. Das ist genau wie... "Mein PC geht nicht" oder "... funktioniert nicht". :stupid:

haentschman 19. Mär 2017 15:09

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Zitat:

Aber er mag die "Const" nicht.
Schreibe mal die Konstante im Interface Teil:
Delphi-Quellcode:
interface

const
  conSoundxx = 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3';

uses

type
...
Vielleicht solltest du den Delphi Crashkurs dir mal reinziehen... Da erfährst du viel über den Aufbau. Wo gehört was hin...
Crashkurs:
https://www.delphi-treff.de/tutorial...phi-crashkurs/
E-Book:
https://www.delphi-treff.de/downloads/e-book/

Sveni795 19. Mär 2017 15:15

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Zitat:

Zitat von haentschman (Beitrag 1364742)
Zitat:

Aber er mag die "Const" nicht.
Schreibe mal die Konstante im Interface Teil:
Delphi-Quellcode:
interface

const
  conSoundxx = 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3';

uses

type
...
Vielleicht solltest du den Delphi Crashkurs dir mal reinziehen... Da erfährst du viel über den Aufbau. Wo gehört was hin...
Crashkurs:
https://www.delphi-treff.de/tutorial...phi-crashkurs/
E-Book:
https://www.delphi-treff.de/downloads/e-book/


Danke, werde ich jetzt erst mal machen.

Stand jetzt habe ich das zwar im Interface gemacht. Aber er sagt mir immer bei:
Code:
procedure TTabbedForm.Button1Click(Sender: TObject);
begin
  TTabbedForm.playSound(conSoundAlter);
end;
Fehler "Zu viele Parameter"

Aber wie du schon gesagt hast werde ich mir jetzt die Crashkurse zurerst reinziehen!

haentschman 19. Mär 2017 15:17

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Hänge das komplette Projekt (ZIP) mal an. Da können wir das mal durchgehen und die Fehler mit Kommentaren markieren. :thumb:

Mavarik 19. Mär 2017 15:19

AW: Undeklarierter Bezeichner (MediaPlayer)
 
Zitat:

Zitat von Sveni795 (Beitrag 1364743)
Fehler "Zu viele Parameter"

Jetzt wird es anstrengend...

Poste doch mal den Sourcecode und nicht immer nur eine Zeile... Da können wir auch nix sehen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.
Seite 2 von 3     12 3      

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