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 Problem mit Delphi5-Forms unter Vista/Windows 7 (https://www.delphipraxis.net/158537-problem-mit-delphi5-forms-unter-vista-windows-7-a.html)

samy99 21. Feb 2011 16:23

Problem mit Delphi5-Forms unter Vista/Windows 7
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Zusammen

Ich habe ein umfangreiches Projekt mit Delphi 5 Pro, welches sich nicht so ohne weiteres auf eine neuere Delphi-Version umschreiben lässt. Ich habe dabei folgendes Problem festgestellt: Wir das Fenster verkleiner, so dass die Scrollbars eingeblendet werden, ändern sich den Fenstertyp/Rahmen in einen alten, classic-Fenstertyp. Dies bleibt bestehen, bis das Programm neu gestartet wird. Ich vermute ein Fehler/Problem in forms.pas von Delphi 5. Das Problem lässt sich auch in einem ganz einfach, kleinen Fenster reproduzieren. Siehe Anhang (vorher/nachher).

Hat mir vielleicht jemand einen hilfreichen Tipp, wie ich das Problem in Delphi 5 beheben kann oder ob es ein Workaround dafür gibt? Vielen Dank.

Gruss
Samy99

Satty67 21. Feb 2011 16:36

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Hab' selbst noch Delphi 5 Projekte unter Windows 7 laufen und kenne das Problem nicht.

Für Delphi 5 muss man ja ein "selbst entworfenes" Manifest einbinden und u.U. noch den Thememanager einbinden (für BitBtn etc.). Evtl. hast Du da ein fehlerhaftes Manifest?

Delix 14. Jul 2011 10:02

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Hallo zusammen,

ich habe das selbe Problem. Hab schon verschiedenes probiert: Scaled auf False bringt nichts. Verschiedene Manifest-Files, die ich im Netz gefunden habe, nichts wirkt.

Bin für jeden Tipp dankbar.

Schönen Gruß

uligerhardt 14. Jul 2011 11:03

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Vielleicht hilft's ja, Mike Lischkes Windows XP Theme Manager einzubinden.

Edit: Upps, ich seh grad, dass Satty67 das schon gepostet hat. :oops: Immerhin hab ich noch nen Link mitgeliefert. :mrgreen:

jaenicke 14. Jul 2011 11:20

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Das liegt daran, dass Delphi 5 die Fenstergröße falsch berechnet (nämlich ohne zu beachten, dass die Randbreite unterschiedlich sein kann). Daran lässt sich leider nichts ändern.

Du musst die Oberfläche so designen, dass es nichts macht, wenn das Fenster nach dem Starten eine falsche Größe des Clientbereichs hat. Mit Align, Anchors usw. lässt sich das machen.

Das Problem selbst wurde mit Delphi 2006 behoben.

Delix 14. Jul 2011 12:31

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Ich denke, dann muss ich mich wohl an die Arbeit machen.

Danke für die Antwort.

p80286 14. Jul 2011 12:55

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Zitat:

Zitat von jaenicke (Beitrag 1111708)
Das liegt daran, dass Delphi 5 die Fenstergröße falsch berechnet (nämlich ohne zu beachten, dass die Randbreite unterschiedlich sein kann). Daran lässt sich leider nichts ändern.

Du musst die Oberfläche so designen, dass es nichts macht, wenn das Fenster nach dem Starten eine falsche Größe des Clientbereichs hat. Mit Align, Anchors usw. lässt sich das machen.

Hättest Du hierzu ein paar Infos? (Quellen)
So auf Anhieb ist mir nicht klar welche Auswirkungen z.B. Anchors auf den Clientbereich eines Forms haben.

Gruß
K-H

jaenicke 14. Jul 2011 13:04

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Zitat:

Zitat von p80286 (Beitrag 1111722)
Hättest Du hierzu ein paar Infos? (Quellen)
So auf Anhieb ist mir nicht klar welche Auswirkungen z.B. Anchors auf den Clientbereich eines Forms haben.

Das ist schon ein paar Jahre her, dass ich das letzte Mal wirklich mit Delphi 7 gearbeitet habe (wo ich das Problem eben hatte), ich teste höchstens mal damit, insofern kann ich mich da nicht mehr 100%ig erinnern was ich da gemacht habe...

Das Problem ist jedenfalls, dass Delphi 7 die äußere Fensterbreite (inklusive Rand) speichert und beim Laden wiederherstellt. Nur dass da der Rahmen halt anders sein kann. Deshalb kommt es zu diesen Fehlern.

Das heißt, wenn man nicht absolut positioniert, klappt es irgendwie, zumindest mit Align, aber was wann ging... keine Ahnung...
Und ich habe auch nicht die Absicht mich damit noch zu beschäftigen, das kann jemand machen, der tatsächlich noch Lust hat Delphi 7 oder älter zu benutzen...

Dennis07 11. Okt 2011 16:39

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Hm also ich hätte mal eine Frage:
Ich hab dieses Theme Manager jetzt installiert. Aber jedes mal, wenn ich meine Anwendung kompilieren möchte, kommt diese Fehlermeldung...
Code:
[Fataler Fehler] Unit1.pas(7): Datei nicht gefunden: 'ThemeMgr.dcu'
Google hat mir nicht geholfen und ich wollte mal fragen ob jemand von euch weiß, was ich tun muss, damit das aufhört.
Ich habe den installer verwendet und alles getan, was da verlangt wurde. Die offizielle Hilfe-Datei beschäftigt sich leider nicht mit solchen Sachen.

Danke für eine Antwort;
--Dennis

uligerhardt 11. Okt 2011 16:53

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Zitat:

Zitat von Dennis07 (Beitrag 1129855)
Ich hab dieses Theme Manager jetzt installiert. Aber jedes mal, wenn ich meine Anwendung kompilieren möchte, kommt diese Fehlermeldung...
Code:
[Fataler Fehler] Unit1.pas(7): Datei nicht gefunden: 'ThemeMgr.dcu'

Das ist wie bei jeder Komponente - der Quellcode muss gefunden werden. Schau mal nach, wo die ThemeMgr.pas liegt (vermutlich in einem Unterverzeichnis src oder Source der Komponenteninstallation) und füge dieses
  • entweder in den Projektoptionen unter Verzeichnisse/Bedingungen | Suchpfad oder
  • in den globalen Delphi-Optionen (Menüpunkt Tools | Optionen...) unter Umgebungsoptionen | Delphi-Optionen | Bibliothek-Win32 | Bibliothekspfad
hinzu. (Die Namen der Menüpunkte sind die aus D2007. Ich hoffe, sie waren unter D5 ähnlich. :mrgreen:)

Dennis07 11. Okt 2011 19:06

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Hallo, soweit war ich leider auch schon.
Das hat der SetUp ja von selber gemacht, geholfen hat dies jedoch leider nichts: Er gibt immernoch diese Fehlermeldung zurück. Danke trotzdem;
--Dennis

uligerhardt 12. Okt 2011 07:08

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Das ist allerdings ominös. Wenn das Verzeichnis, in dem die ThemeMgr.pas liegt, im globalen oder projektspezifischen Pfad steht, findet sie der Compiler auch.

jaenicke 12. Okt 2011 07:30

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Bleibt wie immer als einfachste Variante der Process Monitor um einfach zu schauen wo der Compiler nach der Datei sucht. ;-)

zweikastanien 10. Feb 2012 11:52

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Zum ursprünglichen Problem:

Der falsche "Classic"-Rahmen erscheint m.E. immer dann, wenn eine Kompnente auf dem Form über den Rand hinausragt, was ja bei Größenänderungen vorkommen kann.

Die Loesung ist einfach (am Beispiel eines neuen Forms):

1) Neues Formular erzeugen
2) Zuallererst ein Panel auf das Form setzen mit Align=alClient, Caption='' und BevelOuter=bvNone
3) Alle weiteren Elemente werden nun auf das Panel anstatt direkt auf das Form gesetzt

Fertig. Bisschen spaet, aber vielleicht hilfts noch jmd.

Dalai 21. Mär 2012 16:20

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Setz mal die Eigenschaft AutoScroll der Form auf False. Dann klappt übrigens auch die Skalierung bei großen Schriftarten sauber (jedenfalls bei den allermeisten Komponenten). Das ist inzwischen die erste Option, die ich auf neu erstellten Anwendungen setze.

MfG Dalai

BLin4ik 22. Mär 2012 10:45

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Zitat:

Zitat von Dalai (Beitrag 1157799)
Setz mal die Eigenschaft AutoScroll der Form auf False. Dann klappt übrigens auch die Skalierung bei großen Schriftarten sauber (jedenfalls bei den allermeisten Komponenten). Das ist inzwischen die erste Option, die ich auf neu erstellten Anwendungen setze.

