Delphi-PRAXiS
Seite 1 von 2  1 2      

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 6 > 2010 Migrationsproblem mit TForm (https://www.delphipraxis.net/160755-delphi-6-2010-migrationsproblem-mit-tform.html)

HJay 30. Mai 2011 08:59

Delphi 6 > 2010 Migrationsproblem mit TForm
 
Ich habe ein seltsames Problem. Wenn ich ein Delphi-6-Projekt erstmals in Delphi 2010 öffne und sofort F9 drücke, um zu compilieren, dann startet es korrekt mit maximierten MainForm. Alles geht soweit.

Wenn ich aber die MainForm vorher einmal anschaue, erscheint sie reduziert auf das erste Wort Titlebar (also etwa 50 px breit, 18 px hoch). Wenn ich dann starte, erscheint MainForm nur in dieser Breite und lässt sich nicht vergrößern oder verkleinern. Man kann zwischen maximized und nicht-maximized umschalten, in beiden Fällen bleibt das Fenster dann in der manuellen Größe und springt zwischen Seitenrand und irgendwo hin-und-her. In beiden Zuständen kann man mit der Maus aber kein Resize machen.

Zurück in Delphi sind alle Properties scheinbar korrekt gesetzt (keine constraints, WindowsState wsMaximized etc), aber egal wie man die Form in D2010 zieht, sie erscheint nie maximiert, sondern dann in der manuell eingestellten Größe, aber niemals geht ein Resize.

Ich bin ratlos. Andere Projekte ließen sich einwandfrei migrieren und alle Forms verhielten sich wie erwartet.

jaenicke 30. Mai 2011 09:16

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Auf was steht denn BorderStyle?

HJay 30. Mai 2011 09:21

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Borderstyle bsSizeable

Wie gesagt, das Projekt startet korrekt, wenn man direkt nach Migration startet. Es versagt, sobald man einmal MainForm sichtbar macht. Die kollabiert dann auf die Systemmenu-Icons, ist in der IDE größenverstellbar, aber danach zur runtime nicht mehr resizable. Völlig zum verzweifeln, weil scheinbar alles richtig ist.

Kann man vielleicht irgendwelche Dateien löschen, so dass die Form-Informationen neu aufgebaut werden?

Normalerweise haben ja alle Formulare in der IDE die gleiche Größe, die sie vorher auch in Delphi 6 hatten. Nur bei der MainForm versagt er irgendwie.

Dabei ist die MainForm gar nicht so originell. Ein Panel mit alignTop, eine Statusbar, viele SpeedButtons, ein paar EditLabels. Also nichts verrücktes. Kein Grund, warum die MainForm nicht korrekt dargestellt werden sollte. Ich habe in D6 vorher mal die MainForm geschlossen, mal offen gelassen. Alles egal. Sobald man sie einmal anschaut, hat sie die falsche Größe, danach ist es geschehen.

HJay 1. Jun 2011 09:57

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Keiner eine Idee? Es ist echt zum Verzweifeln... ist das noch niemandem passiert?

stahli 1. Jun 2011 10:09

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Hast Du nur Standardkomponenten im Einsatz? Ist das Formular als Text oder binär gespeichert?

HJay 1. Jun 2011 12:06

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Ja, nur Standardkomponenten.

Ich habe jetzt eine Teillösung erzielt, indem ich Height := Screen.Height und Width := ScreenWidth in MainForm.Create setze. Dann erscheint das maximierte Formular auch tatsächlich maximiert. Ob alles geht, kann ich noch nicht sagen, aber sieht ganz gut aus...

Dennoch keine Erklärung, warum MainForm überhaupt auf Mini-Größe zusammenschnurrt und sich anders verhält als unter D6. Wie gesagt, etliche andere Projekte konnten simpel migriert werden und ich erkenne hier keine Besonderheiten.

stahli 1. Jun 2011 13:51

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Vielleicht etwas mit dem MainMenu?
Ich hatte das mal in einen DataModule platziert, wobei es im MainForm angezeigt wurde, aber dessen Größe geändert hat.
Sonst weiß ich auch nicht...

zeras 1. Jun 2011 19:32

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Kannst du im Projekt mal nachschauen, ob die Initialize Abschnitt mit drin ist, wie unten?
Ansonsten noch nachtragen.

Delphi-Quellcode:
  Application.Initialize; <<<<<<<<<<<<<<<<<<<<<<<<<<Hier<<<<<<<<<<<<<<<<<

  Application.CreateForm(TForm11, Form11);
  Application.Run;

himitsu 1. Jun 2011 20:19

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Delphi-Quellcode:
Application.Initialize
ist in Delphi für Win32 vollkommen egal, da darin absolut nix mehr gemacht wird.
(das nötige machte Borland schon im Application.Create, also beim erstellen dieses objektes, bzw. im Initialization-Abschnitt der entsprechenden Units)

Sollte das also wirklich mal fehlen, dann ändert nichts.

Aber dennoch kann es nicht schaden dieses vorhanden zu lassen, vorallem da Lazarus dieses benötigt
und wer weiß was die Zukunft bringt. :angle2:

Stevie 1. Jun 2011 21:11

AW: Delphi 6 > 2010 Migrationsproblem mit TForm
 
Poste mal den dfm Code, wenn möglich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.
Seite 1 von 2  1 2      

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