![]() |
Re: StringList weiter reichen zur Eigentliche Klasse
Liste der Anhänge anzeigen (Anzahl: 1)
So, habe das ganze getestet und klappt alles einwandfrei. Ich habe das komplette (Delphi) Projekt angehangen. Die Konsolenanwendung sollte sich leicht zu Lazarus umsetzen lassen. Zur Not kann ich das sonst auch noch machen.
Ich habe B'n'D noch mal schnell aus den M3U extendend info Einträgen die Spielzeit mit ausgelesen und gebe diese mit aus. Die Ausgabe des Programmes ist doppelt. Einmal die Ausgabe von deiner Laderoutine und einmal die von der Main Procedure im Projectfile (diese ist dann mit Spieldauer). Die M3U muss als Parameter mitgegeben werden. |
Re: StringList weiter reichen zur Eigentliche Klasse
Zitat:
Zitat:
und das geht meiner meinung nach nur so. Ich habe mir in deinem Beispiel Projekt die dpr angeschaut, aber so habe ich mir das eigentlich nicht vorgestellt:
Delphi-Quellcode:
warum gibst du hier PLM wieder frei ? Ich möchte ihn ja später noch verwenden.
lList := TStringList.Create;
try PLM := TPlaylistenManger.Create; try PLM.PlaylistItems := lList; PLM.LoadFromFile(ParamStr(1)); finally PLM.Free; end; Trotzdem, vielen Dank für deine Hilfe. Wie könnte ich mein Problem noch beschreiben, damit du es verstehst ? Also nochmal: Ich erstelle in meine From1.pas eine Variable von Typ TPlaylistenManger und die heißt PlayListeManger. Beim erstellen von From1 also im OnCreate Event. verknüpfe ich die TStrings von ListBox1.items mit "PlayListeManger.PlaylistItems" das das sie gleich sind. Beim Laden wieder hole ich das im Prinzip wieder: Dort verknüpfe ich bei der Angebenden Playliste. Wenn ich jetzt bei TPlayListM3U auf PlaylistItems zugreife müsste ich doch jetzt eigentlich die Listbox1.Items ansprechen, oder nicht ? und genau hier kommt es zu einem Fehler. Aber ich weiß nicht wo. Ich könnte es nur mit einem Event lösen. Aber das finde ich blöd.. weil das mehr Aufwand bedeuten würde. Edit: Wenn ich jetzt intern von einer anderen Procedure aus auf "PlayListeManger.PlayListItems zugreife ist diese einfach leer. Die Listbox ist aber gefüllt. Sollte die "Verbindung" aufgehoben wurden sein ? |
Re: StringList weiter reichen zur Eigentliche Klasse
Das Seltsamme ist, so wird die richtige anzahl ausgeben.
Delphi-Quellcode:
Die Listbox ist aber gefüllt.
procedure TForm1.FormCreate(Sender: TObject);
begin PlayListeManger:=TPlaylistenManger.Create; PlayListeManger.PlayListItems:=ListBox1.Items; PlayListeManger.LoadFromFile('/media/hda7/Daten/music/entspannung.m3u'); writeln(PlayListeManger.PlaylistItems.Count); end; // So aber nicht wird nur 0 Ausgeben. procedure TForm1.SpeedButton5Click(Sender: TObject); begin writeln(PlayListeManger.PlaylistItems.Count); end; |
Re: StringList weiter reichen zur Eigentliche Klasse
Zitat:
Und es geht noch anders. Du kannst dir, um in einem anderen Playlistenformat zu exportieren, dir einfach in der Playlisten-Basisklasse eine Methode bauen, welche die Titelinformationen aus einer anderen Playlisten-Basisklasse übernimmt. Somit sieht dein Export im Playlistenmanager so aus: (Pseudocode):
Code:
Export(AFileName, AType)
var lExportPlaylist: TBasePLaylist; begin lExportPlaylist := CreatePlaylist(AType); try lExportPlaylist.ÜbernehmeTitel( fPlaylist ); lExportPlaylist.SaveToFile( AFilename ); finally lExportPlaylist.Free; end; end; Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: StringList weiter reichen zur Eigentliche Klasse
um umwandeln: Nein, dein code ist mir zu aufwendig.
da gebe ich lieber Playliste beim Speichern einfach wieder frei, wenn es belegt. Ich habe den Code mehrfach geprüft und konnte keinen Fehler Feststellen. Naja, evlt. finde ich den Fehler noch. |
Re: StringList weiter reichen zur Eigentliche Klasse
Wenn ich das was ich bei onCreate im From1 drin stehen habe, in einem Button Verschiebe und klicke dann geht das alles wie ich es mir Vorgestellt habe.
Aber wie kann das angehen ? |
Re: StringList weiter reichen zur Eigentliche Klasse
Wenn ich das so habe, wird das Memo gefüllt:
Delphi-Quellcode:
und nicht die Listbox. Ich denke das es sich hierbei um einen Lazarus BUG handeln muss.
procedure TForm1.FormCreate(Sender: TObject);
begin PlayListeManger:=TPlaylistenManger.Create; PlayListeManger.PlayListItems:=ListBox1.Items; end; Ich glaube ich sollte die Frage noch mal im Lazarus-Forum stellen. Vielen Dank, für deine Mühevolle Hilfe. |
Re: StringList weiter reichen zur Eigentliche Klasse
1. Es gibt da oben rechts bei deinen Einträgen einen recht nützlichen "EDIT" Button.
2. Zitat:
3. Zitat:
|
Re: StringList weiter reichen zur Eigentliche Klasse
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Da du dich anscheind mit Lazarus auskennst, habe ich mal das gesammte Projekt Angehangen ich glaube ja auch das es mein Fehler ist, aber so langsam glaube ich das liegt gar nicht an mir. Nach dem was ich gestern gesehen habe. Ich verwende Memo1 nur einmal und das ist beim Klicken. auf die Listbox. zu1: ist mir bekannt..... edit:
Delphi-Quellcode:
Wenn ich das Memo1 direkt zuweise, hängt sich das Programm beim ausführen auf.
procedure TForm1.FormCreate(Sender: TObject);
begin PlayListeManger:=TPlaylistenManger.Create; PlayListeManger.PlayListItems:=Memo1.Lines; end; Ich vermute es liegt ein Pointer Problem vor, was direkt oder indirekt mit Lazarus zu tun hat. Evlt. werde ich es mal unter Delphi testet, wie es sich dort verhält. Wenn es da klappt, dann ist es doch beweisen, das es ein Lazarus Problem ist oder ? |
Re: StringList weiter reichen zur Eigentliche Klasse
Zitat:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin PlayListeManger:=TPlaylistenManger.Create; PlayListeManger.PlayListItems:=Memo1.Lines; // <<< Ich denke du willst ListBox.Items und nicht Memo1.Lines // genau davon habe ich geredet... end; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 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