Delphi-PRAXiS

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/)
-   -   Änderungen im Design Editor werden beim komilieren nicht übernommen (https://www.delphipraxis.net/184813-aenderungen-im-design-editor-werden-beim-komilieren-nicht-uebernommen.html)

naht2k6 23. Apr 2015 10:33

Ä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.

Uwe Raabe 23. Apr 2015 10:55

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.

naht2k6 23. Apr 2015 13:32

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.

BadenPower 23. Apr 2015 13:54

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?

stahli 23. Apr 2015 14:19

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)

Uwe Raabe 23. Apr 2015 14:30

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.

himitsu 23. Apr 2015 14:39

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1298948)
Es könnte auch sein, daß die Pfade nicht mehr stimmen und die Dateien im Editor nicht die sind, die der Compiler sieht.

Einen Fehler in die Unit einbauen z.B. ein * an den Unitanfang und wenn es beim Kompilieren knallt .....

naht2k6 24. Apr 2015 10:39

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Danke für die Tips.

Zitat:

Auch schon einmal alle verdächtigen Projekt-Verzeichnisse nach .dcu's durchsucht und diese gelöscht?
Done -> Half nicht.

Zitat:

Ordnerkopien vermeiden ("MeinProjekt" aus "Projekte" nochmal als "MeinProjekt-Kopie" zu "sichern" kann durchaus Probleme machen)
Hab nochmal versucht das ursprüngliche Projekt zu portieren, ohne es zu bewegen. -> Half auch nichts.

Zitat:

Projekt bereinigen und neu erzeugen (falls noch nicht versucht)
-> Half nichts.

Zitat:

Es könnte auch sein, daß die Pfade nicht mehr stimmen und die Dateien im Editor nicht die sind, die der Compiler sieht.
-> Denk ich auch, aber wo kann ich die Pfade ändern. Alle Pfade, die ich einsehen kann, sind richtig.

Zitat:

Einen Fehler in die Unit einbauen z.B. ein * an den Unitanfang und wenn es beim Kompilieren knallt .....
-> Der Knaller überhaupt. Wenn ich mir die .dfm als text anzeigen lasse und dort einen Fehler reinbaue, wird sofort gemeckert und nicht mehr kompiliert. Wenn ich allerdings die Eigenschaften von einem Objekt verändere, wird es genau wie in der Design Ansicht nicht übernommen.

naht2k6 24. Apr 2015 10:48

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".

baumina 24. Apr 2015 10:51

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Im FormCreate kann man auch nichts visible setzen, dann schon eher im OnFormShow.

naht2k6 24. Apr 2015 10:52

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.

mkinzler 24. Apr 2015 10:56

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.

baumina 24. Apr 2015 10:59

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.

naht2k6 24. Apr 2015 11:03

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.

himitsu 24. Apr 2015 11:23

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Zitat:

Im FormCreate kann man auch nichts visible setzen, dann schon eher im OnFormShow.
Doch, kann man. (also bezüglich Komponenten auf der Form)

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:
TestButton.Visible:=true;
meint und ob das Programm dort überhaupt vorbei kommt. (unabhängig davon, ob der Code ja eigentlich sinnlos ist, dieses Problems betreffend)

stahli 24. Apr 2015 11:36

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Hast Du da ein Frame oder eine Frame-ähnliche Fremdkomponente im Formular?

himitsu 24. Apr 2015 13:04

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Zitat:

Zitat von naht2k6 (Beitrag 1299076)
Zitat:

Einen Fehler in die Unit einbauen z.B. ein * an den Unitanfang und wenn es beim Kompilieren knallt .....
-> Der Knaller überhaupt. Wenn ich mir die .dfm als text anzeigen lasse und dort einen Fehler reinbaue, wird sofort gemeckert und nicht mehr kompiliert. Wenn ich allerdings die Eigenschaften von einem Objekt verändere, wird es genau wie in der Design Ansicht nicht übernommen.

Wie und wo machst du das und wer knallt?
  • Falsch: Im FormDesigner (KontextMenü > Anzeigen als Text aka Strg+F12) ... hier mecket er natürlich, weil du ja grade diese Datei bearbeitest
  • Richtig: Mit einen TextEdior (nicht Delphi-IDE) und er meckert dann (hoffentlich) erst beim Compilieren, bzw. beim Programmstart (und natürlich, wenn die Unit im Formeditor geladen wird, aber da einfach Abbrechen/Nein anklicken, aber das ist egal, da es ja um den Compiler geht)

Uwe Raabe 24. Apr 2015 13:21

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.

naht2k6 24. Apr 2015 14:50

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.

Uwe Raabe 24. Apr 2015 15:34

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.

himitsu 24. Apr 2015 16:47

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Müste er dann nicht auch ein genglisches Windows haben? (oder zumindestens kein Deutsches)

Uwe Raabe 24. Apr 2015 17:02

AW: Änderungen im Design Editor werden beim komilieren nicht übernommen
 
Zitat:

Zitat von himitsu (Beitrag 1299177)
Müste er dann nicht auch ein genglisches Windows haben? (oder zumindestens kein Deutsches)

Es reicht, wenn in der Registry unter Locales der passende Eintrag steht. Sonst wäre es ziemlich aufwändig verschiedene Sprachen auszuprobieren. Auf die gleiche Weise kann man ja auch die IDE wahlweise in Englisch, Deutsch, Französisch oder Japanisch einstellen, auch wenn man nur ein Deutsches Windows hat. BDSSetLang macht auch nichts anderes, als diesen Registry-Eintrag zu schreiben.

SonoKlaus 26. Mai 2015 14:29

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 21:38 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