Entwickler-Ecke

Programmierwerkzeuge - Standard-Unit / *.dpr von Delphi verändern


bensch - Mo 22.03.10 18:16
Titel: Standard-Unit / *.dpr von Delphi verändern
Kennt jemand zufällig eine Möglichkeit, die Standard-Unit von Delphi zu verändern bzw. anzupassen?

Komplizierte Sache, ich versuchs mal zu erklären: Ich möchte meine mit Delphi 6 selbst geschriebenen Programme im XP-Style darstellen, dazu habe ich eine manifest-Datei unter C:\Programme\Delphi6\Lib abgelegt. Um jetzt die Visual Styles bei einem neuen Programm zu aktivieren, müsste ich in jedes neue Projekt unter implementation -> {$R WinXP.res} einfügen.

Diesen Code-Fetzen möchte ich aber nicht jedes mal manuell in die Unit schreiben. Deswegen suche ich nach einer Möglichkeit, die Standard-Unit (Unit1.pas, die sich gleich nach dem Start von Delphi öffnet) so zu verändern, dass von Anfang an bereits der Code vorhanden ist.

Die Standard-Unit sieht eigentlich so aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.


Ich möchte aber, dass diese so ausschaut:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$R WinXP.res}

end.


Kann man das irgendwie realisieren?


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 22.03.2010 um 18:05


SvenAbeln - Mo 22.03.10 19:08

Dies ist aber doch die Default Unit von jedem TForm.
Wenn du nun mehrere Formulare in deinem Projekt benutzt, hast du auch mehrfach deine Resource-Datei eingebunden und das gibt Fehler im Linker wegen doppelten Resourcen.

Ich denke am besten wäre dein {$R WinXP.res} noch in der *.DPR aufgehoben.


bensch - Mo 22.03.10 19:54

Das wäre auch möglich, aber wie gesagt, ich möchte das nicht jedesmal manuell eingeben. Deswegen suche ich nach einem Weg, dass dieses {$R WinXP.res} bereits standardmäßig bei Beginn eines neuen Projekts vorhanden ist.

Gibt es da irgendwo in den Tiefen der Delphi-Verwaltung eine dpr-Vorlage, die beim Start von Delphi einfach geladen wird? Denn dann könnte ich dort den Code einfügen und dieser wäre von nun an bei jedem neuen Projekt vorhanden.


Delete - Mo 22.03.10 22:57

Wie viel neue Projekte fängst du am Tag an? 10? 20?

Eine Lösung wäre die Objektablage: Formular wie gewünscht bauen und dann in die Objektablage legen.


bensch - Di 23.03.10 12:05

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Eine Lösung wäre die Objektablage: Formular wie gewünscht bauen und dann in die Objektablage legen.


Was soll das bringen?

Habe meinen Code eingefügt, anschließend bin ich unter Tools -> Objektanlage auf "Seite hinzufügen" gegangen, dort einen Seitennamen hinterlegt und fertig. Aber was soll da jetzt passieren?

Beim starten eines neuen Projekts ist mein Code nicht im Projekt oder in der Unit und ich müsste ihn wieder manuell einfügen...


Delete - Di 23.03.10 12:22

Zumindest, wenn du ein neues Projekt beginnst, kannst du jetzt über die Objektablage dein Formular wählen mit deinem Code.


bensch - Di 23.03.10 13:05

Ah ok. Das wäre natürlich ein Lösungsvorschlag, aber da muss es doch auch eine einfachere Lösung geben?


platzwart - Di 23.03.10 13:53

Ja, es einfach sein lassen! Den Nutzern deiner Software den fragwürdigen XP-Style aufzuzwingen, ist auch net so das wahre...


Yogu - Di 23.03.10 13:58

user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
Ja, es einfach sein lassen! Den Nutzern deiner Software den fragwürdigen XP-Style aufzuzwingen, ist auch net so das wahre...

Der XP-Stil wird nicht "aufgezwungen". Die Ressource (sofern es dieselbe ist, wie in späteren Delphi-Versionen verwendet wird) lässt das Fenster so aussehen, wie alle anderen Fenster unter der aktuellen Einstellung des Betriebssystems auch aussehen. Hat der Benutzer den XP-Style aktiviert, ist mit dieser Ressource auch das Fenster des eigenen Programms davon betroffen, wenn der XP-Stil abgeschaltet ist, bleibt auch das Programm im klassischen Stil. Ohne die Ressource bildet das Programm vielmehr eine Ausnahme, sofern der Stil aktiviert ist, da es dann klassisch angezeigt wird. :idea:


bensch - Di 23.03.10 14:57

Richtig, der XP-Style wird nicht aufgezwungen, er wird quasi nur aktiviert.

Übrigens ist XP-Style auch etwas falsch formiliert, da die WinXP.res allgemein den neuen Style aktiviert. Also bekommt das Fenster unter Vista auch den Vista-Style usw... Damit sehen halt die Programme nicht nach Win2000 aus.