Autor Beitrag
bensch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mo 22.03.10 18:16 
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:

ausblenden 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:

ausblenden 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


Zuletzt bearbeitet von bensch am Mo 22.03.10 20:38, insgesamt 1-mal bearbeitet
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: 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...

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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.