Einzelnen Beitrag anzeigen

Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

func BeginThread: fehlerhafte Parameterübergabe

  Alt 26. Mär 2005, 16:29
Hallo Community,
ich habe hier ein ziemlich mysteriöses Verhalten entdeckt:
Delphi-Quellcode:
function OpenURL(url: PChar): Integer;
var icy: PChar;
begin
  Result := 0;
    //ShowMessage(url);
  Record_Channel := BASS_StreamCreateURL(url, 0, BASS_STREAM_META or
  BASS_STREAM_STATUS,@StatusProc, 0);
  {...}
end;

procedure TForm_RTRecording.Button2Click(Sender: TObject);
var ThreadId: Cardinal;
begin
  if (cthread <> 0)
  then MessageBeep(0)
  else
  cthread := BeginThread(nil, 0, @OpenURL, PChar(Edit1.Text), 0, ThreadId);
    //ShowMessage('kp wieso, aber ShowMessage muss aufgerufen werden ;_;');
end;
BeginThread wird nur dann korrekt ausgeführt, wenn ich ShowMessage('kp...') anzeigen lasse. Sonst, wenn ich ShowMessage(url) aktiviere, kommt der oben angegebene Fehler. Wieso muss ich also ShowMessage('kp...') ausführen, damit alles funktioniert?
  Mit Zitat antworten Zitat