| Autor |
Beitrag |
Xabitire
      
Beiträge: 114
Win Xp, Win Vista
D6 PE, D7 PE
|
Verfasst: Di 06.01.09 17:07
Hi Leute,
wer kennt das Problem nicht! Man hat gerade eine ordentlich aussehende Programmoberfläche für sein Programm zusammengebastelt und programmiert z.B unter Vista mit eingeschaltetem Aero-Design! Jetzt kommt man an einen anderen PC mit z.B. XP, wo nur das Standard-XP-Design aktivirt ist! Und schon stimmen der untere und der rechte Rand nicht mehr so, wie sie eigentlich sollen!
Das liegt natürlich daran, dass verschiedene Designs aktiviert sind! Und da ich keine Lust hab bei jedem Projekt, bei jedem Form, das Aussehen immer wieder manuell anzupassen, hab ich mir überlegt, eine Funktion zu schreiben, die beim Programmstart die Werte korrigiert und alles ist wieder in Butter!
Hat auch soweit ganz gut geklappt, einziges Problem ist, das wenn auf meinem Form eine Komponente liegt, wo die Anchors-Werte nicht wie beim Standart so eingestell sind:
Quelltext 1: 2: 3: 4:
| akLeft = True akTop = True akRight = False akBottom = False |
sondern z.B. genau umgekehrt, gibt es wieder unterschiede, da das ganze scheinbar am Formrand und nicht am Rand der Programmoberfläche ausgerichtet wird.
Daher die Frage, ob vielleicht jemand eine einfache Lösung kennt, um diesen Effekt zu umgehen oder viellecht eine Idee hat wie ich das in meine Funktion einbauen könnte, dass die Absände bei jeder Componente wieder korriegiert werden?
MFG Blackbird8690
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von Xabitire am So 11.01.09 13:10, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 06.01.09 17:13
Xabitire hat folgendes geschrieben : | wer kennt das Problem nicht! Man hat gerade eine ordentlich aussehende Programmoberfläche für sein Programm zusammengebastelt und programmiert z.B unter Vista mit eingeschaltetem Aero-Design! Jetzt kommt man an einen anderen PC mit z.B. XP, wo nur das Standard-XP-Design aktivirt ist! Und schon stimmen der untere und der rechte Rand nicht mehr so, wie sie eigentlich sollen! |
Hmm, das ist mir bei meiner Software noch nie aufgefallen, das muss ich mal ausprobieren.
Eigentlich sahen alle meine Programme unter Vista und soweit ich bisher gesehen habe auch Windows 7 genauso aus wie unter XP was das reine Programmfenster angeht. Ich probiere es gleich einmal aus.
Eine mögliche Lösung ist evtl. ClientWidth / ClientHeight selbst zu setzen, denn das sollte unabhängig vom Fensterrand sein.
|
|
Xabitire 
      
Beiträge: 114
Win Xp, Win Vista
D6 PE, D7 PE
|
Verfasst: Di 06.01.09 17:34
Es kann ja auch sein, das dieser Effekt bei neueren Delphi-Versionen nicht mehr auftritt! Da ich zur Zeit allerdings nur Delphi 7 installiert hab kann ich das leider nicht nachprüfen!
jaenicke hat folgendes geschrieben : | | Eine mögliche Lösung ist evtl. ClientWidth / ClientHeight selbst zu setzen, denn das sollte unabhängig vom Fensterrand sein. |
Das mache ich ja schon, nur bringt das nichts, wenn die Anchors-Werte einer Komponente so wie oben beschrieben gesetzt sind!
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Do 08.01.09 22:54
Dann setze die Anchors-Werte doch selbst??
|
|
Xabitire 
      
Beiträge: 114
Win Xp, Win Vista
D6 PE, D7 PE
|
Verfasst: Sa 10.01.09 15:42
Das wollte ich eigentlich ja grad vermeiden, da mir dafür der Aufwand-Nutzen-Faktor zu gering ist! Deswegen wollte ich es ja automatisieren!
Gäbe es nicht irgendwie die Möglichkeit, zu überprüfen, welche Komponenten auf einem Form liegen, dann zu prüfen, ob diese Komponente die wie oben genannte Anchors-Werte besitzten und dann Left- und Top-Werte neu zu setzen!
Ich dachte halt da an einen Algorithmus, der das automatisch macht und ich ihn nur noch zum Programmstart aufrufen muss
Ich weis halt nicht, ob es überhaupt möglich ist, daher die Frage! 
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 10.01.09 15:56
Ich habe jetzt gesehen was du meinst. Ich habe meine Komponenten normalerweise nicht so frei auf den Formularen platziert, dass das ein Problem gewesen wäre. Ich werde einmal schauen ob ich dafür eine gute Lösung finde, vielleicht steht ja auch etwas in der Quality Central oder so. 
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Sa 10.01.09 21:54
naja, mit self.components[] kann man alle Kompornenten ermitteln.
Dann könnte man die Werte z.B. aus einer ini lesen.
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: So 11.01.09 11:57
Kann mal jemand einen Screenshot posten, damit man als externer nachvollziehen kann, wo das Problem liegt?
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
Xabitire 
      
Beiträge: 114
Win Xp, Win Vista
D6 PE, D7 PE
|
Verfasst: So 11.01.09 13:12
Hab oben im ersten Post zwei Bilder angehängt! Man kann den Unterschied am Abstand vom Button im unteren Ecken zum Rand deutlich erkennen!
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 11.01.09 14:25
Wenn man es umgekehrt macht und unter XP z.B. ein TEdit erstellt mit dem vorgeschlagenen Standardabstand zum Rand, dann ist unter Vista da gar kein Rand mehr.
Screenshots kann ich später noch anhängen, ich teste das auch unter Windows 7. Und ich habe auch bereits eine Idee wie das zu beheben geht. Die ist nur noch nicht so ideal, funktioniert aber automatisch. 
|
|
Xabitire 
      
Beiträge: 114
Win Xp, Win Vista
D6 PE, D7 PE
|
Verfasst: Do 22.01.09 16:36
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Do 22.01.09 19:33
bedenke bei deinen Versuchen auch, dass der Anwender nicht nicht die Designs ändern kann, sondern auch
dass er die Schriftskalierung Hoch bzw. runtersetzen kann.
Ich stand vor dem gleichen Problem und fand eine Lösung bei DevExpress (LayoutControl). Ist zwar nicht für umso,
das teil deckt aber wirklich alle Eventualitäten ab und bietet noch einige Schmankel mehr.
:-)msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
Xabitire 
      
Beiträge: 114
Win Xp, Win Vista
D6 PE, D7 PE
|
Verfasst: Do 22.01.09 19:51
Danke!
Werd mir das mal genauer ansehen! Ich hoffe das Problem ist damit ein für alle mal gelöst und ich kann mich wieder auf den Inhalt meiner Programme konzentrieren 
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 22.01.09 20:35
Xabitire hat folgendes geschrieben : | Hat sich da jetzt eigentlich noch was getan, oder hats doch nicht so geklappt?  |
Naja, schon irgendwie, aber verschiedene Schriftarten, Scaled usw. machen das nicht so einfach. Ich hab bisher eine Lösung und jede Menge Sonderfälle, bei denen man es jedesmal etwas ändern muss...
Eine richtige fertige Lösung wäre da sicher besser, weil die dann auch immer klappt. Nicht, dass dann auf einem PC das doch vollkommen falsch aussieht.
|
|
|