Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TOpenTextFileDialog <> TOpenDialog (https://www.delphipraxis.net/202495-topentextfiledialog-topendialog.html)

anse 10. Nov 2019 18:47

TOpenTextFileDialog <> TOpenDialog
 
Liste der Anhänge anzeigen (Anzahl: 2)
Kann mir jemand sagen warum TOpenTextFileDialog unter Delphi 10.3.1 bzw. Win10 so anders aussieht als TOpenDialog? Und das obwohl ersteres von letzterem direkt ableitet?

TOpenTextFileDialog
  • richtet sich nicht nach dem in Win10 eingestellten Explorer Theme (dark/light)
  • nutzt _zum Teil_ Tahoma anstatt der Systemschrift Segeo UI
  • Buttons oben rechts sehen stark nach Win7 aus
  • ...

Edit:
"UseLatestCommonDialogs := False;" lässt den TOpenDialog genauso "alt" aussehen wie TOpenTextFileDialog.

Bernhard Geyer 10. Nov 2019 20:00

AW: TOpenTextFileDialog <> TOpenDialog
 
TOpenDialog -> Öffnen-Dialog im XP-Style
TOpen(Text)FileDiallog -> Öffnen-Dialog im Windows Vista (und neuer) Style

Uwe Raabe 10. Nov 2019 21:05

AW: TOpenTextFileDialog <> TOpenDialog
 
Um es mal präziser zu erklären:
Delphi-Quellcode:
TOpenDialog
verwendet intern den neuen
Delphi-Quellcode:
TFileOpenDialog
wenn folgende Bedingungen erfüllt sind:
  1. Das Programm läuft unter Windows Vista oder höher
  2. Delphi-Quellcode:
    UseLatestCommonDialogs
    ist True
  3. Es gibt keine Events für
    Delphi-Quellcode:
    OnIncludeItem
    ,
    Delphi-Quellcode:
    OnClose
    oder
    Delphi-Quellcode:
    OnShow

anse 10. Nov 2019 21:17

AW: TOpenTextFileDialog <> TOpenDialog
 
Ok, weil aber
Delphi-Quellcode:
TOpenTextFileDialog
nun von
Delphi-Quellcode:
TOpenDialog
ableitet, sollte erstere doch genauso intern den neuen
Delphi-Quellcode:
TFileOpenDialog
verwenden, oder ist das auf den
Delphi-Quellcode:
TOpenDialog
beschränkt?

Zitat:

Zitat von Uwe Raabe (Beitrag 1451125)
  1. Das Programm läuft unter Windows Vista oder höher
  2. Delphi-Quellcode:
    UseLatestCommonDialogs
    ist True
  3. Es gibt keine Events für
    Delphi-Quellcode:
    OnIncludeItem
    ,
    Delphi-Quellcode:
    OnClose
    oder
    Delphi-Quellcode:
    OnShow

Trifft alles zu hier, für beide Dialoge.

Redeemer 10. Nov 2019 21:32

AW: TOpenTextFileDialog <> TOpenDialog
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1451121)
TOpenDialog -> Öffnen-Dialog im XP-Style
TOpen(Text)FileDiallog -> Öffnen-Dialog im Windows Vista (und neuer) Style

Andersrum, oder? Benutzerdefinierte Dialoge können sich ja schlecht automatisch anpassen.

Uwe Raabe 10. Nov 2019 22:51

AW: TOpenTextFileDialog <> TOpenDialog
 
Zitat:

Zitat von anse (Beitrag 1451126)
Trifft alles zu hier, für beide Dialoge.

Hier tritt aber noch eine interne Bedingung ein, die vom User nicht beeinflusst werden kann: Bei
Delphi-Quellcode:
TOpenTextFileDialog
wird ein Template verwendet. Das schließt die neuen Dialoge ebenfalls aus.

Die komplette Bedingung lautet:
Delphi-Quellcode:
  if (Win32MajorVersion >= 6) and UseLatestCommonDialogs and
     not (TStyleManager.IsCustomStyleActive and (shDialogs in TStyleManager.SystemHooks)) and
     IsNewCommonCtrl and (Template = '') and IsAppThemed and
     not (Assigned(FOnIncludeItem) or Assigned(FOnClose) or Assigned(FOnShow)) then

anse 11. Nov 2019 06:36

AW: TOpenTextFileDialog <> TOpenDialog
 
Danke, das wird's dann wohl sein. Schade nur dass die Dialoge dadurch nicht einheitlich aussehen.

Bernhard Geyer 11. Nov 2019 07:30

AW: TOpenTextFileDialog <> TOpenDialog
 
Zitat:

Zitat von anse (Beitrag 1451131)
Danke, das wird's dann wohl sein. Schade nur dass die Dialoge dadurch nicht einheitlich aussehen.

Stell halt überalla auf TOpenFileDialog um und gut ist.
Dann schaut es wieder überall gleich aus.

Uwe Raabe 11. Nov 2019 09:46

AW: TOpenTextFileDialog <> TOpenDialog
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1451135)
Stell halt überalla auf TOpenFileDialog um und gut ist.
Dann schaut es wieder überall gleich aus.

Unter der Annahme, daß Windows XP keine Zielplattform mehr ist, würde ich das auch empfehlen.

anse 11. Nov 2019 18:32

AW: TOpenTextFileDialog <> TOpenDialog
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1451135)
Stell halt überalla auf TOpenFileDialog um und gut ist.
Dann schaut es wieder überall gleich aus.

Du meinst wahrscheinlich
Delphi-Quellcode:
TFileOpenDialog
. Ja, das wär ne Option. Den müsste ich dann nur erweitern um ein Encoding Dropdown unten dranzuhängen. Hier gibt es dafür ein Tutorial: https://akirabbq.wordpress.com/2009/...n-file-dialog/ . Für
Delphi-Quellcode:
Win32MajorVersion < 6
könnte dann der
Delphi-Quellcode:
TOpenTextFileDialog
wieder herhalten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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