Darf ich mal ehrlich sein? Ich habe immer noch leichte Verständnisprobleme bei dieser ganzen Geschichte.
Zitat von
SHartmann:
Jetzt schreibt unser User aber ein Programm, von dem er weiss, dass es bei seinen Kunden nur auf Win2000 läuft. Jetzt würde er beim Design seine designten Forms gerne so sehen wie sie sein Kunde sieht. Da ein Mischbetrieb ja nicht möglich ist, muss dann eben alles Standard gestellt werden.
Genau das ist der Punkt wo ich so einen Schalter wunderbar hätte brauchen können.
Nee, bei mir ist genau das der Punkt, wo ich mein XP auf die Klassik-Ansicht umschalten und dann munter entwickeln würde. Wenn ich weiß, dass das Programm für 2000 (und ausschließlich dafür) gedacht ist, dann kann ich beim Entwickeln auf die Themes verzichten.
Oder willst du mir jetzt erzählen, dass der Kunde (= Entwickler) sich durch die klassische Ansicht plötzlich nicht mehr in seinem Windows zurechtfindet?
Also beim allem Respekt, es ändert sich lediglich das Aussehen und evtl. bei einigen Controls die Größe. Aber selbige bleiben alle an ihrem gewohnten Platz und behalten auch ihre gewohnten Beschriftungen.
Mit dem gleichen Satz könnte ich begründen, warum ein Anwender mein Programm unter XP grundsätzlich mit dem
Longhorn-Theme benutzen muss, und warum ich durch diverse Codezeilen zwangsweise verhindere, dass er
Blue,
Silver oder was auch immer benutzen darf.
Und wenn ich sowohl für 2000 und XP entwickle, dann muss ich damit rechnen, dass der Anwender Themes benutzt. Also werde ich mir mein Programm sowohl in der alten als auch in der neuen Ansicht anschauen. Und sollten wirklich gravierende Unterschiede im Design auftreten, dann schließe ich einen Kompromiss. Was weiß ich ... indem ich Controls ein bisschen verschiebe, bis es unter beiden Ansichten gut aussieht.
Aber ich würde keinesfalls einen Zwang ausüben und die Nutzung von Themes grundsätzlich verbieten, indem ich irgendwelche Schalter o.ä. setze.
Zitat:
Wenn man diese Eigenschaft aber in WindowsXP selbst einstellen kann, so wie NicoDE das beschrieben hat, kann man dieseEinstellungen einer EXE als Vorgabe mitgeben? Ähnlich der Versionsinfo?
Ich glaube nicht, da es ja eine Registry-Einstellung ist. Du könntest bestenfalls in einem Setup dafür sorgen, dass dieser Wert in die Registry (wo der ist, hatte ich ja schon geschrieben, aber es ist vllt. etwas untergegangen) geschrieben wird. Aber wie gesagt, das wäre schon wieder der Zwang, denn der User muss erst mal wissen, warum das Programm kein Theme benutzt und wo man das abstellen kann.
Zitat von
NicoDE:
Die Controls des 'Visuellen Designs' haben meist andere Abmaße als die des 'Standard-Designs'. Man müsste schon die Designs wechseln um zu brauchbaren Ergebnissen zu kommen...
So sehe ich das auch. Wenn man mal den o.g. Registryeintrag ausprobiert, dann ändert sich zwar das Design des Clientbereichs des Programms. Aber die Titelzeile bleibt unverändert größer (je nach eingestelltem Theme) und benutzt eben nur die alten Buttons.
Zitat von
SHartmann:
genau deshalb hätte ich ja gerne diese Umschaltmöglichkeit. Über die Windows XP-oberfläche kann unser Kunde das machen, aber irgendwie ist das zu umständlich.
Da euer Kunde aber der Entwickler ist, sollte er das auch entscheiden können. Wie gesagt, wenn
ich für 2000 entwickle und unbedingt das alte Design haben muss, dann schalte ich mein komplettes XP um. Bzw. habe ich als Entwickler für 2000 ohnehin vermutlich auch einen 2000er-Rechner bzw. eine 2000er-Partition.
Und wenn ich für 2000 und XP entwickle, dann ... Ach so, das sagte ich ja schon ...
Zitat:
Ausserdem wäre es schön wenn er für die erstellte Anwendung (in der auch ein mit Delphi vorcompiliertes Exe als Runtime mit enthalten ist) schon vorgeben kann, ob Themes überhaupt zulässig sind.
Wie gesagt, davon halte ich nichts. Wenn du einen tatsächlichen Grund hast, Themes zu verbieten, dann wäre das noch okay. Aber das die Anwendung vllt. auf Windows 2000 laufen könnte, ist kein Grund. Mal abgesehen davon, dass sämtliche Theme-Verbote unter 2000 ohnehin keinen Sinn machen.