AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE DFM DIFF ... IDE oder Komponente speichert falsch?
Thema durchsuchen
Ansicht
Themen-Optionen

DFM DIFF ... IDE oder Komponente speichert falsch?

Ein Thema von haentschman · begonnen am 15. Jun 2022 · letzter Beitrag vom 15. Jun 2022
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 10:00
Hallöle...

Es nervt ziemlich, gerade bei DevExpress, daß wenn man die Form speichert, u.a. die DFM Einträge "verschoben" sind.
Auch bei DevExpress:
Manchmal werden die Properties automatisch reingenommen, machmal wieder entfernt. Berühmt dafür:
Delphi-Quellcode:
DockedDockingStyle = dsNone
DockedLeft = 0
DockedTop = 0
DockingStyle = dsNone
Wer ist dafür zuständig. Die IDE oder die Fremdkomponente?

Jedes Mal den DIFF zeilenweise kontrollieren nervt.

...Luft abgelasssen.
Miniaturansicht angehängter Grafiken
diff.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#2

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 10:36
DFMs sind ein steter Quell der Freude. Wir ignorieren eigenmächtige DFM Änderungen wie diese oder irgendwelche Datumsänderungen in entsprechenden Controls einfach per VCS. Nur wenn tatsächlich absichtliche Änderungen durch einen Entwickler vorgenommen wurden, wird dieses DFM committet, alles andere verworfen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 10:47
Entscheidend für die Reihenfolge der Properties ist die Reihenfolge in der sie published sind.

Eine Möglichkeit für den Effekt den du da siehst wäre, wenn das Offsets Property in einem Vorfahren protected war und erst im Nachfahren published, jetzt aber schon im Vorfahren published ist. Solange du diese Änderung nicht im VCS übernimmst, wird dir das Diff erhalten bleiben.

Gemein wird es, wenn man die DFM mit unterschiedlichen Design-Packages öffnet (alt/neu). Dann geht es ständig hin und her.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
681 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 11:34
Mit diesem Irrsinn sollten ja alle Nutzer der neueren Versionen schon Erfahrung haben.

Denn Emba selber macht es ja nicht besser! Diese Explizit* Einträge die die ganze Zeit auftauchen und wieder verschwinden sind die Pest!

Was ich bei DevExpress furchtbar finde ist, bei einigen Komponenten ein Teil der Daten Binär zu speichern. Oder keinen Zugriff zur Laufzeit zu ermöglichen. Die TdxBar ist darin Spitze.
Oder TcxGrid wenn man den InplaceEditor verwendet. Das Ding ist ja schon zur Designzeit ein absolutes Verbrechen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 11:43
Denn Emba selber macht es ja nicht besser! Diese Explizit* Einträge die die ganze Zeit auftauchen und wieder verschwinden sind die Pest!
Gegen die Explicit* Einträge hilft der DDevExtensions Experte (Seite "Form Designer", "Do not store the Explicit* Properties into the DFM").
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 11:47
Zitat:
Nur wenn tatsächlich absichtliche Änderungen durch einen Entwickler vorgenommen wurden, wird dieses DFM committet, alles andere verworfen.
...das mache ich aus so. Das entbindet dich aber nicht von dem Anschauen der jeweiligen Zeile...könnte ja wichtig sein.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#7

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 11:53
Zitat:
Nur wenn tatsächlich absichtliche Änderungen durch einen Entwickler vorgenommen wurden, wird dieses DFM committet, alles andere verworfen.
...das mache ich aus so. Das entbindet dich aber nicht von dem Anschauen der jeweiligen Zeile...könnte ja wichtig sein.
Ich bin da gnadenlos auf Krawall gebürstet, wenn es nach einem Pull knallt, weil die DFM Änderung doch Absicht war, aber vergessen wurde reinzustellen, muss ich mit diesem Sonderfall leben, aber ich vergeude keine Zeit mit DFM Kontrolle (mehr).

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#8

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 12:10
Zitat:
Entscheidend für die Reihenfolge der Properties ist die Reihenfolge in der sie published sind.
@Embacadero: ...ist das sooo ein großer Aufwand das nach dem Alphabet, unhabhängig von der Position, zu sortieren und zu speichern?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#9

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 12:12
Da müsste man das vorher in eine Liste schreiben und erst am Ende in die DFM.
Zu viel Aufwand.

Es geht einfach in der Reihenfolge, wie es gefunden wird (RTTI).

Einige komponenten gehen auch davon aus, dass bestimmte Property zuerst geladen werden,
was dann bei Änderung der Reihenfolge knallt.
Aber hier sollten die Entwickler eh langsam mal lernen, dass man nicht ALLES sofort im SETTER behandelt, sondern beim csLoading das dan erst "einmal" im Loaded zu machen hat.




Nett ist auch, wenn man mit unterschiedlichen IDE-Versionen arbeitet. (z.B. noch das alte Delphi und Einige schonmal mit dem neuen Delphi)


Ich verwerfe sowas auch "meistens".
Bei kleinen Änderungen, lade ich dann nur das Gewollte hoch.

Bzw. bei großen Änderungen an der Unit dann auch mal sowas gleich mit (z.B. wenn sich an der DFM so viel geändert hat, dass Dieses eh nicht auffällt),
aber besser solche Änderungen als eigenen Commit, damit Sie bei Rückblicken (wann hatte sich was geändert) nicht störend einmischen (man die eine eigentlich geänderte Zeile nicht mehr sieht).



Natürlich könntest du nur beim Vergleichen, oder vor dem Commit einen Hook einsetzen, der die DFM sortiert, bzw. einen Comparer für DFMs hinzufügen, der es ohne Berücksichtigung der Reihenfolge vergleicht. (so ähnlich, wie es gern für XML Welche gibt, denen Formatierung und eventuell auch die Reihenfolge egal sind)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (15. Jun 2022 um 12:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#10

AW: DFM DIFF ... IDE oder Komponente speichert falsch?

  Alt 15. Jun 2022, 13:22
@Embacadero: ...ist das sooo ein großer Aufwand das nach dem Alphabet, unhabhängig von der Position, zu sortieren und zu speichern?
Das mag vielleicht möglich sein, aber es gibt auch Fälle, bei denen die Reihenfolge der Properties relevant ist. Beispiele aus der VCL sind TStandardColorMap, TActionManager, TMonthCalendar, TComboBoxEx, TComboBox. DevExpress hat da auch noch einige anzubieten.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:47 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