Results 1 to 8 of 8

Thread: scaled fonts niet zichtbaar im mijn programma

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    Exclamation scaled fonts niet zichtbaar im mijn programma

    Ik heb het gevoel dat scaled fonts niet goed werkt met mijn applicatie. Als test heb ik (via stack overflow) dit stukje code toegepast:
    Delphi Code:
    1. dc := GetDC(0);
    2.   Memo1.Lines.Add(Format('hor res %d', [GetDeviceCaps(dc, HORZRES)]));
    3.   lp := GetDeviceCaps(dc, LOGPIXELSX);
    4.   Memo1.Lines.Add(Format('logx %d percents %d%%', [lp, 100 * lp div 96]));
    Ik zie wel dat het programma aangeeft dat de scaled font op 120 DPI staat, maar het lijkt alsof alles kleiner wordt dan de rest van de tekst op mijn desktop.
    Echter als ik mijn programma nu met scaled font op 100% zet, wordt de berekening van dat stukje code nog steeds op 120% gezet.
    Ik zie niet dat mijn applicatie zich aanpast aan de fontgrootte, die in Windows is ingesteld.
    In TForm staat de property scaled op true.

    Wat moet je nu eigenlijk doen om de juiste scaling van alle componenten te krijgen in mijn programma.

    Ik moet er wel bij vertellen dat Delphi wordt opgestart in een Virtuele Windows 10 omgeving met scaled font 100%
    Delphi is great. Lazarus is more powerfull

  2. #2
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Oke. Gevoelig onderwerp.
    Ik heb een demo gemaakt om te kijken waar het probleem zich voordoet. Maar het demootje werkt. Zelfs als de scaled fonts op 150% staan.
    Alleen die procedure in de eerste topic werkt niet goed. Bij 150% blijft het demootje 125% aangeven.

    Dan vraag ik mij toch af waar om mijn andere applicatie het niet goed doet.
    Delphi is great. Lazarus is more powerfull

  3. #3
    Deze post was mij nog niet eens opgevallen (raar want ik mis zelden nieuwe topics hier).

    Werkt bij mij prima.
    hor res 1920
    logx 144 percents 150%
    Let wel op dat scaling en dpi in Windows 7 en hoger een stuk complexer is geworden.
    Wat je bijvoorbeeld in je manifest zet is ook van belang om deze waardes goed te krijgen.

    b.v. <dpiAware>True/PM</dpiAware>

    en dan kun je ook nog de eigenschappen van de snelkoppeling het een en ander beïnvloeden.
    (zoals aanpassingen uitschakelen bij hogere DPI standen)

    Het is om kierewiet van te worden, al die mogelijkheden.

    Heb je ook al gemerkt dat soms bij scaled = true het lettertype wolliger kan zijn dan normaal. Vandaar dat ik eigenlijk nooit met Scaled werk en gewoon zelf het lettertype bepaal.

  4. #4
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    bepaalde schermen, ja. Het probleem van zelf bepalen is dat overal rekening moet houden met schermgrootte, fontgrootte en al die poespas.
    Delphi is great. Lazarus is more powerfull

  5. #5
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    en toch snap ik het niet. Als je kijkt naar mijn voorbeeld (https://www.dropbox.com/s/ljjmc5wma4...20150.png?dl=0), dan zie ik geen scaled fonts. Van smdbgrid zal ik het kunnen verwachten, maar de labels, toolbox aan de zijkant en dbtext zal zich toch moeten aanpassen. Mijn scherm staat nu op 150%
    Delphi is great. Lazarus is more powerfull

  6. #6
    Het probleem is dat Windows 7/8 op een andere manier schalen dan Windows 10.

    Je hebt onder de eigenschappen van de snelkoppeling een optie om schaling voor hoge dpi standen uit/in te schakelen. Ik geloof dat dan de Windows 7/8 manier weer gebruikt wordt. Misschien heeft dat ook effect op jouw test-appje.

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik denk dat er iets anders aan de hand is. Als ik mijn applicatie opstart, krijg ik als eerste een loginscherm. Die is WEL scaled. Eenmaal ingelogd lijkt het erop dat ergens een bepaalde property is gezet waardoor er geen scaling wordt uitgevoerd. Een andere applicatie, die ik heb gemaakt in Delphi, is wel scaled.
    Ik moet dus op zoek gaan naar die ene parameter.

    Ik heb 1 pc met Windows 7, de rest is Windows 10. Op windows 7 zie ik die andere applicatie ook 'spelen' met scaling.
    Delphi is great. Lazarus is more powerfull

  8. #8
    Je kunt even proberen de Scaled uit te zetten, compileren, en dan weer aan te zetten.

    Anders zit er iets in je programma dat de Scaled globaal uitschakelt.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •