![]() |
AW: Undeklarierter Bezeichner (MediaPlayer)
Zitat:
|
AW: Undeklarierter Bezeichner (MediaPlayer)
Zitat:
Code:
Hier mal der ganze Code.
unit TabbedTemplate;
interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.TabControl, FMX.StdCtrls, FMX.Gestures, FMX.Controls.Presentation, FMX.Media; type TTabbedForm = class(TForm) HeaderToolBar: TToolBar; ToolBarLabel: TLabel; TabControl1: TTabControl; TabItem1: TTabItem; TabItem2: TTabItem; TabItem3: TTabItem; TabItem4: TTabItem; GestureManager1: TGestureManager; Button1: TButton; MediaPlayer1: TMediaPlayer; procedure FormCreate(Sender: TObject); procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); procedure Button1Click(Sender: TObject); procedure PlaySound; private { Private declarations } public { Public declarations } end; const conSoundAlter = 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3'; var TabbedForm: TTabbedForm; implementation {$R *.fmx} procedure TTabbedForm.FormCreate(Sender: TObject); begin { This defines the default active tab at runtime } TabControl1.ActiveTab := TabItem1; end; procedure TTabbedForm.FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin {$IFDEF ANDROID} case EventInfo.GestureID of sgiLeft: begin if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount - 1] then TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex + 1]; Handled := True; end; sgiRight: begin if TabControl1.ActiveTab <> TabControl1.Tabs[0] then TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex - 1]; Handled := True; end; end; {$ENDIF} end; procedure TTabbedForm.Button1Click(Sender: TObject); begin TTabbedForm.playSound(conSoundAlter); end; procedure TTabbedForm.playSound(DataLink); begin MediaPlayer1.FileName := DataLink; MediaPlayer1.Play; end; end. |
AW: Undeklarierter Bezeichner (MediaPlayer)
Ich korrigiere den mal durch. Moment... 8-) Benutze bitte den Delphi Helm Button statt dem Code Button. Da hat man auch den Delphi Style...
Tipps: * Benutze einen CodeFormatter bist du einigermaßen sicher bist. * Verwende sprechende Namen. In 2 Monaten weißt du nicht mehr was Label245 ist. 8-) * Die Variablen/ Namen haben keine Längenbegrenzung. :warn: Deshalb gibt es keine Notwendigkeit für Abkürzungen.
Delphi-Quellcode:
unit TabbedTemplate;
interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.TabControl, FMX.StdCtrls, FMX.Gestures, FMX.Controls.Presentation, FMX.Media; const conSoundAlter = 'C:\Users\Sven\Documents\Embarcadero\Studio\Projekte\Soundbord\Sounds\xx.mp3'; type TTabbedForm = class(TForm) HeaderToolBar: TToolBar; ToolBarLabel: TLabel; TabControl1: TTabControl; // bitte bessere Namen...automatisch mit Namensveränderung über den OI TabItem1: TTabItem; // bitte bessere Namen...automatisch mit Namensveränderung über den OI TabItem2: TTabItem; // bitte bessere Namen...automatisch mit Namensveränderung über den OI TabItem3: TTabItem; // bitte bessere Namen...automatisch mit Namensveränderung über den OI TabItem4: TTabItem; // bitte bessere Namen...automatisch mit Namensveränderung über den OI GestureManager1: TGestureManager; // bitte bessere Namen...automatisch mit Namensveränderung über den OI Button1: TButton; // bitte bessere Namen...automatisch mit Namensveränderung über den OI MediaPlayer1: TMediaPlayer; // bitte bessere Namen...automatisch mit Namensveränderung über den OI procedure FormCreate(Sender: TObject); procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); procedure Button1Click(Sender: TObject); // bitte bessere Namen...automatisch mit Namensveränderung über den OI private procedure PlaySound(DataLink: string); // hier fehlt der Parameter mit Typ .... Sichtbarkeit private besser public { Public declarations } end; var TabbedForm: TTabbedForm; implementation {$R *.fmx} procedure TTabbedForm.FormCreate(Sender: TObject); begin { This defines the default active tab at runtime } TabControl1.ActiveTab := TabItem1; end; procedure TTabbedForm.FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin {$IFDEF ANDROID} case EventInfo.GestureID of sgiLeft: begin if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount - 1] then // then gehört in die gleiche Zeile begin // begin/end ... besser auch wenn es bei einzeiligen Anweisungen nicht nötig ist TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex + 1]; end; Handled := True; end; sgiRight: begin if TabControl1.ActiveTab <> TabControl1.Tabs[0] then begin // begin/end ... besser auch wenn es bei einzeiligen Anweisungen nicht nötig ist TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex - 1]; end; Handled := True; end; end; {$ENDIF} end; procedure TTabbedForm.Button1Click(Sender: TObject); begin playSound(conSoundAlter); // TTabbedForm.playSound ist ganz falsch! Du greifst nicht auf die Instanzvariable, das wäre "TabbedForm"", zu sondern auf die Klasse. // da die Sichtbarkeit nun private ist kannst du das "TabbedForm" auch weglassen end; procedure TTabbedForm.playSound(DataLink: string); begin // verschoben MediaPlayer1.FileName := DataLink; MediaPlayer1.Play; end; end. |
AW: Undeklarierter Bezeichner (MediaPlayer)
Delphi-Quellcode:
Ist doch klar, dass das nicht funktioniert.
procedure PlaySound;
// und procedure TTabbedForm.playSound(DataLink); |
AW: Undeklarierter Bezeichner (MediaPlayer)
Vielen lieben Dank an alle.
Ich weiß ich muss noch eine Menge lernen!... Ganz liebe Grüße und nochmals Danke für die Geduld:roll::roll::roll: |
AW: Undeklarierter Bezeichner (MediaPlayer)
:thumb:
Bitteschön. So lange du deinen Beitrag zu lernen leistest, wirst du hier immer kompetente Hilfe finden. :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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