Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by xaromz,
6. Okt 2006
Hallo,
Da Deine Komponente intern mit Windows-Messages arbeitet, sehe ich aber auch keine Alternative. Mit Deinem Thread hebelst Du ja nur solche Dinge wie eben ein Sleep aus. Die einzige Lösung wäre tatsächlich eine MessageProc innerhalb des Threads, die nur für diese Message da ist. Ob ein Thread eine eigene Message-Queue besitzen darf, weiß ich aber nicht.
Schwierig, da solche Fehler...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by xaromz,
6. Okt 2006
Hallo,
Nein.
Da die Audio-Komponente asynchron arbeitet, solltest Du diese im Hauptthread erstellen und nur das Verarbeiten des Puffers in einen Thread packen. Das wäre eine saubere Lösung.
1: Application.ProcessMessages arbeitet sämtliche Nachrichten des Hauptthreads im Kontext Deines Threads ab. Ob es dann kracht oder nicht ist reines Glück.
2: Wie gesagt, ich würde nur die reine...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by xaromz,
6. Okt 2006
Hallo,
Du erstellst im Thread ein Objekt, das Audiodaten verarbeitet und dabei ab und zu einen Event feuert. Auf diesen möchtest Du innerhalb des Events reagieren.
Sehe ich das richtig?
Wenn ja, dann stellt sich die Frage, wie das Objekt die Audiodaten verarbeitet. Wenn das synchron abläuft, sollte die Lösung ungefähr so aussehen:
type
TAudioThread = class(TThread)
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by xaromz,
6. Okt 2006
Hallo,
NIEMALS Application.ProcessMessages in einem Thread aufrufen!
Wozu auch? Ein Thread läuft ja neben dem Hauptthread, deshalb werden normalen Events auch ganz normal abgearbeitet.
Wenn Du eine Komponente innerhalb eines Threads erzeugst, dann muss auch die gesamte Kommunikation innerhalb des Threads ablaufen. Zeig mal etwas Code, dann kann findet sich bestimmt eine Lösung.
Gruß...