AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringlist leert sich Selbst!

Ein Thema von danu1104 · begonnen am 7. Mär 2012 · letzter Beitrag vom 8. Mär 2012
 
danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#19

AW: TStringlist leert sich Selbst!

  Alt 8. Mär 2012, 08:59

entfernt , und das Resultat ist das die listen jetzt voll bleiben (juhuu) , doch habe ich den EStringlistError der mir die App immer crasht.


Aus der Delphi-Hilfe:
Zitat:
EStringListError wird ausgelöst, wenn eine Anwendung versucht, mit einem ungültigen Index auf ein Listenfeld zuzugreifen, um beispielsweise einen Eintrag hinzuzufügen.
hast Du schon mal den Debugger angeworfen und geschaut WO, d.h. in welcher Zeile die Exception geworfen wird?
Debugger? Also es handel sich um eine DLL , die function exportiere ich mit stdcall und rufe sie in einer Consolen - APP auf, das lief bislang wunderbar, bis ich gestern Delphi geöffnet habe um am Project weiter zu knibbeln, nach dem Build der DLL kiamm dann das 1. mal der EStringlistError, wobei ich garnix getan habe.

Habe erst gedacht es wer ein Ressource Problem und habe deswegen *.res entfernt was jedoch nix bewirkte. Daraufhin habe ich alle String Variablen in Pchar umgeschrieben, auch keine lösung. Alle Stringlisten global deklariert, auch nicht.


hier die function:


Delphi-Quellcode:
function scripting(cmd:Pchar):Pchar; STDCALL;
Var
 p:pchar;
 ist:tfilestream;
begin

if Length(CMD) < 1 then
begin
 Exit;
end;
 //global
 Op:=TStringlist.Create;
 Op.Delimiter:=' ';
 Op.DelimitedText:=CMD;
 //global
 VarValue:=TStringlist.Create;

 //global
 gvarname:=TStringlist.Create;
 gvarname.Delimiter:='.';
 gvarname.DelimitedText:=CMD;



 P:=Pchar(ExtractFilePath(Paramstr(0)));

if gvarname.Strings[0] = 'globalthen
  begin
    varvalue.Add(gvarname.Strings[1]);
  end;


  if Op.Strings[0] = 'sound_initthen
  begin
   win:=0;
  if (HIWORD(BASS_GetVersion) <> BASSVERSION) then
  begin
    MessageBox(0, 'An incorrect version of BASS.DLL was loaded', nil, MB_ICONERROR);
    Exit;
  end;
  if (not BASS_Init(-1, 44100, 0,win, nil)) then
  begin
    Exit;
  end;
  end else
  if Op.Strings[0] = 'sound_filethen
  begin
   if Op.Strings[1] = getvarval(varvalue,Pchar(Op.Strings[1])) then
     //   strs := BASS_StreamCreateFile(False, Pchar(getvarval(varvalue,Pchar(Op.Strings[1]))), 0, 0, 0)
    else
      strs := BASS_StreamCreateFile(False, Pchar(Op.Strings[1]), 0, 0, 0);
  end else
  if Op.Strings[0] = 'sound_playthen
  begin
   BASS_ChannelPlay(strs, False);
  end else
  if (Op.Strings[0] = '__run') then
   if not (Op.Strings[1] = 'while.playing') then
    Delay(StrToInt(Op.Strings[1]))
   else begin
   repeat
      Delay(1)
     until
      BASS_ChannelIsActive(strs)= BASS_ACTIVE_STOPPED
    end;
   if (Op.Strings[1] = 'while.taskkill') then
    repeat
      Delay(1)
     until false
  else
  if Op.Strings[0] = 'sound_stopthen
  begin
   BASS_ChannelStop(strs);
  end else
  if Op.Strings[0] = 'endthen
  begin

   Application.Terminate;
   Exit;
  end else
end;
script aus datei:

Zitat:
global.testvar="data\usr\local\tracks\jd.mp3"
sound_init
sound_file testvar
sound_play
__run while.playing


Und deswegen verstehe ich es nicht, das ist so übersichtlich, wie kann da solch ein fehler sein
Daniel

Geändert von danu1104 ( 8. Mär 2012 um 09:12 Uhr) Grund: Code hinzugefügt
  Mit Zitat antworten Zitat
 


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 06:31 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