AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi StringError - ListenIndex überschrietet das maximum
Thema durchsuchen
Ansicht
Themen-Optionen

StringError - ListenIndex überschrietet das maximum

Ein Thema von hedie · begonnen am 11. Okt 2007 · letzter Beitrag vom 11. Okt 2007
Antwort Antwort
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 09:54
Hallo

Ich habe diesen Code

Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
var desc:tstringlist;
begin
desc := tstringlist.Create;
////////////////////////ID3Tag Speichern/////////////////////////

desc.Add(Edit1.Text);
desc.Add(Edit2.Text);
desc.Add(Edit3.Text);
desc.Add(Edit4.Text);
desc.Add(Edit5.Text);
desc.Add(tempfilename);

saveid3(desc);
desc.Free;
////////////////////////END ID3 Speichern////////////////////////

end;
saveid3 ist so deklariert
function saveid3(descriptions:tstrings):boolean;stdcall; Und in der DLL Sieht das so aus:

Delphi-Quellcode:
function saveid3(descriptions:tstrings):boolean;stdcall;
begin
descriptions := tstringlist.Create;
id3v2tag.Title := descriptions.Strings[0];
id3v2tag.Artist := descriptions.Strings[1];
id3v2tag.Album := descriptions.Strings[2];
id3v2tag.Track := descriptions.Strings[3];
id3v2tag.Year := descriptions.Strings[4];
id3v2tag.WriteToFile('test.mp3');
descriptions.Free;
end;
Wenn ich nun den Code (den ersten) ausführe, bekomme ich einen ListenInsdex überschreitet das Maximum 0 error

Wenn ich diese zeile saveid3(desc); weglass, dan bekomme ich keinen error aber dan gehts auch nicht

Ich hoffe ihr seht den fehler den ich nicht sehe

Danke schonmal
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 09:58
Zitat von hedie:
Ich hoffe ihr seht den fehler den ich nicht sehe
Joa, tun wir. Und nicht nur einen - aber du willst ja erstmal nur den einen Wissen, warum es nicht geht...

Zitat von hedie:
Delphi-Quellcode:
function saveid3(descriptions:tstrings):boolean;stdcall;
begin
descriptions := tstringlist.Create;
id3v2tag.Title := descriptions.Strings[0];
id3v2tag.Artist := descriptions.Strings[1];
id3v2tag.Album := descriptions.Strings[2];
id3v2tag.Track := descriptions.Strings[3];
id3v2tag.Year := descriptions.Strings[4];
id3v2tag.WriteToFile('test.mp3');
descriptions.Free;
end;
du übergibst eine Instanz um sie dann sofort mit einer neu angelegten Instanz zu überschreiben? Was meinste denn, hat eine neu angelegte Instanz von TStringList so als Inhalt? Wettervorhersage 5-zeilig?
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#3

Re: StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 10:01
also müssen descriptions.create und descriptions.free weg

EDIT: Habs ausprobiert... immernoch der gleiche fehler

Was für fehler siehst du denn noch? würd mich schon interessieren
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 10:16
Zitat von hedie:
Was für fehler siehst du denn noch? würd mich schon interessieren
Ich habe noch folgendes gesehen:

1. Das free würde die Instanz löschen die übergeben wurde und das würde sich negativ auf die Freigabe der Instanz nach dem Aufruf auswirken.
2. Ich hoffe du hast ShareMem als erste Unit in die Applikation und der DLL eingebunden
3. Du kannst keine Klasseninstanzen übergeben, da dann die DLL sowie die App eine unterschiedliche Typinformationen haben. Damit sollte sich der gesamte Aufruf erledigen.

Zitat von hedie:
EDIT: Habs ausprobiert... immernoch der gleiche fehler
Siehe 2. und 3.
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#5

Re: StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 10:19
Nein hab sharemem nicht in der unit eingetragen

Das merkwürdige ist, ich übertrage an einer anderen stelle im Programm auch mit hilfe von stringlists Strings
und da klappt es ohne probleme....
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#6

Re: StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 11:29
Lieber Thomas

Danke für deine Hilfe es hat funktioniert
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 14:28
Wodran lag es denn nun?
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#8

Re: StringError - ListenIndex überschrietet das maximum

  Alt 11. Okt 2007, 14:40
Das hab ich nicht herausgefunden

Ich hab das programm mit sharemem gestartet, dann gam zuerste (bei code ausführe) eine zugriffsverletzung

Danach hab ich es offen gelassen und dan einfach so nochmal geklickt, dan ging es und geht noch immer
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz