Aktuelle Zeit: 17.09.2019 16:37

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Enable DPI aware executable (Windows)
BeitragVerfasst: 13.04.2019 09:50 
Offline
Benutzeravatar

Registriert: 15.11.2010 10:56
Hallo Leute,
habe gerade mal die genannte Funktion eingestellt und getested!

Nun, Das Fenster und die Button stimmen, aber die Bilder werden kleiner angezeigt als der Button, obwohl die Bilder auf das Btn_Format resized wurden!

Was muss man machen das die Bilder wieder richtig resized werden!

Gruss ... Velindos!

_________________
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.43 LTS (32/64-Bit)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Enable DPI aware executable (Windows)
BeitragVerfasst: 13.04.2019 11:28 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Die Bilder müssen selber richtig skaliert (ResizeImage) oder neu gezeichnet werden.

Dazu gibt es neu Desktop-Funktionen zur Abfrage der DPI. (DesktopScaledX, etc)

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Enable DPI aware executable (Windows)
BeitragVerfasst: 13.04.2019 11:52 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
mk-soft hat geschrieben:
Die Bilder müssen selber richtig skaliert (ResizeImage) oder neu gezeichnet werden.

Hallo,

betrifft das nur Bilder oder auch noch andere Dinge?
Ist irgendwo offiziell dokumentiert, welche Dinge bei eingeschalteter "DPI awareness" von PB automatisch skaliert werden, und welche man selbst skalieren muss?

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Enable DPI aware executable (Windows)
BeitragVerfasst: 13.04.2019 14:20 
Offline
Benutzeravatar

Registriert: 15.11.2010 10:56
Hallo mk-soft,

setzte die Sache unter Surface ein.

Nun die Bilder neu Skalieren?

Im meiner Software läuft das momentan so:

Code:
; Hole Desktop Nr
Desk_Anzahl = ExamineDesktops()
; Hole Desktop
Reader_DesktopHoeheY = DesktopHeight(Desk_Reader_Nr)
; Hole KopfzeilenFaktor
Reader_KopfzeilenFaktor.f = Reader_DesktopHoeheY * 0.0648148148148148
; KopfzeilenHoehe
Reader_KopfzeilenHoehe = Int(Reader_KopfzeilenFaktor)
; Image Resized und die sind dann die hälfte
Img_ListEbenen = CatchImage(#PB_Any,?Img_ListEbenen)
Img_ListEbenen  =ResizeImage(#Img_ListEbenen,Reader_KopfzeilenHoehe,Reader_KopfzeilenHoehe,#PB_Image_Smooth)


Nun gibt es bereits ein Beispiel ....

Irgendwie funzt auch das Lesen des Desktop unter X2 = DesktopMouseX() nicht mehr etc. Der Wert schneidet in meinen Fall versetzt aus oder beim Fensterklick ist er daneben!

Gruss ... Velindos!

_________________
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.43 LTS (32/64-Bit)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Enable DPI aware executable (Windows)
BeitragVerfasst: 14.04.2019 09:06 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Wie es aus sieht must du die Desktop Position noch umrechnen.

Dazu gibt des die Funktion DesktopUnscaledX().

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Enable DPI aware executable (Windows)
BeitragVerfasst: 14.04.2019 09:27 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Nino hat geschrieben:
mk-soft hat geschrieben:
Die Bilder müssen selber richtig skaliert (ResizeImage) oder neu gezeichnet werden.

Hallo,

betrifft das nur Bilder oder auch noch andere Dinge?
Ist irgendwo offiziell dokumentiert, welche Dinge bei eingeschalteter "DPI awareness" von PB automatisch skaliert werden, und welche man selbst skalieren muss?


Wie ich es sehe müssen die Bilder immer selber skaliert werden.
Code:
;-TOP

Procedure LoadImageDPI(Image, File.s)
  Protected Result
 
  Result = LoadImage(Image, File)
  If Result
    If Image = #PB_Any
      ResizeImage(Result, DesktopScaledX(ImageWidth(Result)), DesktopScaledY(ImageHeight(Result)))
    Else
      ResizeImage(Image, DesktopScaledX(ImageWidth(Image)), DesktopScaledY(ImageHeight(Image)))
    EndIf
  EndIf
  ProcedureReturn Result
EndProcedure

Procedure CatchImageDPI(Image, *Memory, Size)
  Protected Result
 
  If Size
    Result = CatchImage(Image, *Memory, Size)
  Else
    Result = CatchImage(Image, *Memory)
  EndIf 
  If Result
    If Image = #PB_Any
      ResizeImage(Result, DesktopScaledX(ImageWidth(Result)), DesktopScaledY(ImageHeight(Result)))
    Else
      ResizeImage(Image, DesktopScaledX(ImageWidth(Image)), DesktopScaledY(ImageHeight(Image)))
    EndIf
  EndIf
  ProcedureReturn Result
EndProcedure

If OpenWindow(0, 0, 0, 200, 100, "ButtonImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If LoadImageDPI(0, #PB_Compiler_Home + "/Examples/Sources/Data/PureBasic.bmp")
    ButtonImageGadget(0, 10, 10, 180, 50, ImageID(0))
  EndIf
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye