![]() |
Änderungen im Design Editor werden beim komilieren nicht übernommen
Hallo allerseits. Ich habe ein Problem, das mich so ein bisschen überfordert :D
Ich bin vor kurzem von Delphi 2009 auf XE7 umgestiegen. Alles schien recht simpel. Ich hab mein derzeitiges Projekt einfach mit XE7 geöffnet und zwei bis drei Kleinigkeiten angepasst. Ein paar Tage später allerding, als ich etwas am Design ändern wollte, ging die Odyssee dann doch noch los. Änderungen, die ich im Designeditor vornehme, werden beim ausführen einfach ignoriert. Also wenn ich zB. ein Label verschiebe, wird mir das im Designeditor zwar richtig angezeigt. Im ausgeführten Programm ist es dann aber wieder da, wo es vorher war. Wenn ich ein neues Projekt von XE7 erstellen lasse, funktioniert es. Wenn ich das alte Project vom stand Delphi 2009 nocheinmal "portiere", habe ich das gleiche Problem wieder. Warscheinlich tauchte das folgende Problem schon öfter auf, und wurde bestimmt auch schon gelößt. Es ist in dem Fall leider schwer Google mit den richtigen Worten zu sagen, was ich will. |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Ich kann auch nur vermuten, aber wenn es mit einem neuen Projekt geht, mit dem portierten allerdings nicht, dann solltest du mal die dproj-Datei löschen und neu aufbauen lassen. Du musst dir nur deine Einstellungen vorher merken und danach wieder anpassen.
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Danke für die schnelle Idee. Hat leider nicht funktioniert. Hab die .dproj neu erstellen lassen. Als das nicht funktionierte, hab ich alle möglichen anderen Projekt Dateien neu erstellen zu lassen, das hat auch nicht funktioniert.
Ich hab auch die Main Form mal aus dem Projekt geschmissen und wieder eingefügt. Ohne Erfolg. Ich versteh es nicht....Die Eigenschaften der Objekte werden ja offensichtlich in der .dfm richtig abgespeichert. Also wenn ich im Design Editor etwas ändere, das Projekt speichere, schleiße und neu starte, werden mir die Änderungen richtig angezeigt. Der Pfad der .dfm Datei ist auch richtig. Irgendwo muss er zum kompilieren dann eine andere .dfm Datei herzaubern. Die Objekte zur Laufzeit verschieben/ändern, funktioniert übrigends. Gibt es vielleicht seid dem Delphi 2009 irgendwelche Funktionen, die ich nicht überblicke? Kann das was mit den LiveBindings zu tun haben? Ich hatte schon versucht die LiveBindings abzuschalten. Hatte auch nichts geholfen. |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Auch schon einmal alle verdächtigen Projekt-Verzeichnisse nach .dcu's durchsucht und diese gelöscht?
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Zwei kleine (verzweifelte) mögliche Versuche:
- Ordnerkopien vermeiden ("MeinProjekt" aus "Projekte" nochmal als "MeinProjekt-Kopie" zu "sichern" kann durchaus Probleme machen) - Projekt bereinigen und neu erzeugen (falls noch nicht versucht) |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Es könnte auch sein, daß die Pfade nicht mehr stimmen und die Dateien im Editor nicht die sind, die der Compiler sieht.
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Zitat:
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Danke für die Tips.
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Noch lustiger:
Ich habe mal einen Button namens "TestButton" auf die Form gepackt. Dieser wird wie erwartet beim ausführen nicht angezeigt. Nun bin ich einen Schritt weiter gegangen und hab in das OnFormCreate Event die Zeile "TestButton.Visible :=true; " gepackt. Wenn ich das nun ausführen will, klappt das auch. Kompiler meckert NICHT. Allerdings verursacht die oben genannte Zeile dann eine "Access Violation". |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Im FormCreate kann man auch nichts visible setzen, dann schon eher im OnFormShow.
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Klar geht das. Mit schon existierenden Objekten gehts zumindest. Nur mit dem neuen Button gehts nicht.
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Wenn man auf Fehlermeldungen steht ja.
Zu diesem Zeitpunkt, sind die Unterkomponenten noch nicht erstellt. Dies ist erst bei Loaded der Fall. |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Der Verdacht, dass es nicht am Formular, sondern an deinem Projekt liegt, weil es irgendwas unerwartet Seltsames tut, drängt sich mir immer mehr auf.
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Keine Ahnung, ich habs grad mit anderen Objekten probiert und es klappt. Ich erstelle die Objekte ja nicht zur Laufzeit. Es ist ja nicht so, dass sie noch nicht da sind.
Ich hab aber vorsichtshalber die Zeile "TestButton.Visible:=true" in den Code eines schon vorhandenen Buttons gepackt und bekomme den gleichen Fehler an der gleichen Stelle. |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Zitat:
Hier ist es einfach so, daß scheinbar nicht die gewünschte Unit/Form einkompiliert/reingelinkt wird, sondern was Anderes oder eine alte Version davon. Ich würde ja mal fragen, was dein Debugger zum Code
Delphi-Quellcode:
meint und ob das Programm dort überhaupt vorbei kommt. (unabhängig davon, ob der Code ja eigentlich sinnlos ist, dieses Problems betreffend)
TestButton.Visible:=true;
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Hast Du da ein Frame oder eine Frame-ähnliche Fremdkomponente im Formular?
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Zitat:
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Noch ein Schuss ins Blaue: Ist die DFM in der Projektdatei vorhanden oder wird sie nur implizit über eine uses-Anweisung einer anderen Unit eingebunden? Im zweiten Fall einfach mal das Form dem Projekt hinzufügen.
Es kann nämlich durchaus sein, daß der Compiler zwar Änderungen an den nicht direkt verwendeten pas-Dateien erkennt, nicht aber wenn lediglich die dfm-Datei geändert wurde. Ist aber, wie gesagt, nur eine Vermutung. |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Problem gelöst! Dank für eure Anteilnahme! :D
Folgendes war das Problem. Im Ausgabeverzeichniss der ".exe" befanden sich wohl noch ein paar Altlasten. Genau gesagt waren dort fünf Dateien, wovon mindestens eine das Problem war. Jeweils eine ".drc", ".enu", ".jdbg", ".map", ".rsm" (Weiter untersuchen kann ich das leider nicht. Mir fehlt grad etwas die Zeit :D) Nachdem ich diese gelöscht hatte, funktionierte auf einmal alles. Von Delphi wurden nur ".drc", ".map" und ".rsm" neu erstellt. In meinem Fall teilen sich mehrere Projekte (VC und Delphi) einen Ausgabeordner. Die Projekte sind von einander abhängig. So kann man immer schön alles debuggen, ohne großartigen Aufwand zu betreiben. Die ".exe" wird also weit weg vom Projektordner erstellt, sodass Delphi das Problem beim portieren nicht lösen/entschärfen konnte. |
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Dann war vermutlich die .enu das Problem. Die enthält nämlich die englischen (en-US) Versionen der DFM-Dateien.
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Müste er dann nicht auch ein genglisches Windows haben? (oder zumindestens kein Deutsches)
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Zitat:
|
AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
Hallo,
ich hatte genau das gleiche Problem. - compilieren OK - Codeänderungen OK - ein eingebauter Fehler in der dfm-Datei wurde beim compilieren sofort angezeigt Wenn ich im Formulardesigner etwas geändert habe war das neue Element nicht sichtbar. Auch eine Caption-Änderung wurde nicht übernommen Beim Zugriff auf die neue Komponente, z.B. NewButton.Left := 5; kam ein Fehler weil der Botton nicht kreiert wurde. Die Komponente wurde auch schön mit nil angezeigt. Ich habe dann alles bis auf die Dateien *.pas und die *.dfm entfernt. Anschließend habe ich ein neues Projekt erstellt und in der Projektverwaltung über hinzufügen die ganzen bisherigen *.pas hinzugefügt. Dann noch das alte Hauptformular aktivieren und das leere neue Formular löschen. Das ganze hat mich Stunden gekostet bis ich diese einfache Lösung gefunden habe. Ich hoffe das funktioniert bei dir auch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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