AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TstringList // Form2 daten aus einer anderen Klasse lesen
Thema durchsuchen
Ansicht
Themen-Optionen

TstringList // Form2 daten aus einer anderen Klasse lesen

Ein Thema von sonny2007 · begonnen am 27. Aug 2009 · letzter Beitrag vom 28. Aug 2009
Antwort Antwort
sonny2007

Registriert seit: 27. Aug 2009
39 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Re: TstringList // Form2 daten aus einer anderen Klasse lese

  Alt 28. Aug 2009, 08:50
@Blub. Ich habe jetzt extra nochmal geschaut. ICh finde in meiner MainForm keine weitere Variable mit der Bezeichnung Playlist .

Ich habe mal die Main Unit . Playlist_Klasse , und dir Form2 Unit hier aufgelstet




Main Unit

Delphi-Quellcode:
unit Player_V0_2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Menus, playlist_s0n_Klasse, player_s0n_Klasse,
  ExtCtrls ;

type
  TForm1 = class(TForm)

    Button_Play: TButton;
    Button_previous: TButton;
    Button_stop: TButton;
    Button_next: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    Open: TMenuItem;
    Open_Folder: TMenuItem;
    Save_Playlist: TMenuItem;
    Process: TMenuItem;
    Stop1: TMenuItem;
    Previous: TMenuItem;
    Next: TMenuItem;
    View1: TMenuItem;
    Playlist: TMenuItem;
    FileOpenDialog: TOpenDialog;
    Timer_Ablauf: TTimer;
    Namefield: TPanel;
    Timefield: TPanel;
    CpuField: TPanel;
    ScrollBar_Volume: TScrollBar;
    Label_Volume: TLabel;
    Id3TagInfo1: TMenuItem;
    ScrollBar_Position: TScrollBar;
    N2: TMenuItem;
    Info1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure OpenClick(Sender: TObject);
    procedure Timer_AblaufTimer(Sender: TObject);
    procedure ScrollBar_VolumeChange(Sender: TObject);
    procedure ScrollBar_PositionScroll(Sender: TObject;
      ScrollCode: TScrollCode; var ScrollPos: Integer);
    procedure PlaylistClick(Sender: TObject);
    procedure Button_nextClick(Sender: TObject);
    procedure Button_previousClick(Sender: TObject);
    procedure Info1Click(Sender: TObject);
    procedure Button_PlayClick(Sender: TObject);
    procedure Button_stopClick(Sender: TObject);
    procedure FormClick(Sender: TObject);

 



       

  private
    { Private-Deklarationen }
  public

  end;

  var
  Form1: TForm1;
  sPlayer: Ts0nPlayer;
  posScroll: longword;
  ScrollMAx: integer;
  Const
  BASS_ACTIVE_STOPPED = 0;
  BASS_ACTIVE_PLAYING = 1;
  BASS_ACTIVE_STALLED = 2;
  BASS_ACTIVE_PAUSED = 3;

implementation

uses window_playlist;
{$R *.dfm}


//*************************************************************
//Beim Starten des Hauptfensters wird diese Procedur ausgeführt
//*************************************************************
procedure TForm1.FormCreate(Sender: TObject);
var tempL: real;
begin
      // Objekte erstellen
        sPlayer := ts0nplayer.Create;

      // Bass Engine initialisieren
        sPlayer.BassEngineInit(handle);

      // Anfangs Lautstärke auf 30 % setzen
        tempL:=30;
        sPlayer.Lauststaerke(tempL);

      // ScrollBar für Volume setzen
        scrollbar_Volume.Position := Round(tempL);
end;



//*************************************************************
// Action nach Open Klick
//*************************************************************
procedure TForm1.OpenClick(Sender: TObject);
var sadded: string;
      i : integer;
begin
    // Eigenschaften des Open Dialog setzen
    FileOpenDialog.Title:='Open Files ...';
    FileOpenDialog.Filter:='MP3 Dateien|*.mp3|Wave Dateien|*.wav';
    if FileOpenDialog.Execute then
   for i := 0 to FileOpenDialog.Files.Count - 1 do
      begin
        sAdded:= FileOpenDialog.Files[i] ;
// sPlaylist.AddTrack(sAdded);
        playlist_s0n_Klasse.Playlist.AddTrack(sadded);
      end;


end;



//*************************************************************
// Tímer
//*************************************************************
procedure TForm1.Timer_AblaufTimer(Sender: TObject);
var temp: integer;
    temp2: string;
begin
  Timer_Ablauf.Interval:=100;
  CpuField.Caption:= 'CPU: ' + sPlayer.GetCpuStatus + '%';
  // Wenn die interne Playlist keine Traxx enthält dann werden die Buttons gesperrt
    if playlist_s0n_Klasse.Playlist.Getcount > 0 then
      begin
        Button_Play.Enabled := true;
        Button_previous.Enabled := true;
        Button_Next.Enabled := true;
        Button_Stop.Enabled := true;
      end else
      begin
        Button_Play.Enabled := false;
        Button_previous.Enabled := false;
        Button_Next.Enabled := false;
        Button_Stop.Enabled := false;
      end;
   // Wenn Wiedergabe gestartet wird der Position Regler freigegeben und die Zeiten aktualisiert
    if splayer.GetBassStatus = BASS_ACTIVE_PLAYING then
     begin

       ScrollBar_Position.Enabled := true ;
       temp:= Round( sPlayer.GetTrackTimeRunSec / sPlayer.GetTrackTimeLoadSec * 1000);

      if ScrollBar_Position.Tag = 0 then
       ScrollBar_Position.Position:= temp;
       Namefield.Caption:=extractfilename(playlist_s0n_Klasse.Playlist.ActTrackName);
       TimeField.Caption:= sPlayer.GetActualTime + '/' + splayer.GetTrackTimeRun;
     end;

    if Scrollbar_Position.Position = 1000 then
      begin
        temp2:= playlist_s0n_Klasse.Playlist.GetNextTrackName;
        sPlayer.Abspielen(temp2);
      end;

end;



//*************************************************************
// Volume Scroller
//*************************************************************
procedure TForm1.ScrollBar_VolumeChange(Sender: TObject);
var tempScroll: real;
begin
    tempScroll:=ScrollBar_Volume.Position / 100;
    sPlayer.Lauststaerke(tempScroll);
    Label_Volume.Caption:=(FloatToStr(tempScroll*100)) + ' %';
end;





//Button Play
procedure TForm1.Button_PlayClick(Sender: TObject);
begin
  playlist_s0n_Klasse.Playlist.PlayActTrack;
end;

//Button Next Track
procedure TForm1.Button_nextClick(Sender: TObject);
begin
playlist_s0n_Klasse.Playlist.PlayNextTrack;
end;

//Button Previous Track
procedure TForm1.Button_previousClick(Sender: TObject);
begin
playlist_s0n_Klasse.Playlist.PlayPreviousTrack;
end;

//Button Stop
procedure TForm1.Button_stopClick(Sender: TObject);
begin
playlist_s0n_Klasse.Playlist.StopActTrack;
ScrollBar_Position.Position:=0;
end;




//ScrollBar Action nach beenden des Scrollens
procedure TForm1.ScrollBar_PositionScroll(Sender: TObject;
  ScrollCode: TScrollCode; var ScrollPos: Integer);
begin
    if Scrollcode = scEndScroll then
    begin
    ScrollMax:=ScrollBar_Position.Max;
    posScroll:= ScrollBar_Position.Position;
    sPlayer.SetPosition(posScroll,ScrollMax);
    ScrollBar_Position.Tag:=0;
    end else
    ScrollBar_Position.Tag:=1;

end;

// Menu Einträge die angelkickt werden


//Menu View - Show - Anzeigen des Playlist Fensters
procedure TForm1.PlaylistClick(Sender: TObject);
begin
Form2.Show;
end;

// Menu ? - Info
procedure TForm1.Info1Click(Sender: TObject);
begin
ShowMessage('programmed by s0n: Version 0.2');

end;



procedure TForm1.FormClick(Sender: TObject);
begin
showMessage(inttostr(playlist_s0n_Klasse.Playlist.Getcount));
end;


end.
Playlist_Klasse

Delphi-Quellcode:
unit playlist_s0n_Klasse;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bass, StdCtrls, ComCtrls, IniFiles, player_s0n_klasse;


type
  Ts0nplaylist = class
  scPlayList: THashedStringList ; // In dieser Liste werden die Namen der Traxx gespeichert
  scActTrackIndex: Integer; // Variable für den aktuellen TrackIndex
  sPlayer: Ts0nPlayer; // Player Klassenverknüpfung setzen
  constructor Create;
  destructor Destroy; override;

  private

  public

  procedure AddTrack(var scFile: String); // Fügt einen Track zu der String List
  function GetNextTrackIndex: Integer; // Ermittelt die nächste Track Indexnummer
  function GetNextTrackName: String; // Ermittel den nächsten Tracknamen ( benötigt die nächste Indexnummer )
  function GetPreviousTrackIndex: Integer; // Ermittelt die vorherige Track Indexnummer
  function GetPreviousTrackName: String; // Ermittelt den vorherigen Tracknamen
  function Getcount: integer; // Gesamtanzahl der Einträge in der StringList
  function ActTrackName: String; // Gibt den Eintrag aus der per Index augerufen wurde

  procedure PlayActTrack; // aktuellen Track abspielen
  procedure PlayNextTrack; // nächsten Track abspielen
  procedure PlayPreviousTrack; // vorherigen Track abspielen
  procedure StopActTrack; // stoppt den aktuell laufen Track
