| Autor |
Beitrag |
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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...
Beispiel:
www.delphi-forum.de/...p;highlight=manifest
Da gehts genau um dasselbe...
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 07.04.05 15:24
ich habe die komponente aber leider net 
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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.
Quelltext
und voilà: Die Anwendung benutzt unter Windows XP das Luna-Design. 
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
selber dumm ^^
|
|
CrazyLuke
      
Beiträge: 247
Windows XP Pro
Turbo Delphi Explorer, D2005 PE
|
Verfasst: 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
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Do 07.04.05 19:46
Hast du die Komponenten XPManifest auf dem Formular wie oben beschrieben? 
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
CrazyLuke
      
Beiträge: 247
Windows XP Pro
Turbo Delphi Explorer, D2005 PE
|
Verfasst: 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 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
      
Beiträge: 475
Win 7 SP1
D2005 PE
|
Verfasst: 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 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 09.04.05 19:34
also, ich hab das jetzt so gemacht:
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, nil) and (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:
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
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: 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 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
      
Beiträge: 849
|
Verfasst: Sa 09.04.05 20:19
_________________ Ciao, Sprint.
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Sa 09.04.05 21:18
F34r0fTh3D4rk 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
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: 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 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: So 10.04.05 15:29
F34r0fTh3D4rk 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 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: So 10.04.05 15:30
dann kann ich ja unbesorgt sein, danke 
|
|