![]() |
AW: TAudioVolume Komponente incl. System Mixer
Also wenn überhaupt, zeige ich dir das anhand der Ableitung von TWinControl.
Bei den ewig langen und komplizierten NonVCL-Quelltexten kriege ich Pickel auf den Augen. |
AW: TAudioVolume Komponente incl. System Mixer
Zitat:
|
AW: TAudioVolume Komponente incl. System Mixer
Zitat:
Wenn du das obige Beispiel nimmst ist das kein Problem. gruss |
AW: TAudioVolume Komponente incl. System Mixer
Hmm..
Um eine Applikation direkt mit COINIT_MULTITHREADED zu starten, genügt eigendlich folgendes: In der Projekt DPR : uses ActiveX, ComObj, ... und dann vor dem Application.Initialize; : CoInitFlags := COINIT_MULTITHREADED; Application.Initialize; Damit sollte die (VCL) Applikation direkt als MULTITHREADED initialisiert werden. (So geht es zumindestens unter D6 ;) ) |
AW: TAudioVolume Komponente incl. System Mixer
Zitat:
Aber gut zu wissen wenn es geht ;) EDIT: Wenn ich das mache in meiner DPR..
Delphi-Quellcode:
Dann schlägt CoInitializeEx fehl.
var
HR: HRESULT; begin HR := CoInitializeEx(nil, COINIT_MULTITHREADED); if HR <> S_OK then raise Exception.Create('Error : Unable to initialize Component Object Model'); WinMain(hInstance, 0, nil, 0); Ich muss quasi den von Delphi erstellten APARTMENTTHREADED erst mal beende. Das ist aber ein Unart wenn Delphi das von sich aus macht. Aber auch dann funktionieren die Events nicht.
Delphi-Quellcode:
function TAudioSessionNotification.OnSessionCreated(const NewSession: IAudioSessionControl): HResult;
Und dein Beispiel funktioniert nicht mit D2010.
Delphi-Quellcode:
program AudioVolumeAdj_Eng;
uses Forms, ActiveX, ComObj, VolumeTest_Eng in 'VolumeTest_Eng.pas' {Form1}, AudioVolume in '..\AudioVolume.pas'; {$R *.res} begin CoInitFlags := COINIT_MULTITHREADED; Application.Initialize; // Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end. gruss |
AW: TAudioVolume Komponente incl. System Mixer
Hier mal ein Test Projekt für die Events (Threads) so 100% funktioniert es nicht.
Da keine Rückantwort kam.. gelöscht. gruss |
AW: TAudioVolume Komponente incl. System Mixer
Noch nicht ganz fertig aber zum Testen\Spielen sollte es reichen.
Wie gesagt immer noch die Event Probleme... :wall: Nebenbei kein MemoryLeak auch nicht bei den Icons.. Wegen der CPU! Das muss ich alles noch optimieren. gruss |
AW: TAudioVolume Komponente incl. System Mixer
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: TAudioVolume Komponente incl. System Mixer
Zitat:
Das Problem ist halt das es keine Windows gibt die Controls bestehen nur aus reinen Bitmaps. Deshalb muss ich um diese zu aktualisieren UpdateWindow verwenden und das verbraucht einiges an CPU. Na ja mal schaun. Zitat:
Tut es bei mir zumindest. ;) Zitat:
gruss |
AW: TAudioVolume Komponente incl. System Mixer
Zitat:
Bei Programm Start wird ja Ermittelt was da so alles für Prozesse laufen die auch noch mit dem Mixer verbunden sind. Da kann man doch bestimmt so etwas wie eine Liste anlegen für "hab diesen Prozess" oder noch besser, limitieren auf den Namen den dein Programm für die Prozesse anzeigt. Nun ein Timer und die gleiche Prozedur durchlaufen lassen wie beim Start nur das dabei eine zweite Liste erstellt wird. Die könnte man doch dann Gegenprüfen und bei Veränderung alles von vorne zeichnen wie bei Programm Start. Nur so ein Gedanke, ob der umzusetzen ist weiß ich nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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 by Thomas Breitkreuz