Autor Beitrag
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 07.04.05 15:17 
hallo

wie kann ich das windows XP in meiner anwendung nutzen, ist der style schon bei einer delphi version mit dabei, also wird das programm im winXP style angezeigt ?

ich finde die buttons und progressbars bei windows xp nämlich sehr hübsch ^^

sollte aber möglichst elegant sein und keine nachteile mit sich bringen ^^


danke
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 07.04.05 15:22 
In der Komponentenpalette unter Win32 befindet sich die Komponente XPManifest. Die aufs Formular tun und fertig.

Die funktioniert so:
Durch das einbinden der Unit wird auch die darin eingebundene Ressource eingebunden. Darin ist ein Manifest enthalten, welches den XP-Stil auslöst.

Aber das hatten wir schon ein paarmal hier im Forum, die Frage... :roll:

Beispiel:
www.delphi-forum.de/...p;highlight=manifest
Da gehts genau um dasselbe...
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 07.04.05 15:24 
ich habe die komponente aber leider net :lol:
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 07.04.05 15:57 
Man muss vermutlich schon ziemlich dumm sein und den XML-Code im gelinkten Beitrag von jaenicke nicht sehen. Diese XML-Datei wird mit dem Namen der Anwendung und der zusätzlichen Endung ".manifest" im Ordner des Programms gespeichert, also bspw.
ausblenden Quelltext
1:
Project1.exe.manifest					

und voilà: Die Anwendung benutzt unter Windows XP das Luna-Design. :roll:
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 07.04.05 17:16 
ja nee, aber ich meine damit, dass sowas wie:
Zitat:

Macht das aber nicht mit Delphi 6 (oder früher), denn dann können die erzeugten Programme, die eine TImageList benutzen, nicht mehr unter Win9x/ME/NT/2k ausgeführt werden, weil die ImageList Daten im ComCtrl32 Version 6 Format gespeichert sind.

nicht auftritt :twisted:

selber dumm ^^
CrazyLuke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 247

Windows XP Pro
Turbo Delphi Explorer, D2005 PE
BeitragVerfasst: Do 07.04.05 18:24 
Hi!

Wie siehts denn unter 2005 PE aus? Was muss ich machen, damit da der XP-Style unterstützt wird? Denn sowohl die importierten Projekte als auch Delphi selber sieht aus wie ein mit Delphi 6 erstelltes Programm, d.h. bis auf den Rahmen und den helleren Grauton im Hintergrund ist nix luna-like...

Ich dachte, 2005 unterstützt das automatisch?

MfG
CrazyLuke

_________________
"Was kommt vor 'Schmetterlinge im Bauch'? Raupen im A*sch!" (Bastian Pastewka, "Pastewka", Sat1)
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 07.04.05 19:46 
Hast du die Komponenten XPManifest auf dem Formular wie oben beschrieben? :evil: :roll:

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
CrazyLuke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 247

Windows XP Pro
Turbo Delphi Explorer, D2005 PE
BeitragVerfasst: Do 07.04.05 20:15 
Oh, so umständlich? Ich hab gedacht, da XP schon so lange auf dem Markt ist, wird Delphi das schon standardmäßig unterstützen. Ich hatte gar niocht erst nach so ner Komponente geguckt, sondern bin die ganzen Delphi-Prtogrammoptionen durchgegangen, ob da was fälschlicherweise aktiviert oder deaktiviert sei...

Na dann okay, es klappt :)

MfG
CrazyLuke

_________________
"Was kommt vor 'Schmetterlinge im Bauch'? Raupen im A*sch!" (Bastian Pastewka, "Pastewka", Sat1)
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 09.04.05 18:07 
weiterer nachteil, ich muss die manifest datei immer mit reinpacken, und einbinden funzt auch net, ich könnte sie natürlich der ressource hinzufügen und dann wieder entpacken und wenn das programm beendet ist löschen, müsste ich aber vorher abfragen, ob das system winxp ist, so hätte ich für jede version immer das korrekte design, aber geht das net auch einfacher ?
Stefan-W
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: Sa 09.04.05 18:38 
wenn du die Oben beschriebene Komponente nimmst geht das alles von alleine...
dh, nur die Kompo aufs Form ziehen und das sieht bei XP nach XP aus und sonst halt wie das Normale Win
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 09.04.05 19:10 
hab aber die project1.exe.manifest datei, wird die automatisch benutzt, wenn ich die einbinde, weil sonst habe ich je die option, die nur auszupacken, wenn es sich um winXP handelt


