AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi FreePascal Problem mit Timer -> wird aktiviert, aber nicht ausgeführt
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Timer -> wird aktiviert, aber nicht ausgeführt

Ein Thema von Julian M. · begonnen am 24. Feb 2019 · letzter Beitrag vom 25. Feb 2019
Antwort Antwort
Julian M.

Registriert seit: 28. Dez 2010
41 Beiträge
 
#1

Problem mit Timer -> wird aktiviert, aber nicht ausgeführt

  Alt 24. Feb 2019, 17:04
Hallo,

folgendes Problem:
Ich aktiviere einen TImer, dieser ist danach auch enabled, jedoch führt er sein OnTimer Event nicht aus.
Die Ursache muss in der Methode liegen, aus der ich den Timer aktiviere.

Delphi-Quellcode:
procedure stallsync(lw1, lw2, status:LONGWORD; ptr: pointer); stdcall;
begin
  Form1.timer1.enabled := status = 0; // 0 = stall 1= resume
end;


BASS_ChannelSetSync(stream, BASS_SYNC_STALL, 0, @stallsync, nil);
BASS_ChannelPlay(stream,false);
Stallsync wird von der Bass.dll aufgerufen, wenn der Internetradio stream unterbrochen wurde oder fortgesetzt wird (ich simuliere es durch ziehen des Ethernetkabels)
Leider wird der Timer nicht ausgeführt, obwohl die Enabled-Eigenschaft nach überprüfung eindeutig gesetzt wird.
Wenn ich den timer anderweitig aktivieren, funktioniert es hingegen.

Freue mich über Hilfe,

Gruß Julian
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit Timer -> wird aktiviert, aber nicht ausgeführt

  Alt 24. Feb 2019, 18:15
Kann es sein, daß der Aufruf aus der DLL in einem anderen Thread erfolgt? Dann müsstest du das in den VCL-Thread synchronisieren.

Welche Delphi-Version?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Julian M.

Registriert seit: 28. Dez 2010
41 Beiträge
 
#3

AW: Problem mit Timer -> wird aktiviert, aber nicht ausgeführt

  Alt 24. Feb 2019, 19:07
Sorry, vergessen: ich benutze Freepascal/Lazarus.

Leider weiß ich nicht genau, welcher Thread es ist, welcher die Prozedur stallsync aufruft. Es müsste der Thread sein, in dem auch BASS_ChannelSetSync aufgerufen wird, oder?

Edit: Habe es nun mit dem Mainthread synchronisiert und es funkioniert, danke!!

Gruß,
Julian

Geändert von Julian M. (24. Feb 2019 um 20:04 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#4

AW: Problem mit Timer -> wird aktiviert, aber nicht ausgeführt

  Alt 25. Feb 2019, 10:37
Schau Dir mal die Beispielprogramme zur BASS.dll an, da gibt es auch Routinen zur Synchronisierung. Das musst Du analog dazu implementieren.

Oder arbeite diese (http://www.gausi.de/memp-1.html) Anleitung durch, dort solltest Du (annähernd) alle Fragen rund um die Bass.dll und deren Nutzung beantwortet bekommen.
  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 03:19 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