Einzelnen Beitrag anzeigen

MaGe

Registriert seit: 19. Jan 2007
18 Beiträge
 
#1

Anfängerfrage wegen TStringList

  Alt 1. Feb 2007, 21:18
Moin, moin,

nachdem ich in Delphiforen immer wieder auf CD/Musik - Verwaltungsprogramme in Rahmen von Fragen gestossen bin, dachte ich mir probier ich halt auch mal das "Hello World"-Delphi Program.
Soweit so gut, nun stosse ich wohl gerade auf ein total triviales Problem wo ich - uhh- einfach nicht weiter weiss und meine versuche in meiner Delphi7 offline Hilfe, meine schlaues Buch und die Forensuche hier nicht weiter hilft. (Bestimmt steht hier die Lösung irgendwo aber ich finde die nicht )
Ich hab folgende Klasse:
Delphi-Quellcode:
type
  TCD = class(TObject)
    interpret : string;
    albumTitle : string;
    genre : string;
    songTitles : TStringList;
public
// set values interpret, albumtitle, genere, songList
    procedure setValues(interpreter, album, musictype : string; songTitle : TStrings);
// gets the value of the actual selectet CD
    procedure getValues(var interpreter, album, musictype : string;var songTitle : TStringList);
  end;
var
  CD : TCD;
  CDList : TObjectList;
...
procedure TCD.setValues(interpreter, album, musictype : string; songTitle : TStrings);
begin
      self.interpret := interpreter;
      self.albumTitle := album;
      self.genre := musictype;
      self.songTitles:= TStringList.Create;
      self.songTitles.assign(songTitle);
end; // end setValues
procedure TCD.getValues(var interpreter, album, musictype : string; var songTitle : TStringList);
var i : Integer;
begin
    interpreter := self.interpret;
    album := self.albumTitle;
    musictype := self.genre;
    songTitle.Assign(self.songTitles);
end; // end getValues
Mit folgendem Testbutton auf einer Form
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s1,s2,s3,s4,s5,s6: String;
  slist1 :TStrings;
  slist2 :TStringList;
  mycd : TCD;
  cd1 : TCD;
begin
    mycd := TCD.Create;
    slist1 := TStringList.Create;
    slist1.add('Testsong');
    mycd.setValues('Inter','Album','MTyp',slist1);
  
    mycd.getValues(s1,s2,s3,slist2);
    ShowMessage(s1+' '+s2+' '+s3+' '+slist2.Text);

    CDList.Add(mycd);
    cd1:= TCD(CDList.First);
    cd1.getValues(s4,s5,s6,slist2);
    ShowMessage('aus der CDlist:'+s4+s5+s6+slist2);
    
end;
Wenn ich jetzt meine Testprozedur laufen lasse bekomme ich immer die Fehlermeldung dass ich auf Speicheradresse 000000 von Speicheradresse 000000 zugreife. Okay soweit ich es rausfinde fliegt die Exception beim letzen ShowMessage aufruf wenn ich slist2 drin habe, ergo läuft die Übergabe falsch, aber ich hab keine Ahnung was ich da falsch mache und mir raucht schon der Schädel.
Wäre einer so nett und kann mir helfen?

Gruß

Ma.Ge.
  Mit Zitat antworten Zitat