![]() |
Lauftext arbeitet nicht korrekt
Hi,
ich habe eine Methode einen Lauftext zu erstellen hier in der DP gefunden. Ich suche über einen Typen den Titel und den Artisten eines Liedes heraus. Ich möchte dann beides in folgender Form in einen Lauftext unterbringen: Artist - Titel. Bei folgendem Code steht aber nur der Artist da, aber nicht der Titel. Warum ?
Delphi-Quellcode:
lLauftext.Caption := fFiles[lbList.ItemIndex].Artist + ' - ' + fFiles[lbList.ItemIndex].Titel;
// Artist und Titel sind auf jeden Fall vorhanden procedure TfrmMain.tLauftextTimer(Sender: TObject); var hilf, hilfbuchstabe : String; begin if BASS_ChannelIsActive(chan) = BASS_ACTIVE_PLAYING then begin hilf := lLauftext.Caption; hilfbuchstabe := hilf[1]; delete(hilf, 1, 1); hilf := hilf + hilfbuchstabe; lLauftext.Caption := hilf; Application.ProcessMessages; end; end; |
Re: Lauftext arbeitet nicht korrekt
Suche mal in der Code-Lib nach "lauftext" und "laufschrift", da gibt es drei Beispiele. :)
|
Re: Lauftext arbeitet nicht korrekt
Keines der Beispiele funktioniert mit der ID3-Tag-Zuweisung.
|
Re: Lauftext arbeitet nicht korrekt
Hallo Nils,
es kommt darauf an, wie du das Feld Artist gefüllt hast. Setze einen break point vor der ersten Zuweisung an lLaufText.Caption und schau dir den Inhalt mal an:
Delphi-Quellcode:
Vermutlich hast du es geschafft einen gezählten string terminator (#0) an das Ende von Artist du pappen.
var
s: String; begin ... with fFiles[lbList.ItemIndex] do begin s := Artist + ' - ' + Titel; lLauftext.Caption := s; // hier anhalten und s inspizieren end; ... end; Grüße vom marabu |
Re: Lauftext arbeitet nicht korrekt
Ja, da sind mehrere #0. Wie bekomme ich die weg ?
|
Re: Lauftext arbeitet nicht korrekt
Am Besten ist es, du lässt sie erst garnicht hinein gelangen. Schau dir mal akribisch den Code an, mit dem du die Felder Artist und Titel füllst.
marabu |
Re: Lauftext arbeitet nicht korrekt
Ich habe keinen Fehler gefunden, vielleicht findet ihr ja einen:
Delphi-Quellcode:
procedure TfrmMain.AddFiles(files : Array of String);
var len : integer; i : integer; begin len := Length(fFiles); SetLength(fFiles, len + Length(files)); for i := 0 to pred(length(files)) do begin fFiles[len+i] := ReadID3Tag(files[i]); end; UpdateListBox; end; procedure TfrmMain.UpdateListBox; var i : integer; begin lbList.Items.BeginUpdate; lbList.Clear; for i := 0 to pred(length(fFiles)) do begin lbList.Items.Add(trim(fFiles[i].Artist) + ' - ' + trim(fFiles[i].Titel)); end; lbList.Items.EndUpdate; end; |
Re: Lauftext arbeitet nicht korrekt
Liste der Anhänge anzeigen (Anzahl: 1)
...kann es sein, das die mp3 verschiede Versionen des ID3 Tags
haben? Es gibt Unterschiede zwischen ID3TagV2 und ID3TagV3.2 Vgl. hier: ![]() lbList.Items.Add(trim(fFiles[i].Artist) + ' - ' + trim(fFiles[i].Titel)) Wie schauen denn die Variablen ....Artist und ...Titel aus wenn Du sie Dir mit Ctrl-F5 anschaust? Kannst Du die ReadId3Tag Funktion auch noch einstellen? Aus einem Projekt von mir lese ich die ID3Tags so ein:
Delphi-Quellcode:
Die angehängte Unit wird dazu benötigt.
procedure FillID3TagInformation(mp3File:string;VAR ID3:TID3Rec);
var //fMP3: file of Byte; id3v2Tag : TID3v2; begin id3v2Tag := TID3v2.Create; if id3v2tag.ReadFromFile(mp3File) then begin id3.Title:=''; id3.Artist:=''; id3.Album:=''; id3.title:=id3v2tag.Title; id3.artist:=id3v2tag.artist; id3.album:=id3v2tag.album; if id3.artist = '' then id3.artist := 'no artist'; if id3.Album = '' then id3.Album:= 'no album'; if id3.Title = '' then id3.Title := 'no title'; end; id3v2Tag.Free; end; Grüße Klaus |
Re: Lauftext arbeitet nicht korrekt
Hm, ich möchte eigentlich bei meiner Methode bleiben, damit bin ich auch eigentlich zufrieden, aber ich weiß nicht, wie ich die #0-Zeichen da rausholen kann.
|
Re: Lauftext arbeitet nicht korrekt
Hallo Nils,
Klaus hat es ja schon konkret angefragt:
Delphi-Quellcode:
Mit der Routine ReadID3Tag() scheinst du die low values in die Strings der Struktur ID3Tag hinein zu bringen - dort musst du suchen oder den Code für die Routine mal zeigen.
fFiles[len+i] := ReadID3Tag(files[i]);
Gute Nacht marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:05 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