Autor Téma: Vzhled Formu pod Windows 10  (Přečteno 1653 krát)

Offline Viktor Marek

  • Mladík
  • **
  • Příspěvků: 83
  • Karma: 1
    • Verze Delphi: Delphi 5
Vzhled Formu pod Windows 10
« kdy: 15-10-2016, 14:56:15 »
Aplikace napsaná pod Windows 7 a následně spuštěná pod Windows 10 se chová zvláštně.
Form po spuštění zobrazí svislý posuvník.

Pod Windows 7 mám Top Buttonu 143 a pokud nechci aby se na Formu pod Windows 10 zobrazoval svislý posuvník musím nastavit Top Buttonu na 136 tedy o 7 méně

Pokud bych nechal Top Buttonu na 136 nebude problém se zobrazením pod Windows 10, ale pod Windows 7 to nevypadá hezky.

Zatím mne napadá zjistit pod jakou verzí Windows je aplikace spuštěna a v OnCreate Formu upravit Top Buttonu nebo zvětšit svislý rozměr Formu.

Existuje nějaké jiné řešení?
Pokud ne jak zjistím verzi OS Windows?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5570
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vzhled Formu pod Windows 10
« Odpověď #1 kdy: 15-10-2016, 15:27:38 »
Nie je jednoduchšie ten ScrollBar vypnúť?
Pozerám, že vo W10 je vyšší TitleBar. Asi to bude tým. Tlačidlo sa vlastne dostáva už mimo formulára. Mal by si pracovať s ClientArea (ClientWidth, ClientHeight).
Zistenie OS Ti nepomôže, lebo užívateľ môže mať zmenený motív, alebo výšku TitleBar. Tú si osobne ja nastavujem v OS na čo najmenšiu.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Viktor Marek

  • Mladík
  • **
  • Příspěvků: 83
  • Karma: 1
    • Verze Delphi: Delphi 5
Re:Vzhled Formu pod Windows 10
« Odpověď #2 kdy: 15-10-2016, 15:52:01 »
>W10 je vyšší TitleBar
Přiznám se, že jsem toto uplně přehlédl.

Jak nastavím výšku TitleBar a jaká je výška TitleBar pod Windows 7?

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1531
  • Karma: 37
    • Pepak.net
Re:Vzhled Formu pod Windows 10
« Odpověď #3 kdy: 15-10-2016, 21:22:55 »
>W10 je vyšší TitleBar
Přiznám se, že jsem toto uplně přehlédl.

Jak nastavím výšku TitleBar a jaká je výška TitleBar pod Windows 7?
TitleBar nemůžeš jen tak zvětšovat a zmenšovat. Zkontroluj si, jakou máš v jednotlivých OS ClientHeight, a řeš umístění komponent ne pomocí absolutních údajů (Top), ale relativně (např. položit na Panel s Align=alBottom, nebo klidně i Top, ale s Anchor=[akBottom, akLeft]).
« Poslední změna: 15-10-2016, 21:25:17 od pepak »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5570
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vzhled Formu pod Windows 10
« Odpověď #4 kdy: 15-10-2016, 21:29:31 »
Ale keď je daná výška formulára a zväčší sa výška záhlavia okna, tak sa zmenší výška klientskej oblasti. A už sa mu tam tlačidlo nezmestí. Podľa mojej úvahy.
Takže by si mal nastavovať výšku ClientHeight. Tým by to malo byť v poriadku.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 815
  • Karma: 59
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Vzhled Formu pod Windows 10
« Odpověď #5 kdy: 15-10-2016, 22:22:07 »
>W10 je vyšší TitleBar
Přiznám se, že jsem toto uplně přehlédl.

Jak nastavím výšku TitleBar a jaká je výška TitleBar pod Windows 7?
TitleBar nemůžeš jen tak zvětšovat a zmenšovat. Zkontroluj si, jakou máš v jednotlivých OS ClientHeight, a řeš umístění komponent ne pomocí absolutních údajů (Top), ale relativně (např. položit na Panel s Align=alBottom, nebo klidně i Top, ale s Anchor=[akBottom, akLeft]).

To ti ve všech situacích nepomůže. Delphi 7 mají bug, že berou Width/Height z DFM. Novější Delphi (neptejte se mi odkdy, ale mám dojem, že se to změnilo mezi 2007 a XE2) už berou ClientWidth/ClientHeight -> t.j. vnitřní rozměr je vždy stejný, ale venkovní se mění. Dříve to bylo naopak.

Takže řešení je si do programu zabudovat automatickou korekci velikosti formuláře. Z uživatelského PC vezmeš rozdíl Width-ClientWidth a porovnáš to s rozdílem ze svého PC (natvrdo definovaným) a rozměr po načtení formuláře z DFM upravíš.

Nebo aktualizuj Delphi nebo přejdi na Lazarus :P :D
Embarcadero Technology Partner

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 422
  • Karma: 5
Re:Vzhled Formu pod Windows 10
« Odpověď #6 kdy: 16-10-2016, 08:46:42 »
V podstatě se obdobný problém zde řešil loni. http://forum.delphi.cz/index.php/topic,14794.msg88966.html#msg88966

Offline Peťo

  • Nováček
  • *
  • Příspěvků: 36
  • Karma: 3
    • Verze Delphi: 7, 5, 4
Re:Vzhled Formu pod Windows 10
« Odpověď #7 kdy: 27-10-2016, 09:06:05 »
Pri objavovaní sa zbytočných scrollbarov v TForme v starších verziách Delphi, hlavne pri nastavení Widowsu na zväčšené fonty, sa mi osvedčilo nastaviť Form.AutoScroll na False. Delphi potom nielen nezobrazí scrollbary, ale aj prispôsobí veľkosť formu už pri jeho vytvorení.