![]() |
AW: Komponente umstellen
Zitat:
![]() AudioVolume2 mit AppVolume im Inspektor ändern True/False Dann Form schließen/öffnen und dann wundern das es nicht läuft. Zur Laufzeit geht es weil ich den Wert Quelltextmäßig ändere (Das soll nachher deaktiviert werden wenn das umschalten funktioniert.)
Delphi-Quellcode:
AudioVolume2.AppVolume := True;
Einen letzten Versuch ist es wert. gruss |
AW: Komponente umstellen
Im SetAppVolume werden diverse Komponenten erstellt, aber keine freigegeben. Wenn ich also mehrfach umschalte, wird immer mehr Speicher verbraucht.
Was ich an dem Konzept gar nicht verstehe: Es werden doch die selben Komponenten verwendet, egal ob AppVolume True oder False ist soweit ich das sehe. Warum werden da verschiedene erstellt statt einfach immer die gleichen zu benutzen? So hast du eine pbMasterMeter und eine pbAppMeter usw., alles doppelt. Da die gleichzeitig nie verwendet werden, macht das doch keinen Sinn... Wenn du nur ein Set an Komponenten hast und dieses nur je nach Einstellung so oder so nutzt, wird es auch funktionieren... Die Anzeige kannst du dann in Loaded aktualisieren, aber die Komponenten sind dann immer da. Fehler bekommst du, wenn du erst in Loaded die Komponenten initialisierst, weil auch Left usw. bereits vorher gesetzt werden und du in WMSize usw. die Komponenten schon nutzt. Debuggen kannst du das sehr einfach indem du die IDE als Hostanwendung des Packages einträgst. |
AW: Komponente umstellen
Zitat:
Das MasterVolume ist nicht gleich AnwendungsVolume. Siehe!
Delphi-Quellcode:
Für die anderen Device sind sie gleich ....
WM_EndpointVolume:
begin PVolMuteRec := PVolMute(Msg.WPARAM); if Assigned(tbMasterVolume) then begin tbMasterVolume.Position := round((1.0 - PVolMuteRec^.Volume) * tbMasterVolume.Max); // **** Added cbMasterMute.Checked := PVolMuteRec^.Muted; // **** Added end; end; WM_VolumeEvent: begin PVolMuteRec := PVolMute(Msg.WPARAM); if Assigned(tbAppVolume) then begin tbAppVolume.Position := round((1.0 - PVolMuteRec^.Volume) * tbAppVolume.Max); // **** Added cbAppMute.Checked := PVolMuteRec^.Muted; // **** Added end; if (MyVolSet and (abs(PVolMuteRec^.Volume - MyVolVal) < 0.0001)) then MyVolSet := false else if (MyMuteSet and (PVolMuteRec^.Muted = MyMuteVal)) then MyMuteSet := false; end; Aber Device ist nicht gleich AppVolumen. Dafür benötige ich 2 Unterschiedliche Slider. Zitat:
AppVolume wird in SetAppVolume zugewiesen MasterVolume(Device) in SetComponents Hingegen tbMasterVolume ist für alle Device gleich. Zitat:
Aber Wahlweise. Zitat:
Zitat:
PS: Hab das jetzt gefixt mit der AppVolume. Das umschalten geht jetzt und die Ressourcen werden freigegeben. Mit der Liste muss ich noch überlegen ob das sinn macht und wie groß der Aufwand dafür ist. gruss |
AW: Komponente umstellen
Find nix vernünftiges über RegisterComponentEditor
Hab ich schon gelesen ![]() Benötige ich eine Kombination von TPropertyEditor und TComponentEditor um Propertys addieren zu können? gruss |
AW: Komponente umstellen
Jetzt wollte ich antworten und da ist die Frage weg... ;-)
Konkretisiere mal, wo es jetzt klemmt. Dein Propertyeditor funktioniert jetzt und jetzt brauchst Du einen Komponenteneditor? [Edit] ... Frage steht ja da... ProptertyEditor und Komponenteneditor hat miteinander nicht direkt etwas zu tun. Angenommen, Du hast eine published Property MyPath. Der kannst Du im Objektinspektor einen Text "C:\Test" zuweisen. Wenn Du dem Programmierer die Textsuche erleichtern willst kannst Du einen Propertyeditor bauen. Über die ... kann er den öffnen und darüber einen Pfad auswählen. In MyPath steht dann exakt das Gleiche drin wie vorher. Der Propertyeditor erleichtert nur die Zuweisung. Ein Komponenteneditor geht darüber hinaus und ermöglicht es, mehrere Propertys einer Komponente komplett einzurichten. Das Handling ist allerdings umfangreicher. M.E. ist das für Dich der richtige Weg. Ich weiß nicht, warum Du eine Liste in Deinen Komponenten speichern willst. Eigentlich brauchst Du doch nur einen passenden Wert!? Was ist jetzt eigentlich Deine Komponente? So eine Groupbox mit den 5 Controls oder etwas übergeordnetes, das diese Groupboxen erzeugt? |
AW: Komponente umstellen
Zitat:
jaenicke meint das geht nur über den Komponenteneditor. Das Beispiel das ich gelöscht habe funktioniert nicht. gruss |
AW: Komponente umstellen
Zitat:
Und das ist mein Problem. Wenn unter published steht
Delphi-Quellcode:
property AudioDevice: TStrings read GetAudioDevice write SetAudioDevice;
Dann steht das AudioDevice im OI als TStrings ich möchte aber eine Liste. Das soll mit der Class TComponentEditor lösbar sein nur wie ? gruss |
AW: Komponente umstellen
Da wir uns miteinander verheddert hatten, hier nochmal die letzte Frage...
Zitat:
|
AW: Komponente umstellen
Zitat:
![]() Aber vielleicht sollte ich deinen Rat beherzigen :) Zitat:
|
AW: Komponente umstellen
Für dich sollte RegisterPropertyEditor reichen, ich hatte das falsche hingeschrieben. :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:37 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