Autor Beitrag
Claus_R
Hält's aus hier
Beiträge: 7

win xp, win7
Delphi 7, Delphi XE
BeitragVerfasst: Fr 29.06.12 14:50 
Hallo,

ich schreibe hier erst meinen zweiten Beitrag. Ich bin aber ein fleißiger Leser des Forums und habe mir hier schon
allerhand Tipps geholt. Besonders bei Gausi's MEMP Tutorial. Danke dafür.

Nun eines der Ergebnisse.


Ich habe eine visuelle Komponente für die bass.dll geschrieben. Hier wird auch die tags.dll benutzt.

Es handelt sich um einen kleinen Player, der als Komponente installiert werden muß und dann einfach auf ein Formular gezogen wird.

Getestet habe ich mit Delphi 7 und XE, win7 und xp. Bei mir klappts.

Allerdings muss mann die dll's in \windows\system32 ablegen, sonst könnte es sein, dass XE meckert.

Die Grundkomponente ist ein TPanel.

Zip Version hier.

Zip Version Demo hier.

Im zip sind auch bass.pas, tags.pass und die entsprechenden dll's.

Ebenso findet ihr da eine Dokumentation.



// Edit: Für Anregungen bin ich natürlich gerne zu haben. Auch für konstruktive Kritik und weitere Ideen.

Gruß

Claus


Zuletzt bearbeitet von Claus_R am Sa 03.05.14 12:24, insgesamt 5-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8432
Erhaltene Danke: 439

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.2 CE
BeitragVerfasst: Sa 30.06.12 18:36 
Die Idee is ja erstmal nicht schlecht.

Zum Testen wäre aber ein kleines Demo-Projekt schön, damit man sich das mal anschauen kann, ohne erst die Komponente installieren zu müssen. :D

_________________
Oel ngati kameie.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18734
Erhaltene Danke: 1631

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 30.06.12 20:24 
user profile iconClaus_R hat folgendes geschrieben Zum zitierten Posting springen:
Allerdings muss mann die dll's in \windows\system32 ablegen, sonst könnte es sein, dass XE meckert.
Das liegt daran, dass du die DLL nicht dynamisch lädst. Das würde ich aber dringend empfehlen.
Erstens kannst du das dann einfach nicht machen, wenn man im Designmodus ist, und zweitens kann man dann eine Fehlermeldung anzeigen, wenn die DLL beim Start fehlt statt dass einfach die Fehlermeldung von Windows kommt.

Die notwendige Unit dafür findest du auch auf der Bass-Seite unter "Delphi dynamic loading API":
www.un4seen.com/bass.html

Ansonsten reicht es auch die DLLs in einen Pfad zu legen, der im Systempfad ist (sprich der Umgebungsvariablen PATH), das muss nicht das Systemverzeichnis sein.

Und um einmal ein Beispiel zu ergänzen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
type
  TFormXYZ = class(TForm)
    dlgOpen: TOpenDialog;
  private
    var
      FPlayer: TPanelPlayer;
  public
  end;

// erstellen
  FPlayer := TPanelPlayer.Create(Self);
  FPlayer.Parent := Self;
  FPlayer.Align := alClient;
  FPlayer.SelfInit := True;
  FPlayer.Number := 1;

// abspielen
  if dlgOpen.Execute then
  begin
    FPlayer.Filename := dlgOpen.FileName;
    FPlayer.Play(nil);
  end;

Und weil du in der PDF-Datei deinen Programmierstil ansprichst bzw. dass dazu keiner was sagen soll:
Der ist doch (abgesehen von der Groß- und Kleinschreibung) gar nicht schlecht. ;-)
Claus_R Threadstarter
Hält's aus hier
Beiträge: 7

win xp, win7
Delphi 7, Delphi XE
BeitragVerfasst: So 01.07.12 09:52 
Hallo Stefan,

ich werde mal das dynamische Laden implementieren.

Danke für den Tip.

Eine Demo zum downloaden findet ihr im ersten Beitrag.

Gruß

Claus