AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frames deplaziert Elemente

Ein Thema von cybersnacker · begonnen am 4. Mär 2011 · letzter Beitrag vom 7. Mär 2011
Antwort Antwort
cybersnacker

Registriert seit: 24. Jan 2007
4 Beiträge
 
#1

Frames deplaziert Elemente

  Alt 4. Mär 2011, 16:20
Hallo Forum,

im Moment sitze ich daran, eine Software von Delphi 6 nach 2009 zu portieren. Einfache Sache dachte ich mir, doch seit geraumer Zeit werde ich von Delphi 2009 vorgeführt. Folgendes Szenario:

Die Software ist für ihre Benutzer in einzelne Ansichten zur Usability designed worden und jene Ansichten wurden auf Basis von Frames modelliert. Das Hauptformular bekommt alle Frames im Status none-visible und none-enabled, über eine Methode kann man dann ein einzelnes Frame sichtbar schalten. Klappt unter Delphi 6 wunderbar und ist auch so schon länger im Einsatz.

Nun kommt es zur Portierung. Faktisch wurden alle Formulare genau nachempfunden, aber jedes mal wenn ich Delphi 2009 schliesse und wieder öffne, werden einzeln platzierte Elemente um ein paar Pixel verschoben. Absolut mysteriös. Ein paar genauere Stichpunkte kann ich dazu noch festhalten:

1. Im Optionenmenü unter VCL Designer ist die Rastergröße auf 4/4 gesetzt. Tatsächlich werden die Elemente um vier Pixel im vergleich zu ihrer ursprünglichen Position verschoben. Ein Verzicht auf die Designer-Richtlinien und der Funktion am Raster ausrichten hilft auch nicht weiter.

2. Richtet man von Hand alles aus und speichert sowie schliesst Delphi, so kann man in der dfm Datei die genwünschten Koordinerungen einsehen, passt also. Startet man Delphi erneut und öffnet das Frame, so bleiben die Werte im dfm auch original getreu, jedoch via ALT+F12 kann man schon wieder sehen, wie einzelne Elemente deplaziert wurden und tatsächlich ist es auch so im Formulardesigner.

3. Es ist egal, ob die Frames im Hauptformular eingebunden sind oder nicht. Er verschiebt mir meine Elemente immer. Da jedoch alle Frames vom Design her immer fast gleich aussehen, ergo gleiche Positionen zu einzelnen "gleichen" Elementen auf verschiedenen Frames, kann ich noch sagen, das er es nicht bei allen Frames macht. Nein, bei vier fast identisch aussehenden Frames gibt es eins, wo die Elemente passen, die übrigen drei weichen ab.

4. Es sind alle Updates installiert, sowie IDEFixPack und DDevExtensions. Keine Abhilfe. Das Netz scheint solch ein Problem auch nicht zu kennen (oder ich bin zu doof, passende Suchkriterien zu bestimmen).

5. Auf die passenden Attribute im Objekt Inspektor denke ich schon zu achten. So ist align immer alNone, Anchors sind passend gesetzt, alignWithMargins immer false sowie AutoSize false.

6. Elemente fixieren hilft mir auch nicht im Hauptformular und den dort eingeführten Frames weiter. Werden die Frames fixiert und somit deren untergeordneten Elemente, so sind sie beim nächsten Laden wieder frei bewegbar sowie deplaziert.

Es geht inzwischen echt an meine Substanz, einerseits denke ich, dass nach über 2 Jahren ich doch nicht der erste Mensch sein kann, dem dies passiert, aber warum finde ich dazu nichts im Netz. Ich glaube auch nicht, dass Delphi einen Automatismus integriert hat, um Elemente abweichend nach ihren Angaben aus der dfm zu plazieren, aber wenn doch, hinter welcher Option verbirgt sich denn dies? Und des Weiteren werden ja meisst die Fehler doch auf OSI Level 8 begonnen Rettet meine Haare

Ja viel Text um ein einziges Problem... Zum Nachvollziehen noch ein Archiv angehängt, in dem Frame Update01 passen die Elemente genau, bei dem Frame Update02 wird pnl_gridspace.width = 924 und height = 420 im Formulardesigner gesetzt sowie btn_abbrechen.top = 472. Dies halt abweichend zur dfm.

Irgend jemand eine Idee?

Gruss && schoenes WE