Zuletzt bearbeitet von F34r0fTh3D4rk am Sa 09.04.05 19:58, insgesamt 1-mal bearbeitet
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 09.04.05 19:34 
also, ich hab das jetzt so gemacht:
ausblenden volle Höhe 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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
implementation

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

function IsXP: boolean;
begin
  result:= false;
  if Win32MinorVersion = 1 then
    result:= true;
end;

function ExtractResTo(Instance: LongWord; BinResName, NewPath, ResType: PChar): Boolean;
var
  ResSize,
  HG,
  HI,
  SizeWritten,
  hFileWrite: LongWord;
begin
  result := false;
  HI := FindResource(Instance, BinResname, ResType);
  if HI <> 0 then
    begin
      HG := LoadResource(Instance, HI);
      if HG <> 0 then
        begin
          ResSize := SizeOfResource(Instance, HI);
          hFileWrite := CreateFile(NewPath, GENERIC_READ or GENERIC_WRITE,
            FILE_SHARE_READ or FILE_SHARE_WRITE, nil, CREATE_ALWAYS,
            FILE_ATTRIBUTE_ARCHIVE, 0);
          if hFileWrite <> INVALID_HANDLE_VALUE then
            begin
              result := (WriteFile(hFileWrite, LockResource(HG)^, ResSize,
                SizeWritten, niland (SizeWritten = ResSize));
              CloseHandle(hFileWrite);
            end;
        end;
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if IsXP then
  if ExtractResTo(hInstance, 'XPStyle''Project1.exe.manifest', RT_RCDATA) then
    showmessage('XP-Style aktiv!');
end;

meine .rc datei sieht so aus:
ausblenden Quelltext
1:
XPStyle BINRES "Project1.exe.manifest"					

dementsprechend ist auch die manifest datei in der ressource, aber das entpacken schlägt fehl warum ? kann ich die datei dann im onclosequery wieder löschen ?
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 09.04.05 20:07 
Ich hab schon etwas in einem anderem Beitrag dazu geschrieben. Da hab ich auch ein kleinen Tool von mir veröffentlicht, mit dem es möglich ist solche Manifest Ressourcen zu erstellen.

Hier ist der Beitrag dazu. Es enthällt auch das Programm:

www.delphi-forum.de/....php?p=237911#237911

_________________
Popov
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 09.04.05 20:10 
ich hab ja eine manifest datei, sie ist auch in der ressource, es funzt aber net, und extrahieren geht auch net :?
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: Sa 09.04.05 20:19 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
also, ich hab das jetzt so gemacht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
function IsXP: boolean;
begin
  result:= false;
  if Win32MinorVersion = 1 then
    result:= true;
end;


Ob es sich um Windows XP handelt, würde ich eher so prüfen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
function IsWinXP: Boolean;
begin
  Result := (Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion = 5and (Win32MinorVersion = 1);
end;

_________________
Ciao, Sprint.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 09.04.05 21:18 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
ich hab ja eine manifest datei, sie ist auch in der ressource, es funzt aber net, und extrahieren geht auch net :?


Was meinst du mit Extrahieren? Die Ressource muß nur eingebunden sein und nichts mehr. Das System liest das Programm und prüft ob die Manifest Ressource drinn ist. Wenn ja, dann wird sie gelesen und fertig. Du mußt nichts machen. Mit dem Einbinden der Ressource ist deine Arbeit erledigt. Und wenn es nicht funzt, dann hast du die Ressource falsch gemacht.

_________________
Popov
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 09.04.05 21:26 
Ich hab mir die Beiträge oben noch einmal durchgelesen. Also das ist doch nicht euer Ernst was ihr da macht, oder? Ihr packt das in die Ressource und dann entpackt ihr das? Also Mathias hat das schon so nett beschrieben:

MathiasSimmack hat folgendes geschrieben:
Man muss vermutlich schon ziemlich dumm sein ...


Anstelle das umzusetzten was man euch hier sagt, werden hier Konstruktionen gebastelt die geradezu lächerlich sind. Die Ressource Manifest Datei wird nicht entpackt.

_________________
Popov
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 10.04.05 14:57 
es geht ja darum, das das programm auch unter win98 und co läuft tut es das denn ?
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 10.04.05 15:29 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
es geht ja darum, das das programm auch unter win98 und co läuft tut es das denn ?
Ja, das Betriebsystem weiss ja nichts von alle dem und macht deshalb auch nichts damit. Nur WinXP sucht nach der Resource und verarbeitet die wenn nötig.
Logisch, oder?

Achja: Deine Fragestellungen sind so unpräzise, dass deshalb eine riesen Verwirrung entstanden ist. :(

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 10.04.05 15:30 
dann kann ich ja unbesorgt sein, danke :D