AW: Spectragram
Unter Windows 10 funktioniert das Programm nicht.
Das ist aber ein Paradebeispiel dafür, dass die Versionsprüfung nicht ein Problem behebt, sondern schafft. Das ist genau der Grund weshalb Microsoft ab Windows 8 nicht mehr immer die reale Versionsnummer ausliefert, wenn man sie abfragt, sondern einfach die, für die das Programm laut Manifest erstellt wurde. Du prüfst nämlich leider nicht, ob es sich mindestens um Vista handelt, sondern, ob es Vista oder Windows 7 ist. Wenn du das korrigierst (und nebenbei ist die Prüfung dann auch mit Bordmitteln viel einfacher), funktioniert der Dialog auch unter Windows 10:
Delphi-Quellcode:
Beim zweiten Aufruf des Öffnen-Dialogs knallt es dann aber in der SK_Aero.dll. Da es immer unterschiedliche Pointerprobleme zu sein scheinen, sieht das aber nicht nach einem Problem mit Windows aus, sondern nach einem logischen Problem.
// alt
if (SKAERO_GetOS = OsVista) or (SKAERO_GetOS = OsWindows7) and SKAERO_IsCompositionEnabled then // neu if (Win32MajorVersion >= 6) and SKAERO_IsCompositionEnabled then Die Datei kann ich dann zwar auswählen (allerdings finde ich den Standarddialog sehr viel ergonomischer), aber danach passiert nichts mehr. // EDIT: Dass bei einem Multimediatool wie diesem Aero vorausgesetzt wird, sollte auch kein Problem sein. Denn wenn die Grafikkarte so schwach ist, dass man kein Aero einsetzen kann, wird so ein Tool meistens ohnehin nicht benutzt werden. Und wenn die Grafikkarte schnell genug für Aero ist, wird man normalerweise den Rechner nicht durch Deaktivieren von Aero langsamer machen. Zitat:
Für ein Projekt wie dieses hier ist das allerdings natürlich kein Problem. |
AW: Spectragram
Zitat:
Es soll auch nicht mit W10 Arbeiten aus dem einfachen Grund weil es unter W10 keine DWM API mehr gibt. Das Problem liegt auch eher hier! und hat nichts mit der Abfrage <> W10 zu tun.
Delphi-Quellcode:
in der uControls.
{$REGION 'procedure AddBrowseForFileControls'}
procedure AddBrowseForFileControls(hMain: HWND); begin BrowseForFile := CTRL_BrowseForFileCreate; BrowseForFile.Width := 612; BrowseForFile.Height := 412; BrowseForFile.PanelImagePath := SKAERO_FOLDER + 'Panel.png'; BrowseForFile.SysImagePath := SysButton.ImagePath; BrowseForFile.PanelDirListImagePath := SKAERO_FOLDER + 'Frame3d.png'; BrowseForFile.ListSelectedImg := SKAERO_FOLDER + 'List\ListSelect.png'; BrowseForFile.SkinConfigFile := PWideChar(DefSkin); BrowseForFile.ComboButtonImagePath := SKAERO_FOLDER + 'List\combo.png'; BrowseForFile.ButtonImagePath := SKAERO_FOLDER + 'BTN_Push.png'; BrowseForFile.VPageImg := SKAERO_FOLDER + 'VScroll\VSPage.png'; BrowseForFile.VBotImg := SKAERO_FOLDER + 'VScroll\VSBot.png'; BrowseForFile.VUpImg := SKAERO_FOLDER + 'VScroll\VSUp.png'; BrowseForFile.VThumbImg := SKAERO_FOLDER + 'VScroll\VSThumb.png'; BrowseForFile.FileListMask := '.mp3'; BrowseForFile.UseVistaBlur := CheckAeroBlur.GetCheckButtonStatus(CheckAeroBlur.Handle); BrowseForFile.UseVistaCrystal := CheckCrystal.GetCheckButtonStatus(CheckCrystal.Handle); BrowseForFile.GlassOpacity := trbGlassOpacity.GetTrackValue(trbGlassOpacity.Handle); BrowseForFile.CreateWindow(hMain); end; {$ENDREGION} ersetzen durch
Delphi-Quellcode:
Die Checkboxen bzw.. diese Controls sind alle NIL wenn Aero nicht existiert.
procedure AddBrowseForFileControls(hMain: HWND);
begin BrowseForFile := CTRL_BrowseForFileCreate; BrowseForFile.Width := 612; BrowseForFile.Height := 412; BrowseForFile.PanelImagePath := SKAERO_FOLDER + 'Panel.png'; BrowseForFile.SysImagePath := SysButton.ImagePath; BrowseForFile.PanelDirListImagePath := SKAERO_FOLDER + 'Frame3d.png'; BrowseForFile.ListSelectedImg := SKAERO_FOLDER + 'List\ListSelect.png'; BrowseForFile.SkinConfigFile := PWideChar(DefSkin); BrowseForFile.ComboButtonImagePath := SKAERO_FOLDER + 'List\combo.png'; BrowseForFile.ButtonImagePath := SKAERO_FOLDER + 'BTN_Push.png'; BrowseForFile.VPageImg := SKAERO_FOLDER + 'VScroll\VSPage.png'; BrowseForFile.VBotImg := SKAERO_FOLDER + 'VScroll\VSBot.png'; BrowseForFile.VUpImg := SKAERO_FOLDER + 'VScroll\VSUp.png'; BrowseForFile.VThumbImg := SKAERO_FOLDER + 'VScroll\VSThumb.png'; BrowseForFile.FileListMask := '.mp3'; if Assigned(CheckAeroBlur) then begin BrowseForFile.UseVistaBlur := CheckAeroBlur.GetCheckButtonStatus(CheckAeroBlur.Handle); BrowseForFile.UseVistaCrystal := CheckCrystal.GetCheckButtonStatus(CheckCrystal.Handle); BrowseForFile.GlassOpacity := trbGlassOpacity.GetTrackValue(trbGlassOpacity.Handle); end; BrowseForFile.CreateWindow(hMain); end; CheckAeroBlur, CheckCrystal, trbGlassOpacity Deshalb kracht es. Wundert mich das sich der Dialog bei dir überhaupt öffnet. Zumal die DriveList Combo mit DWM in Kombination LayeredWindow erstellt wird. Was bedeutet das die aufgeklappte Combo Transparent ist. Das geht nun mal nicht mit W10 oder deaktivierter Desktopgestaltung dementsprechend kann man dann auch kein Laufwerk auswählen. Zitat:
Inklusive der ganzen Visuellen Komponenten. Ich denke eher es ist uninteressant für diejenigen die W10 benutzen da gibt es nun mal kein DWM mehr ein Grund warum ich kein W10 verwende. Man hätte das aktiviert lassen können es war immer möglich es auszuschalten. Aber gut es ist wie es ist. Zitat:
Das Problem ist nur diesen auf meinen Visuellen Style anzupassen ;) Zitat:
Aber für die 6 Jahre die ich vielleicht noch habe reicht es mir ;) Weltuntergang LOL. :) gruss |
AW: Spectragram
Wie kommst du darauf, dass es unter Windows 10 keinen DWM mehr gibt? Die Transparenz usw. funktionieren dort problemlos, also die von dir genannten Controls.
|
AW: Spectragram
Zitat:
Sage mir das ich falsch liege ;) Transparenz! Zur Information ist teilweise emuliert da ich den Hintergrund in das Control kopiere. Das hat aber nichts mit Aero zu tun. Wenn unter W10 CheckAeroBlur NIL ist dann wird DWM nicht unterstützt. Denn darauf hin prüfe ich ja.
Delphi-Quellcode:
DwmIsCompositionEnabled := GetProcAddress(hDwmapi, 'DwmIsCompositionEnabled');
gruss |
AW: Spectragram
Delphi-Quellcode:
Liefert unter Windows 10 Professional Version 1607 Build 14393.187 ein True zurück.
program DWM_API_TEST;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Winapi.Windows; function IsCompositionEnabled: boolean; var DwmIsCompositionEnabled: function(pfEnabled: PBoolean): HRESULT; stdcall; hDwmapi: THandle; Enabled: BOOL; begin Result := False; if (Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion >= 6) then begin hDwmapi := LoadLibrary('dwmapi.dll'); if hDwmapi <> 0 then try DwmIsCompositionEnabled := GetProcAddress(hDwmapi, 'DwmIsCompositionEnabled'); if Assigned(DwmIsCompositionEnabled) then Result := (DwmIsCompositionEnabled(@Enabled) = 0) and Enabled; finally FreeLibrary(hDwmapi); end; end; end; begin try Writeln(IsCompositionEnabled); Readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. Geht also! |
AW: Spectragram
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich hatte mal gelesen, dass es ab Windows 8 sogar gar nicht mehr möglich sein soll, Windows ohne DWM zu betreiben weil dort alles drüber gemacht wird. Wäre also sehr verwunderlich, wenn das jetzt plötzlich doch nicht mehr vorhanden wäre. |
AW: Spectragram
Zitat:
Was ich machen könnte alle abfragen der Os Version mal ändern so wie von jaenicke vorgeschlagen. Ob es dann noch läuft keine Ahnung. Dann müssten die Controls auch angezeigt werde. Siehe pic gruss |
AW: Spectragram
Habe es nochmal in geänderter form hochgeladen.
Es wird jetzt auf
Delphi-Quellcode:
if (Win32MajorVersion >= 6) and SKAERO_IsCompositionEnabled then
hin geprüft. Wenn es dann läuft na dann lohnt sich die Weiterentwicklung ja doch noch. gruss |
AW: Spectragram
Sorry für den Post..
Habe es nochmals hochgeladen. Funktioniert nun mit Deaktivierter Desktopgestaltung. Das einzige Problem das dann auftritt ist das die Combobox der DriveList wenn sie aufgeklappt wird nicht mehr Transparent ist. Damit kann man aber zum testen mit leben. Bei Deaktivierter Desktopgestaltung funktioniert natürlich auch Aero nicht.. Das sollte klar sein. gruss |
AW: Spectragram
Startet unter/im aktuellen W10x64 Pro in Originalauflösung statt 125%zoom. Dann Ende Gelände beim Öffnen-Dialog.
Kann den "Siebenerschrott" - auf Wunsch hin - auch unter - Win 8 (64bit, Pro) - Win 8.1 (64bit, Pro) - Win 10 (32bit, Home) testen. Darüberhinaus auch unter/in VMs: - Win XP Pro (32bit) - Win 07 Pro (32bit) - Linux Mint (64bit) - Linux Arch (64bit) Allerdings bin ich auch kein Testpilot für Leute, die in einer Windows7-Zeitschleife murmeltierartig festhängen, Herr EWeiss :? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 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