end;

var Playlist: Ts0nPlaylist;

implementation




constructor Ts0nplaylist.Create;
    begin
      inherited create;
      Playlist := Ts0nPlaylist.Create;
      scPlayList := THashedStringList.Create;
      scActTrackIndex:= 0;
    end;

destructor Ts0nplaylist.Destroy;
  begin
    scPlaylist.Free;
    FreeAndNil (Playlist);
    inherited destroy;
  end;


//***********************************************************
// Adden
//***********************************************************
procedure ts0nplaylist.AddTrack(var scFile: String);
  begin
    scPlayList.Add(SCFile);
  end;

//***********************************************************
// Den aktuellen Tracknamen auslesen
//***********************************************************
function Ts0nPlaylist.ActTrackName: String;
  begin
  result:=scPlaylist.Strings[scActTrackIndex];
  end;


//***********************************************************
// Die nächste List Indexnummer auslesen
//***********************************************************
function ts0nplaylist.GetNextTrackIndex: Integer;
  begin
    if scActTrackIndex = scPlaylist.Count-1 then
    begin
    scActTrackIndex := 0;
    end else
    begin
    scActTrackIndex := scActTrackIndex + 1;
    end;
    result:=scActTrackIndex;
  end;

//***********************************************************
// Die vorherige List Indexnummer auslesen
//***********************************************************
function ts0nplaylist.GetPreviousTrackIndex: Integer;
  begin
if scActTrackIndex = 0 then
    begin
    scActTrackIndex := scPlaylist.Count-1;
    end else
    begin
    scActTrackIndex := scActTrackIndex -1 ;
    end;
    result:=scActTrackIndex;
  end;

//***********************************************************
// Den nächsten Track Name auslesen
//***********************************************************
function ts0nplaylist.GetNextTrackName: String;
  begin
    result:= scPlaylist.Strings[GetNextTrackIndex];
  end;


//***********************************************************
// Den vorherigen Track Name auslesen
//***********************************************************
function ts0nplaylist.GetPreviousTrackName: String;
  begin
    result:= scPlaylist.Strings[GetPreviousTrackIndex];
  end;


//***********************************************************
// Count ausgeben
//***********************************************************
function ts0nplaylist.getcount: integer;
begin
    result:=scPlaylist.Count;
end;


//***********************************************************
// Den aktuellen Track abspielen
//***********************************************************
procedure Ts0nPlaylist.PlayActTrack;
var sct: string;
  begin
    case sPlayer.BassStatus of

      BASS_ACTIVE_STOPPED:
      begin
      sct:=ActTrackName;
      sPlayer.Abspielen(sct);
      end;
      BASS_ACTIVE_PLAYING: sPlayer.Pausieren;
      BASS_ACTIVE_PAUSED: sPlayer.Fortsetzen;
      end;
end;
//***********************************************************
// Den nächsten Track abspielen
//***********************************************************
procedure Ts0nPlaylist.PlayNextTrack;
var sct: string;
  begin
  sct:= GetNextTrackName;
  sPlayer.Abspielen(sct);
  end;
//***********************************************************
// Den vorherigen Track abspielen
//***********************************************************
procedure Ts0nPlaylist.PlayPreviousTrack;
var sct: string;
  begin
  sct:= GetPreviousTrackName;
  sPlayer.Abspielen(sct);
  end;
//***********************************************************
// Den aktuellen Track stoppen
//***********************************************************
procedure Ts0nPlaylist.StopActTrack;
  begin
  sPlayer.Stoppen;
  end;


end.
Form2 Unit

Delphi-Quellcode:
unit window_playlist;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,playlist_s0n_Klasse, player_s0n_Klasse, ComCtrls;

type
  TForm2 = class(TForm)
    MainPlayList: TListView;
    procedure FormActivate(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}







procedure TForm2.FormActivate(Sender: TObject);
var myList : TListItem;
begin
myList := MainPlayList.Items.Add;
myList.Caption:=Playlist.ActTrackName;

end;


end.
Ich hoffe das war jetzt nicht zu viel.Was muß ich in der Main Unit ändern damit ich dieses Chaos beseitigen kann.

mfg s0n
  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 23:20 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