// Benno
Angehängte Dateien
Dateityp: zip Archive.zip (9,3 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

AW: Frames deplaziert Elemente

  Alt 4. Mär 2011, 17:49
Hallo Benno,

ich habe zwar keine Lösung. Aber ich habe lediglich nur das Frame Update2 in einem Delphi 2010 geöffnet und habe bei der Komponente pnl_gridspace die gleichen Abweichungen zwischen DFM-Datei und OI wie Du. Nur beim Button btn_abbrechen, wird alles korrekt angezeigt.

Hast Du mal die Frames neu erstellt und die Werte direkt in der DFM-Datei eingetragen ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
cybersnacker

Registriert seit: 24. Jan 2007
4 Beiträge
 
#3

AW: Frames deplaziert Elemente

  Alt 4. Mär 2011, 19:29
Hast Du mal die Frames neu erstellt und die Werte direkt in der DFM-Datei eingetragen ?
danke Rolf für Deine Anregungen...

Jedoch drehe ich schon seit einigen Tagen an diesem Problem. Zuerst dachte ich es läge an dem vollzogenem C&P aus Delphi 6. Darauf hin habe ich jedoch die Frames alle neu per Hand erstellt, sowohl aus der IDE heraus als wie auch mal die dfm's zu Fuss editiert.

Es gibt hier bei mir noch etliche weitere Frames, wo einzelne Kontroll-Elemente abweichen.

Lustig ist auch die Beobachtung, verschiebt man die Werte entgegengesetzt der von Delphi vorgenommenen Änderung, so stehen die Elemente beim nächsten Laden an der richtigen Position, um bei darauffolgendem Öffnen des Projektes in der IDE wieder verschoben zu werden, bis es einer fiktiven Position Delphis genehm ist.

Sehr dubios...

Eine Idee ist mir eben noch kurz vor Feierabend ins Auge gestochen; anscheinend gibt es die Eigenschaften explizit(width|height|top|...) die Delphi für einige Controls in die dfm's unter Umständen einbaut. Vielleicht kann man damit was drehen.
Lässt sich von mir zuhause dank fehlendem Delphi und favorisierendem Lazarus über das WE nur nicht nachvollziehen.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

AW: Frames deplaziert Elemente

  Alt 4. Mär 2011, 19:55
Eine Idee ist mir eben noch kurz vor Feierabend ins Auge gestochen; anscheinend gibt es die Eigenschaften explizit(width|height|top|...) die Delphi für einige Controls in die dfm's unter Umständen einbaut.
Hallo Benno,

was mir noch aufgefallen ist, bei der Komponente pnl_gridspace benutzt Du Anchors innerhalb eines Panels, könnte das eventuell auch noch ein Grund sein ? Ich habe ein ähnliches Problem in einem Programm, dass im Designer die Komponenten nicht richtig dargestellt werden und im Programm aber richtig dargestellt werden. Wie sieht das ganze denn aus, wenn Du das Programm anzeigen lässt ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Frames deplaziert Elemente

  Alt 4. Mär 2011, 20:03
Ich habe die Frames mal mit D2009 geöffnet und nichts ungewöhnliches festgestellt.
Eigentlich hätte sich doch auch Dein D6er Projekt mit 2009 grundsätzlich öffnen und bearbeiten lassen müssen...!?

Vielleicht passt mit Deiner D2009-Installation etwas nicht?
Miniaturansicht angehängter Grafiken
frames.jpg  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

AW: Frames deplaziert Elemente

  Alt 4. Mär 2011, 20:06
Hallo Stahli,

hast Du die Werte aus dem OI mit den Werten in der DFM-Datei verglichen, mal ganz doof gefragt ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Frames deplaziert Elemente

  Alt 4. Mär 2011, 20:33
Aha, anscheinend macht die Nutzung komplexer (verschachtelter) Anchors Probleme.
Genauer habe ich das aber nicht untersucht (keine Zeit).

Evtl. wäre alClient/alTop mit AlignWithMargins unproblematischer.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
cybersnacker

Registriert seit: 24. Jan 2007
4 Beiträge
 
#8

AW: Frames deplaziert Elemente

  Alt 7. Mär 2011, 13:59
Hallo,

Wochenende wieder vorbei und weiter mit diesem Thema, zumindest für mich

Gut, mit den Aussagen Eurerseits schliesse ich hiermit einen Anwendungsfehler meinerseits aus (und ja, auch bei laufender Anwendung werden die Kontrollelemente alle delpaziert) und muss mir jetzt einen alternativen Weg zur Anzeige von Formularen machen.

Der Tipp von Stahli ist da schon einmal wertvoll: AlignWithMargins. Wird gleich ausprobiert.

Aber was gibt es in der Welt der Delphi-Entwicklung denn sonst noch an gängigen Möglichkeiten, komplexe Formulare darzustellen. Designtechnisch widerstrebe ich ein wenig, alles auf Panels zu entwerfen, um diese sichtbar/ausgeblendet zu schalten oder auch mit normalen Forms, um bei einem Wechsel zum nächsten die Position zu übermitteln und hide/show...?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 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