AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Änderungen in Units werden nicht erkannt

Änderungen in Units werden nicht erkannt

Ein Thema von cckLoud · begonnen am 11. Sep 2021 · letzter Beitrag vom 14. Sep 2021
Antwort Antwort
Seite 2 von 2     12
cckLoud

Registriert seit: 19. Nov 2020
Ort: Worms
33 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Änderungen in Units werden nicht erkannt

  Alt 12. Sep 2021, 10:32
Seit wann werden die im Projekt aufgenommen? Nein, natürlich nicht!
Klaus Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.641 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Änderungen in Units werden nicht erkannt

  Alt 12. Sep 2021, 10:40
Diese Option gibt es schon eine Weile: Resources and Images
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
cckLoud

Registriert seit: 19. Nov 2020
Ort: Worms
33 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Änderungen in Units werden nicht erkannt

  Alt 12. Sep 2021, 14:55
Na, das sind doch die icons usw, Bilder halt. Das kenne ich schon, aber ich habe eine xml-resource (als RCDATA). Und ich sehe nicht, was ds in meinem Fall für Vorteile bringen sollte.

Also nein, die .res Datei wurde von mir nicht mit ins Projekt aufgenommen. Und in der DProj finde ich sie auch nicht.
Klaus Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.641 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Änderungen in Units werden nicht erkannt

  Alt 12. Sep 2021, 15:28
Noch eine Erkenntnis: D10 scheint auch die Res-Datei zu puffern, auch wenn die gar nicht "zur Bearbeitung" steht. Jedenfalls werden Änderungen auch hier erst dann wirksam, wenn das Projekt geschlossen wird!
Ich verstehe noch nicht ganz, inwieweit Änderungen an den Res-Dateien in der IDE überhaupt eine Rolle spielen sollten. Schließlich werden die doch erst vom Linker in die Anwendung eingebunden. Wie äußert es sich denn, wenn D10 die Res-Datei puffert?

Das kenne ich schon, aber ich habe eine xml-resource (als RCDATA).
Der Resourcentyp kann selbstverständlich auch RCDATA sein.
Miniaturansicht angehängter Grafiken
12-09-_2021_15-26-04.png  
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.222 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Änderungen in Units werden nicht erkannt

  Alt 12. Sep 2021, 15:29
Ich kann nicht im Detail folgen, was Du da machst...
... aber vielleicht ist das Stichwort "Propertyeditor" etwas für Dich: https://wiki.delphigl.com/index.php/...tenentwicklung

Zumindest könnte das ein Weg sein, um bestimmte Änderungen nicht außerhalb von Delphi veranlassen zu müssen.

Kann natürlich auch sein, dass das kein sinnvoller Weg für Dich ist oder einfach zu aufwendig.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
cckLoud

Registriert seit: 19. Nov 2020
Ort: Worms
33 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Änderungen in Units werden nicht erkannt

  Alt 12. Sep 2021, 20:20
@ stahli: Ja, das wäre ein Thema gewesen für einen Resourceneditor. Hab ich aber nicht hingekriegt (obwohl ich schon den einen oder anderen geschrieben hab), ist einfach zu komplex. Ist der einfachere Weg, den ich gewählt habe!
@ Uwe Raabe
Ja, hat es auch nicht oder sollte es eigentlich nicht haben. Es scheint mir, als würde D alle beim Compilieren verwendeten Dateien puffern, zum Zwecke eines Geschwindigkeitsgewinns bei den nächsten Compilationen. Ist mir halt aufgefallen, dss die geänderte Resource nicht eingebunden wird...
Klaus Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.641 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Änderungen in Units werden nicht erkannt

  Alt 12. Sep 2021, 22:11
Ist mir halt aufgefallen, dss die geänderte Resource nicht eingebunden wird...
Änderst du denn die .res Datei oder die .rc Datei oder den Inhalt, auf den in der .rc referenziert wird?

Wie wird die .res genau eingebunden?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
cckLoud

Registriert seit: 19. Nov 2020
Ort: Worms
33 Beiträge
 
Delphi 10.3 Rio
 
#18

AW: Änderungen in Units werden nicht erkannt

  Alt 13. Sep 2021, 01:11
Nur den Inhalt! Die rc bleibt gleich, ist aber ja auch nicht relevant für das Programm. Die dient nur brcc32 zum erstellen der res.
Klaus Kaiser

Geändert von cckLoud (13. Sep 2021 um 01:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.641 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Änderungen in Units werden nicht erkannt

  Alt 13. Sep 2021, 10:58
OK, dann solltest du den Weg über Ressourcen und Bilder vielleicht doch in Betracht ziehen. Dabei gibst du ja neben dem Ressourcenamen und dem Ressourcentyp insbesondere den Dateinamen an. Diese Datei wird dann dem Projekt hinzugefügt und taucht auch im Projektmanager auf. Das bringt jetzt zwei Vorteile:
  1. Es wird deutlich, dass eben diese Datei zum Projekt gehört und nicht nur eine .res oder .rc Datei.
  2. Da weder eine res- noch eine rc-Datei existiert, wird die Datei bei jedem Compiliervorgang in eine res-Datei (genauer die *.dres) eingebunden und mit eingelinkt.

Ohne diesen Schritt musst du die res-Datei manuell außerhalb der IDE erzeugen, wenn sich dein Dateiinhalt ändert.

Alternativ kannst du auch die .rc Datei deinem Projekt hinzufügen. Das erzeigt dann einen solchen Eintrag in der dpr: {$R 'test.res' 'test.rc'} Der sorgt dann auch dafür, dass die res-Datei immer neu erzeugt wird. Das funktioniert wie gesagt aber nur, wenn dieser Eintrag in der dpr steht und die .rc in das Projekt aufgenommen wird. In einer Unit wird diese Zeile nur wie ein simples {$R test.res} behandelt.

Mir persönlich gefällt der erste Ansatz aber deutlich besser, weil damit die eigentliche Datei im Projekt aufgenommen wird. Die rec und res sind dann nur Zwischenprodukte, die ja mit den eigentlichen Sourcen und Daten nichts zu tun haben.

Außerdem kann man viele solcher Dateien (txt, html, xml) direkt in der IDE anzeigen und bearbeiten (teilweise auch mit passender Syntaxhervorhebung).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
cckLoud

Registriert seit: 19. Nov 2020
Ort: Worms
33 Beiträge
 
Delphi 10.3 Rio
 
#20

AW: Änderungen in Units werden nicht erkannt

  Alt 14. Sep 2021, 08:16
Also ich sehe die Vorteile nicht. Das programmierte System erfolgt völlig geschlossen. In einem eigenen Programmm wird das Grid, das später verwendet wird, definiert: ich sage da zB, wieviele Spalten/Zeilen es haben soll, wie breit die Spalten sein sollen, welche Überschrift und welchen Datentyp, welche Formatierung und Ausrichtung sie haben (dabei auch ein Datentyp "InterpretedString", der einen eingegebenen String wie "(2+3)*(4+(3-2)) auswertet und das Ergebnis ermittelt; die Source für den Parser hatte ich damals im Delphi-Treff eingetellt)) und ob Zellen der Spalte editierbar sind oder nicht. Weiterhin kann ich Namen für spalten vergeben, über die später auch zugegriffen werden kann (das erhöht die Übersichtlichkeit des Programmcodes ungemein!). Und, wenn sie aus einer DB stammen, kann die Quelle (Table, Field) angegeben werden. Das alles passt genau ins Konzept meiner anderen Controls wie tXedit, tXMemo, tXcombobox usw.

Aus den Angaben wird vom Programm eine XML erzeugt, die dann automatisch in einer Resource ungewandelt wird. Die res-Datei kann direkt in die Source der zugehörigen Unit "eingebunden" werden(natürlich nur das "{$R myresource.res}").

Der zugehörige Wrapper, in der Unit eingebunden, liest die XML aus der Resource und behandelt das Grid entsprechend. Es wacht zB, darüber, dass in eine Integer-Spalte nur Zeichen eingeben werden können, die zu einer Integer gehören, dass in einer Float-Spalte auch eine gülige Float steht. Er liefert mir einen "oncellchanged-Event, einen Zugriff alla "Cell.asFloat" uvm. Er liefert Zeilen. und Spalten/Zeilensummen, Funktionen zun leeren/löschen von Zeilen/spalte, zum Austauschen uvm. Und als Highlight (finde ich jedenfalls) kann der Inhalt des Grids aus einer DB geladen bzw, gespeichert werden - alles ohne weiteren Code.

Wie sollte da der Eintrag in das Projekt einen Vorteil bringen? Denk daran, was mein Ursprngliches Problem war: Delphi erkannte die Änderung IN DER UNIT (in der die "{$R myresource.res}" per Programm eingetragen wurde! Und wenn es die nicht erkannte, warum sollte es dann die Änderung an der Res erkennen?

Und die Aussicht "taucht auch im Projektmanager auf" gruselt es mich noch mehr. Das Projekt, für das ich das mache (wg/Umstellung von D7 auf D10/D11) hat gereits 500 - 600 Einträge im Projektmanager - und da sollen nun nochmal 200 - 300 dazu kommen? Ehrlich: nein danke!
Klaus Kaiser
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 18:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf