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.