AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Spectragram

Spectragram

Ein Thema von EWeiss · begonnen am 21. Sep 2016 · letzter Beitrag vom 13. Aug 2018
Antwort Antwort
Seite 4 von 9   « Erste     234 56     Letzte » 
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 05:48 Uhr)
 
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#31
  Alt 22. Sep 2016, 08:14
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:
// alt
  if (SKAERO_GetOS = OsVista) or (SKAERO_GetOS = OsWindows7) and SKAERO_IsCompositionEnabled then

// neu
  if (Win32MajorVersion >= 6) and SKAERO_IsCompositionEnabled then
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.

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.

AppData/Brewideas/Spectragram.

Warum sauber deinstallieren wird doch nichts Installiert.
Das ist auch eine Installation, nur dass dein Programm selbst die Konfigurationsdateien dort ablegt. Das Problem ist in so einem Fall, dass es so eben keinen Deinstaller gibt und die Dateien dort liegen bleiben, wenn man das Programm löscht.
Für ein Projekt wie dieses hier ist das allerdings natürlich kein Problem.
Sebastian Jänicke

Geändert von jaenicke (22. Sep 2016 um 08:27 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#32
  Alt 22. Sep 2016, 08:32
Zitat:
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:
Ja das weis ich Danke..
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:
{$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}
in der uControls.

ersetzen durch
Delphi-Quellcode:
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;
Die Checkboxen bzw.. diese Controls sind alle NIL wenn Aero nicht existiert.
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:
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.
Dazu kann ich nur sagen das dieses Tool 0% CPU bei mir verwendet.
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:
allerdings finde ich den Standarddialog sehr viel ergonomischer
Ich finde das auch.
Das Problem ist nur diesen auf meinen Visuellen Style anzupassen
Zitat:
wird so ein Tool meistens ohnehin nicht benutzt werden
Das ist richtig zumal es für die LIB im ganzen > W7 eh zu spät ist.
Aber für die 6 Jahre die ich vielleicht noch habe reicht es mir Weltuntergang LOL.


gruss

Geändert von EWeiss (11. Jul 2019 um 16:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#33
  Alt 22. Sep 2016, 09:28
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.
Sebastian Jänicke
  Mit Zitat antworten Zitat
EWeiss
 
#34
  Alt 22. Sep 2016, 09:41
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.
Ich habe gelesen das es kein Aero mehr gibt.
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.

DwmIsCompositionEnabled := GetProcAddress(hDwmapi, 'DwmIsCompositionEnabled');

gruss
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#35
  Alt 22. Sep 2016, 09:50
Delphi-Quellcode:
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.
Liefert unter Windows 10 Professional Version 1607 Build 14393.187 ein True zurück.
Geht also!
  Mit Zitat antworten Zitat
Aviator

 
Delphi 10.3 Rio
 
#36
  Alt 22. Sep 2016, 09:58
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.
Ich habe gelesen das es kein Aero mehr gibt.
Sage mir das ich falsch liege
Also im TaskManager wird zumindest mal noch der Prozess angezeigt.

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.
Miniaturansicht angehängter Grafiken
dwm.png  

Geändert von Aviator (22. Sep 2016 um 10:21 Uhr) Grund: Screenshot vergessen
  Mit Zitat antworten Zitat
EWeiss
 
#37
  Alt 22. Sep 2016, 10:06
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.
Ich habe gelesen das es kein Aero mehr gibt.
Sage mir das ich falsch liege
Also im TaskManager wird zumindest mal noch der Prozess angezeigt.

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.
Dann sollte es unter W10 auch funktionieren.
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

Geändert von EWeiss (11. Jul 2019 um 16:44 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#38
  Alt 22. Sep 2016, 10:27
Habe es nochmal in geänderter form hochgeladen.
Es wird jetzt auf

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
  Mit Zitat antworten Zitat
EWeiss
 
#39
  Alt 22. Sep 2016, 10:59
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

Geändert von EWeiss (11. Jul 2019 um 16:44 Uhr)
  Mit Zitat antworten Zitat
Erdbär
 
#40
  Alt 22. Sep 2016, 11:39
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:07 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