Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   StringList weiter reichen zur Eigentliche Klasse (https://www.delphipraxis.net/102542-stringlist-weiter-reichen-zur-eigentliche-klasse.html)

mimi 1. Nov 2007 11:58

Re: StringList weiter reichen zur Eigentliche Klasse
 
Zitat:

TForm1.FormCreate(Sender: TObject);
begin
PlayListeManger:=TPlaylistenManger.Create;
// AUCH WENN ICH HIER LISTBOX1.ITEMS schreibe wird Memo1.Lines gefüllt.
// Wenn ich memo1.lines schreibe hängt sich das Programm beim ausführen auf.
PlayListeManger.PlayListItems:=Memo1.Lines; // <<< Ich denke du willst ListBox.Items und nicht Memo1.Lines
// genau davon habe ich geredet...
end;


mimi hat folgendes geschrieben:
Das habe ich nur zum testen gemacht um zu sehen was passiert vorher stand da auch Listbox1.items

Zitat:

Diese Zuweisung sollte der Compiler nichtmal akzeptieren ohne harten Typecast
Ich meinte eigentlich die Lines Eigenschaft von Memo1, ich dachte das wüsstest du.....

Also unter Delphi wird die Listbox gefüllt

edit:
ich habe die frage jetzt doch unter
http://www.lazarusforum.de/viewtopic.php?p=14145#14145
gestellt.
mal sehen was "die" sagen werden. Ich bin mir sicher es handelt sich um ein Pointer Problem.

Muetze1 1. Nov 2007 12:13

Re: StringList weiter reichen zur Eigentliche Klasse
 
Leider habe ich hier im Forum gelernt, dass man nicht einfach Annahmen treffen kann bezüglich offensichtlicher Aussagen.

Und zu dem Pointer Problem: ich bin noch immer zu 99.9% davon überzeugt, dass es nicht an Lazarus sondern am Code liegt. Ich habe hier auf Arbeit kein Lazarus und werde es mir heute Abend zu Hause anschauen.

mimi 1. Nov 2007 12:16

Re: StringList weiter reichen zur Eigentliche Klasse
 
Danke !

Ich verstehe das nicht mehr, ich weiße nirgend Memo1.Lines zu einer anderen TSTringlist

lösche ich das Memo1 hängt sich das Programm auf.

Ist das nicht beweis genug ?

mimi 1. Nov 2007 12:23

Re: StringList weiter reichen zur Eigentliche Klasse
 
wenn ich:
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject); // Öffnen
begin
  PlayListeManger.PlayListItems:=Listbox1.items;
  PlayListeManger.LoadFromFile('/media/hda7/Daten/music/entspannung.m3u');

end;
Geht es wie gewünscht. der Unterschied ist das ich
PlayListeManger.PlayListItems:=Listbox1.items;
nicht schon in OnCreate zuweise sondern erst wenn es gebraucht wird.

Muetze1 1. Nov 2007 19:55

Re: StringList weiter reichen zur Eigentliche Klasse
 
Das Problem liegt einfach nur daran, dass du die im PlaylistenManager hinterlegte Instanz der Items nicht beim InitPlaylist() - also anlegen der Instanz - deren Eigenschaft weiterreichst. Wenn du dies dort machst, brauchst du diese Zuweisung nicht mehr.

Grundlegend habe ich debuggt mit Lazarus und Lazarus hat ein Problem mit dem AddObject() mit dem Info. Anscheinend meint er, dass die TInfo Instanz nicht mehr existiert. Der Debugger ist leider keine Hilfe und in den Komponentenquelltext komme ich nicht reindebuggt. Grundlegend scheint es wirklich ein Lazarus Problem zu sein. Warum ist eine andere Frage.

Also: auch wenn ich es wirklich nicht geglaubt habe durch dieses abstruse Verhalten, so sind doch die 0.1% eingetreten und es ist ein Fehler von Lazarus (meines Erachtens). Somit: sorry, aber das konnte ich wirklich nicht glauben. Das ist wirklich zu abstrus. Aber ich nehme alles zurück und behaupte nun das Gegenteil. Sorry nochmal.

mimi 2. Nov 2007 12:44

Re: StringList weiter reichen zur Eigentliche Klasse
 
Na macht nix. Vielen Dank für deine Ausführliche Hilfe und Erklärungen.

Hast du evlt. eine Idee, wie ich den Fehler am besten umgehen kann ?

Oder ist meine Lösung evlt. schon die beste: einfach den Ort zu verschieben. Wo die zuweisung stad findet.
Ich frage mich gerade wann eigentlich diese OnCreate von From1 ausgelöst wird.
Sobald das Formular fertig erstellt ist oder ? also wenn alle Komponenten Installisiert wurden sind.

Evlt wird der BUG aber schon in der Nächsten Version behoben sein.

Welche FCL Version hast du ? es gibt da schon eine neuere evlt. tritt der Fehler dort nicht mehr auf.

Zitat:

also anlegen der Instanz - deren Eigenschaft weiterreichst. Wenn du dies dort machst, brauchst du diese Zuweisung nicht mehr.
Das Verstehe ich leider nicht so ganz, kannst du mir das noch einmal genauer Beschreiben ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.
Seite 4 von 4   « Erste     234   

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