![]() |
AW: TStringlist leert sich Selbst!
Zitat:
Die Lösung wurde im vierten Post in diesen Thread genannt. |
AW: TStringlist leert sich Selbst!
Zitat:
|
AW: TStringlist leert sich Selbst!
Zitat:
Wenn du nur über meiner Rechtschreibung dir deinen Kopf zerbrichst , dann lass mich bitte selber den fehler finden, und werde Deutsch Lehrer. |
AW: TStringlist leert sich Selbst!
Zitat:
Aus der Delphi-Hilfe: Zitat:
|
AW: TStringlist leert sich Selbst!
Zitat:
|
AW: TStringlist leert sich Selbst!
Zitat:
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:
script aus datei:
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] = 'global' then begin varvalue.Add(gvarname.Strings[1]); end; if Op.Strings[0] = 'sound_init' then 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_file' then 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_play' then 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_stop' then begin BASS_ChannelStop(strs); end else if Op.Strings[0] = 'end' then begin Application.Terminate; Exit; end else end; Zitat:
Und deswegen verstehe ich es nicht, das ist so übersichtlich, wie kann da solch ein fehler sein |
AW: TStringlist leert sich Selbst!
Zitat:
Sinnvoller weise packst Du die Funktion eh in eine eigene Unit, die kannst Du dann zum weiterentwickeln / debuggen in ein normales Projekt einbinden und wenn sie läuft über das DLL Projekt als DLL zur Verfügung stellen. GRüße |
AW: TStringlist leert sich Selbst!
Zitat:
|
AW: TStringlist leert sich Selbst!
Zitat:
Solange er nicht mit Laufzeitpackages kompiliert, würde ich davon eher abraten, Objekte über RTTI-Grenzen hinweg zu übergeben. |
AW: TStringlist leert sich Selbst!
Zitat:
Ab Vista sorgt doch der Installer von Windows dafür das für Windows die Systemplatte immer C:\ ist egal welche Partition/Platte es physikalisch ist :gruebel: |
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