MfG Dalai

Richtig, aber dennoch sollte man mehr abstände zwischen komponenten lassen,
es kann der Fall auftretten, dass sich der Text auch so vergrößert und sich auf einer Komponente überschneidet.
Aber das Problem ensteht nur bei mir bei verschienden DPI Auflösungen (96 -> 120)

Vor 2 Tagen habe ich die gleiche Frage gestellt, aber nach einer besseren Lösung,
Ich suche nach einer Art Komponente oder Unit die das AutoScroll automatisch in allen Forms auf false setzt, habe aber dennoch nichts gefunden oder es hat nicht funtkioniert...

Dalai 22. Mär 2012 13:16

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Zitat:

Zitat von BLin4ik (Beitrag 1157917)
Richtig, aber dennoch sollte man mehr abstände zwischen komponenten lassen,
es kann der Fall auftretten, dass sich der Text auch so vergrößert und sich auf einer Komponente überschneidet.

Natürlich. Ich habe implizit angenommen, dass man darauf achtet. Wobei sich die Komponenten nicht näherkommen sollten, da ja alles skaliert wird: die Komponenten selbst aber auch der Platz zwischen ihnen. Ausnahmen gibt es aber natürlich, wie ich selbst erst kürzlich feststellen (und behandeln) durfte.

Zitat:

Ich suche nach einer Art Komponente oder Unit die das AutoScroll automatisch in allen Forms auf false setzt, habe aber dennoch nichts gefunden oder es hat nicht funtkioniert...
Warum eine extra Komponente? Bei bestehenden Projekten kann man das recht einfach via Suche in den .dfm Dateien lösen. Wenn darin kein AutoScroll (= False) auftaucht, dann ist es nicht gesetzt. Mir ist dabei völlig klar, dass das kein Garant ist, weil andere Komponenten ebenfalls eine Eigenschaft AutoScroll haben können. Bei neuen Projekten muss man einfach daran denken ;).

Außerdem glaube ich nicht, dass es funktioniert, wenn AutoScroll zur Laufzeit gesetzt wird, denn das ist schon zu spät. Ich habe es gerade in einem Testprogramm ins FormCreate() gepackt, aber die Form wird nicht skaliert und stattdessen sind die Komponenten abgeschnitten. D.h. allein mit
Delphi-Quellcode:
Self.AutoScroll:= False;
ist es nicht getan. Man müsste noch den Skalierungsfaktor ermitteln und selbst skalieren. Und das halte ich für zuviel Aufwand, den man mit einem manuellen Setzen von AutoScroll zur Designzeit vermeiden kann.

MfG Dalai

BLin4ik 22. Mär 2012 14:41

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Ich habe grade mal geguckt, aber kein AutoScroll in der .dfm gefunden...?

Wie es scheint hat er auch ein Problem mit dem Anker "akBottom" ist das auf True, schiebt er die komponenten ziemlich tief nach unten (wenn AutoScroll noch aktiv ist)

Dalai 22. Mär 2012 14:58

AW: Problem mit Delphi5-Forms unter Vista/Windows 7
 
Zitat:

Zitat von BLin4ik (Beitrag 1157975)
Ich habe grade mal geguckt, aber kein AutoScroll in der .dfm gefunden...?

Logisch. Das steht erst drin, wenn es vom Standard (hier True) abweicht.

MfG Dalai


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz