Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   IDE zerstört die Uses-Liste - Was macht Ihr dagegen? (https://www.delphipraxis.net/177534-ide-zerstoert-die-uses-liste-macht-ihr-dagegen.html)

Mavarik 12. Nov 2013 12:07

IDE zerstört die Uses-Liste - Was macht Ihr dagegen?
 
Hallo Zusammen!

Boh geht mir das auf den S***!

Jeden mal wenn ich irgend etwas in den Projekt Einstellungen ändere,
zu Beispiel eine Unit hinzufüge oder das aktive Startformular ändere,
ist meine Uses-Liste kaputt.

Dadurch ist der Source auch nie gleich der Darstellung im Projektverwaltungsfenster.

Wahrscheinlich liegt es an den INDEF's in der Uses-Liste, damit kann die IDE (manchmal) nicht umgehen.

Was macht Ihr dagegen?

Grüsse Mavarik

Uwe Raabe 12. Nov 2013 12:12

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Mavarik (Beitrag 1235499)
Was macht Ihr dagegen?

Ich vermute mal, es geht hier um die DPR. Da vermeide ich weitestgehend irgendwelche manuellen Eingriffe bzw. beschränke die auf die Bereiche, die von der IDE in Ruhe gelassen werden. Gegen die IDE würde man sonst gegen Windmühlen kämpfen.

Der schöne Günther 12. Nov 2013 12:14

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Direktiven wie IFDEF und REGION sind immer alleine in ihrer Zeile, ebenso wie jede Unit. Damit hatte ich nie Probleme...

Mavarik 12. Nov 2013 12:17

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1235502)
Zitat:

Zitat von Mavarik (Beitrag 1235499)
Was macht Ihr dagegen?

Ich vermute mal, es geht hier um die DPR. Da vermeide ich weitestgehend irgendwelche manuellen Eingriffe bzw. beschränke die auf die Bereiche, die von der IDE in Ruhe gelassen werden. Gegen die IDE würde man sonst gegen Windmühlen kämpfen.

Ja aber wie machst Du das wenn Du Units im Projekt includen musst die Plattform abhängig sind...

Beispiel

Delphi-Quellcode:
{$IFDEF IOS}
  Apple.Inifiles in '..\CrossPlatform Utils\Apple.Inifiles.pas',
  Apple.Utils in '..\CrossPlatform Utils\Apple.Utils.pas',
  iOS.Services in '..\CrossPlatform Utils\iOS.Services.pas',
  Xplat.Inifiles in '..\CrossPlatform Utils\Xplat.Inifiles.pas',
  Xplat.Services in '..\CrossPlatform Utils\Xplat.Services.pas',
  Xplat.Utils in '..\CrossPlatform Utils\Xplat.Utils.pas',
{$ELSE}
{$IFDEF ANDROID}
// xyz
{$ENDIF}
{$ENDIF}
???

Mavarik

Mavarik 12. Nov 2013 12:19

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Geil ist was entsteht...
Delphi-Quellcode:
  MYFMX in 'NoPlattform\MYFMX.pas' {,
  AnonThread in '..\CrossPlatform Utils\AnonThread.pas',
  Apple.Inifiles in '..\CrossPlatform Utils\Apple.Inifiles.pas',
  Apple.Utils in '..\CrossPlatform Utils\Apple.Utils.pas',
  iOS.Services in '..\CrossPlatform Utils\iOS.Services.pas',
  Xplat.Inifiles in '..\CrossPlatform Utils\Xplat.Inifiles.pas',
  Xplat.Services in '..\CrossPlatform Utils\Xplat.Services.pas',
  Xplat.Utils in '..\CrossPlatform Utils\Xplat.Utils.pas';

{$R *.res},
  AnonThread in '..\CrossPlatform Utils\AnonThread.pas',
  Apple.Inifiles in '..\CrossPlatform Utils\Apple.Inifiles.pas',
  Apple.Utils in '..\CrossPlatform Utils\Apple.Utils.pas',
  iOS.Services in '..\CrossPlatform Utils\iOS.Services.pas',
  Xplat.Inifiles in '..\CrossPlatform Utils\Xplat.Inifiles.pas',
  Xplat.Services in '..\CrossPlatform Utils\Xplat.Services.pas',
  Xplat.Utils in '..\CrossPlatform Utils\Xplat.Utils.pas',
  iOSApi.MapKit in '..\MapKit\iOSApi.MapKit.pas';

{$R *.res}
Mavarik

Union 12. Nov 2013 12:19

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Mavarik (Beitrag 1235499)
Hallo Zusammen!
Was macht Ihr dagegen?

Höllisch gut aufpassen. Das ist ja lange bekannt und ein "Won't Do" in den QCs.

Mavarik 12. Nov 2013 12:25

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Union (Beitrag 1235509)
Zitat:

Zitat von Mavarik (Beitrag 1235499)
Hallo Zusammen!
Was macht Ihr dagegen?

Höllisch gut aufpassen. Das ist ja lange bekannt und ein "Won't Do" in den QCs.

LOL... Das hilft echt weiter...

Uwe Raabe 12. Nov 2013 12:29

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Mavarik (Beitrag 1235506)
Ja aber wie machst Du das wenn Du Units im Projekt includen musst die Plattform abhängig sind...

Genau das vermeiden.

Als erstes versuche ich, diese Units in der DPR nicht direkt zu verwenden, sondern diesbezüglichen Code in eine separate Unit zu verlagern. In der DPR steht dann allenfalls ein Aufruf einer Methode. In dieser separaten Unit kann ich dann aber ohne Probleme mit den IFDEFs arbeiten. Ich hatte ehrlich gesagt noch keinen Fall, wo dieser Ansatz nicht ging.

Mavarik 12. Nov 2013 12:31

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1235514)

Genau das vermeiden.

Als erstes versuche ich, diese Units in der DPR nicht direkt zu verwenden, sondern diesbezüglichen Code in eine separate Unit zu verlagern. In der DPR steht dann allenfalls ein Aufruf einer Methode. In dieser separaten Unit kann ich dann aber ohne Probleme mit den IFDEFs arbeiten. Ich hatte ehrlich gesagt noch keinen Fall, wo dieser Ansatz nicht ging.

OK Dann hast Du aber "nur" Units die auch in Deinem Projekt Suchpfad liegen...

Und Du hast nie alle Units in der Projektverwaltung!

Mavarik

ChrisE 12. Nov 2013 12:36

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1235514)
Als erstes versuche ich, diese Units in der DPR nicht direkt zu verwenden, sondern diesbezüglichen Code in eine separate Unit zu verlagern. In der DPR steht dann allenfalls ein Aufruf einer Methode. In dieser separaten Unit kann ich dann aber ohne Probleme mit den IFDEFs arbeiten. Ich hatte ehrlich gesagt noch keinen Fall, wo dieser Ansatz nicht ging.

Und wie würdest du es lösen mit z.B. Speichermanager-Units wie FastMM, die als erstes in der DPR-Uses stehen sollen? Wenn ich die per
Delphi-Quellcode:
{$IFNDEF Release}
einbinden will habe ich echt ein Problem, oder gibt es hierfür eine elegante Lösung?

Uwe Raabe 12. Nov 2013 13:32

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Mavarik (Beitrag 1235517)
OK Dann hast Du aber "nur" Units die auch in Deinem Projekt Suchpfad liegen...

Richtig! Es kann aber auch sein, daß die unterschiedlichen Build-Targets einfach unterschiedliche Suchpfade haben. Dann können die Units sogar gleich heißen. Manchmal verwende ich auch entsprechende Namespaces für die verschiedenen Targets. Dann werden die Unit-Namen auch nicht voll qualifiziert. In beiden Fällen spart man sich die IFDEFs (vorausgesetzt die spezifischen Units haben halbwegs kompatible Interfaces).

Zitat:

Zitat von Mavarik (Beitrag 1235517)
Und Du hast nie alle Units in der Projektverwaltung!

Das geht sowieso nicht, wenn die Targets unterschiedliche Units erfordern. Man kann zwar in der DPR noch mit IFDEFs rummachen, aber in der dproj geht das schon nicht mehr so einfach.

Stevie 12. Nov 2013 13:44

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von ChrisE (Beitrag 1235519)
Und wie würdest du es lösen mit z.B. Speichermanager-Units wie FastMM, die als erstes in der DPR-Uses stehen sollen? Wenn ich die per
Delphi-Quellcode:
{$IFNDEF Release}
einbinden will habe ich echt ein Problem, oder gibt es hierfür eine elegante Lösung?

Du bindest nicht die "richtige" Unit umgeben von Compiler Direktiven in die dpr sondern eine eigene:

Delphi-Quellcode:
unit MeinMemDings;

interface

{$IFNDEF Release}
uses
  ShareMem;
{$ENDIF}

implementation

end.

Uwe Raabe 12. Nov 2013 13:51

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
Zitat:

Zitat von Stevie (Beitrag 1235540)
Zitat:

Zitat von ChrisE (Beitrag 1235519)
Und wie würdest du es lösen mit z.B. Speichermanager-Units wie FastMM, die als erstes in der DPR-Uses stehen sollen? Wenn ich die per
Delphi-Quellcode:
{$IFNDEF Release}
einbinden will habe ich echt ein Problem, oder gibt es hierfür eine elegante Lösung?

Du bindest nicht die "richtige" Unit umgeben von Compiler Direktiven in die dpr sondern eine eigene:

Exakt! :thumb:

himitsu 12. Nov 2013 14:05

AW: IDE zerstört die Uses-Liste - Was macht Ihr dagegen?
 
Zitat:

Zitat von Mavarik (Beitrag 1235517)
OK Dann hast Du aber "nur" Units die auch in Deinem Projekt Suchpfad liegen...

Und Du hast nie alle Units in der Projektverwaltung!

Was nicht in der Projektverwaltung/DPR drin ist, steht auch nicht im IDE-Insight zur Verfügung. (F6 > Form oder Unitname > Enter)

PS: http://www.delphipraxis.net/177516-f...zerstoert.html :stupid:

himitsu 12. Nov 2013 14:08

AW: IDE Zerstört die uses Liste - Was macht Ihr da gegen?
 
*doppelt*

Mavarik 12. Nov 2013 14:10

AW: IDE zerstört die Uses-Liste - Was macht Ihr dagegen?
 
Zitat:

Zitat von himitsu (Beitrag 1235549)
Zitat:

Zitat von Mavarik (Beitrag 1235517)
OK Dann hast Du aber "nur" Units die auch in Deinem Projekt Suchpfad liegen...

Und Du hast nie alle Units in der Projektverwaltung!

Was nicht in der Projektverwaltung/DPR drin ist, steht auch nicht im IDE-Insight zur Verfügung. (F6 > Form oder Unitname > Enter)

PS: http://www.delphipraxis.net/177516-f...zerstoert.html :stupid:

Eben... Super lästig!

musicman56 12. Nov 2013 17:11

AW: IDE zerstört die Uses-Liste - Was macht Ihr dagegen?
 
Hallo,

Zitat:

Eben... Super lästig!
...aber durchaus einfach und schnell zu beheben. Dieses und ähnliche Probleme löse ich mit meinem kleinen selbstgeschriebenen Tool, welches die gewünschten "Manipulationen" oder "Erweiterungen" an der .dpr übernimmt.

Das Tool wird aus dem Tools-Menü der IDE gestartet und erhält als Parameter (mit dem Makro "$PROJECT") das aktuelle Projekt und beinhaltet dann die Optionen die ich brauche. Z.B. die Uses-Liste sortieren (bestimmte Units zuerst, den Rest alfabetisch), oder über Dateiauswahl eine Unit hinzufügen. Hier nervt(e) es mich immer, dass Formulare automatisch erzeugt werden (aktiviere ich wahlweise mit einer Checkbox) und neue Units immer am Ende der Uses-Liste hinzugefügt werden.

In deinem Fall kannst du ja anhand des Dateipfades bestimmen, in welchen Define-Bereich die Unit hinzugefügt werden soll.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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