AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wahlweise Resource einbinden / Abfrage mit if then else
Thema durchsuchen
Ansicht
Themen-Optionen

Wahlweise Resource einbinden / Abfrage mit if then else

Ein Thema von TypusMensch · begonnen am 29. Jun 2004 · letzter Beitrag vom 29. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#1

Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:01
Ich nochmal:
Habe gerade den tollen Code gefunden, wo man alle VCL-Komp. in XP-Style darstellen kann.

Ich füge dafür halt einfach die Resource ein:
{$R DESIGN.RES} Jetzt möchte ich aber das der Nutzer selber entscheiden darf, ob diese geladen werden darf oder nicht. Ich hatte mir das so gedacht:
if MessageDlg('XP Style?',mtConfirmation, [mbYes,mbNo],0) = mrYes then {$R DESIGN.RES} Is aber leider nicht so. Er lädt sie in jedem Fall. Was kann ich dagegen tun? Wie kann ich das realisieren???

ThX im vorraus.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:07
Moin!

Gute Idee, aber ein grundsätzliches Problem:

Die {$x } sind Compiler Anweisungen - das bedeutet der Compiler wertet diese beim compilieren aus und verhält sich entsprechend der Option - und der Compiler interpretiert keinen Code. Mit anderen Worten: Dem Compiler ist die IF Anweisung egal - darum kümmert er sich nicht, wenn er die Resource einbindet und umgekehrt: Wenn die IF Anweisung ausgeführt wird, dann ist die Resource schon in der EXE enthalten, da der Compiler schon fertig.

Ausserdem, das was du mit der RES Datei da in deine EXE hinzufügst wird direkt von Windows XP ausgelesen und beim Start deines Programmes bekommt dieses eine andere DLL untergeschoben, die dann das XP Aussehen durchdrückt...

MfG
Muetze1
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:09
also gibt es keine möglichkeit??? das is ja mies...
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:22
gibt es keine abfrage die der compiler versteht? compilerabfragen o.ä.???
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:26
Moin!

Doch, auch der Compiler (eigentlich wäre es bei C z.B. der Präprozessor der das interpretiert/verarbeitet) kennt IF Abfragen:

Delphi-Quellcode:
{$IFDEF WIN32}
Code
{$ENDIF}
Die Zeile Code wird nur compiliert (also kommt nur in die EXE), wenn die EXE auf WIN32 bzw. für WIN32 compiliert wird. Aber du kannst da keinen MessageDialog einbinden. Du solltest lieber in die Richtung suchen die RES Datei einzubinden und schauen ob die WinAPI einen Möglichkeit bietet für dein Programm den Style auszuschalten (was ich nicht glaube, da die DLL beim starten des Programms dir untergeschoben wird von Windows und er nach dem Laden schlecht die DLL entfernen, eine neue Laden und die Verbindungen zu allen Objekten wiederherstellen kann).

MfG
Muetze1
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#6

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:31
Mh zur Laufzeit gibt es nur eine sehr komplizierte Lösung und zwar müsstest du die Ressourcen des eigenen Programms editieren, in etwa sieht das so aus:

Programmstart
Abfrage
umbenennen der eigenen exe
kopieren der umbenannten datei auf die exe
umeditieren der ressourcen (rein/raus)
start der exe (mit parametern)
selbst beenden
gestartete exe muss umbenannte datei löschen

Ob das lohnt?
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#7

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:36
Du kannst das auch (unschön) so lösen, dass die Ressource nicht ins Programm eingebunden wird, sondern der XP-Style als ".manifest"-Datei mitgeliefert wird. (Programm: beispiel.exe --> XP-Stil: beispiel.exe.manifest) Was in der manifest-Datei stehen muss, dürfte in der OH zu finden sein.
Und die IF-Abfrage bennent dann die Datei halt um oder löscht/erzeugt sie - jeweils nach Wunsch des Benutzers.
Auch nicht die sauberste Lösung, aber einfacher als an der exe selber rumzuschrauben

Gruß
Stephan

edit: siehe auch "XP-Style"
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:41
Moin!

Damit er aber die Manifest Datei oder die Resourcen bearbeiten kann, muss ein Code laufen - also die EXE selber. Und wenn die läuft, dann ist der Zeitpunkt wo Windows die Manifestdatei auswerten (bzw. das Manifest in der EXE) schon vorbei.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#9

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:42
Dann muss man nach dem Ändern der Einstellungen (und umbenennen/löschen...) halt das Prog neu starten..
Oder reicht das nicht?

Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
TypusMensch

Registriert seit: 29. Aug 2003
Ort: Goth-A
182 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Wahlweise Resource einbinden / Abfrage mit if then else

  Alt 29. Jun 2004, 10:43
Ja is doch mal ganz einfach!!! Danke für die Hilfe. Das klappt doch wunderbar!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 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