AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Automatisches hinzufügen von System.Actions deaktivieren
Thema durchsuchen
Ansicht
Themen-Optionen

Automatisches hinzufügen von System.Actions deaktivieren

Ein Thema von backdraft · begonnen am 11. Nov 2020 · letzter Beitrag vom 11. Nov 2020
Antwort Antwort
Seite 1 von 2  1 2      
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#1

Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 11:15
Hallo zusammen,

gibt es eine Möglichkeit das automatische hinzufügen von der IDE zu unterbinden, dass System.Actions oder System.ImageList hinzugefügt wird?
Mein Problem ist, dass ich manche Forms habe, die sich zwei Anwendungen teilen.
Die eine läuft schon unter 10.3, die andere noch unter XE, weil diese noch nicht umgestellt wurde.

Öffne ich eine Form in 10.3 und ändere was, sind dann immer die System.Actions mit drin, was dann wieder erst auffällt, wenn man in XE kompiliert.

Vielleicht gibt es ja einen Knopf, wo man das ausschalten kann.

Danke für eure Tipps
Oliver
Oliver
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 11:40
Du siehst doch in deiner Versionsverwaltung direkt
  1. Dass die Dateien verändert wurden
  2. Und was hinzu gefügt wurde

Wenn du diese Änderungen nicht übernimmst ist doch alles in Butter. Aber ja, nervig ist es schon.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 12:25
Leg doch einfach in deinem XE-Projekt eine leere System.Actions.pas an.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 12:29
Alternativ kannst du auch im XE-Projekt einen Unit-Alias für System.Actions anlegen: z.B. System.Actions = System
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#5

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 12:34
Vielleicht gibt es ja einen Knopf, wo man das ausschalten kann.
Einen solchen Knopf gibt es nicht. Aber es gibt mind. zwei Möglichkeiten um das Problem zu umgehen:

1. Auf den Rechnern, welche noch mit Delphi XE arbeiten, einfach Dummy-Units System.Actions.pas und System.ImageList.pas erstellen und im Library-Pfad ablegen (aber nicht in die Versionsverwaltung übernehmen):
Code:
unit System.Actions;
// nur für Delphi XE2 und älter erforderlich.
interface
implementation
end.
Delphi XE compiliert diese Units einfach mit; der Fehler tritt nicht mehr auf.


2. Die IDE per IFDEFs überlisten. Nachstehenden Code in alle betroffenen Forms einfügen:
Code:
unit <DeinFormName>;

{$DEFINE USE_SYSTEM_ACTIONS}
{$IF CompilerVersion < 24} {$UNDEF USE_SYSTEM_ACTIONS} {$ENDIF}
 
uses
  SysUtils,
  {$IFDEF USE_SYSTEM_ACTIONS}
  System.Actions,
  System.ImageLst,
  {$ENDIF}
  ...
Diese "umgekehrte" Logik ist erforderlich, weil die IDE bzw. Code Completion die CompilerVersion nicht auswertet. Die naheliegende Idee auf {$IF CompilerVersion >= 24} zu prüfen funktioniert darum nicht (erst recht nicht in einer $include-Datei).
Die IDE (ab XE3) erkennt, dass System.Actions und System.ImageList schon in der Uses-Liste vorhanden ist, und fügt diese nicht mehr hinzu. Die ältere IDE hat sowieso kein Verlangen, diese Units hinzuzufügen; und der Compiler wird durch das IFDEF davon abgehalten, diese Units zu compilieren.

HTH
Achim
Achim
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 16:06
Vielleicht gibt es ja einen Knopf, wo man das ausschalten kann.
Code:
unit <DeinFormName>;

{$DEFINE USE_SYSTEM_ACTIONS}
{$IF CompilerVersion < 24} {$UNDEF USE_SYSTEM_ACTIONS} {$ENDIF}
 
uses
  SysUtils,
  {$IFDEF USE_SYSTEM_ACTIONS}
  System.Actions,
  System.ImageLst,
  {$ENDIF}
  ...
Das mit einer Direktive hab ich versucht.
Wenn ich NUR auf DEFINEs aus der Unit zugreife klappt das auch, dass er das nicht ergänzt.
So wie in deinem Code.

Ich hatte dann eine Compilers.inc eingebettet und gegen DELPHI_XE2_UP abgefragt, weil es so auch bei den anderen Units oder unserer Library ist.
Das klappt dann nicht - er ergänzt es trotzdem.

Ich wusste aber gar nicht, dass man "CompilerVersion" abfragen kann.
Seit wann geht das?
Das löst auf jeden Fall mein Problem, danke
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 16:11
Ich wusste aber gar nicht, dass man "CompilerVersion" abfragen kann.
Seit wann geht das?
Ich denke mal seit Delphi 6: Compiler Versions
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 16:12
Hmm, aber folgendes klappt wieder nicht

Code:
{$IF CompilerVersion >= 24}
System.Actions,
{$ENDIF}
Wohl ein Parser Problem
Scheint wirklich nur auf Lokale DEFINEs zu reagieren.
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 16:24
Das hatte Achim doch schon geschrieben, dass die IDE diese Bedingungen nicht auswertet. Unter anderem deswegen bin ich auch kein Freund dieser Art Lösung.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Automatisches hinzufügen von System.Actions deaktivieren

  Alt 11. Nov 2020, 16:25
Das hatte Achim doch schon geschrieben, dass die IDE diese Bedingungen nicht auswertet. Unter anderem deswegen bin ich auch kein Freund dieser Art Lösung.
Sorry, man sollte zu Ende lesen.
Aber wenn die Lösung zum Greifen nach ist ...
Oliver
  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 11:13 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