Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi .rc-Datei lässt sich nicht aus Projekt entfernen?!? (https://www.delphipraxis.net/108113-rc-datei-laesst-sich-nicht-aus-projekt-entfernen.html)

Pixelex 7. Feb 2008 12:18

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Jo das klappt ja nun, allerdings ist die PNG-Datei nur IN der Form transparent.

Wenn ich nun die Form wie folgt ausblende:

Delphi-Quellcode:
Splash.Brush.Style:=bsClear;
Splash.BorderStyle:=bsNone;
Dann ist die Form zwar weg, allerdings liegt der Schatten des Splash wieder auf Weiss. :( Und die GR32 Lösung kapier ich nicht. :(

Muetze1 7. Feb 2008 13:06

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
... da das PiNG die Transparenz erreicht, in dem es den Hintergrund des Images nimmt und anhand der Transparenzen das Bild reinrechnet und darstellt. Somit wird auf einem DC der Hintergrund der Form gemalt - und da passiert dann durch dein Brush.Style rein gar nichts, somit bleibt es bei dem weißen default Inhalt der MemDC. Mit einem Image bekommst du das so definitv nicht hin.

Pixelex 7. Feb 2008 20:08

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Zitat:

Zitat von Muetze1
... da das PiNG die Transparenz erreicht, in dem es den Hintergrund des Images nimmt und anhand der Transparenzen das Bild reinrechnet und darstellt. Somit wird auf einem DC der Hintergrund der Form gemalt - und da passiert dann durch dein Brush.Style rein gar nichts, somit bleibt es bei dem weißen default Inhalt der MemDC. Mit einem Image bekommst du das so definitv nicht hin.

Hm schade. Wie denn aber dann?

Muetze1 7. Feb 2008 20:41

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Gegenfrage: Muss es halbtransparenzen sein? Reichen nicht auch nur voll-transparenz-Bereiche?

Pixelex 7. Feb 2008 20:49

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Zitat:

Zitat von Muetze1
Gegenfrage: Muss es halbtransparenzen sein? Reichen nicht auch nur voll-transparenz-Bereiche?

Nein, es muss schon richtig Halb-Transparent sein, so sieht der Splash aus:
http://www.pixelex.net/stuff/splash.gif

Und der Splash soll natürlich vernünftig transparent auf dem Desktop-Hintergrundbild liegen.

Muetze1 7. Feb 2008 21:04

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Dann musst du viel Aufwand treiben. Hättest du dies nun verneint, dann hätte man relativ einfach mit Regions arbeiten können. So aber musst du dir einen Screenshot vom Desktop holen und darauf die PiNG Grafik malen lassen. Dann passt das mit der Halbtransparenz. Problem dabei: Fenster im Hintergrund welche nach dem Erstellen des Screenshots verschwinden, sich verschieben oder verändern, werden nicht aktualisiert in diesem Bereich. Auch wird das Verschieben des Splash Screens sehr aufwändig und Rechenintensiv.

Das wäre der grundlegende Weg.

Pixelex 7. Feb 2008 21:37

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Danke erstmal für eure Geduld! :D

Ich bin nun fast am Ziel. Habe nun doch Graphics32 installiert und so funktioniert es OPTISCH nun einwandfrei:

Delphi-Quellcode:
Bit := TBitmap32.Create;
LoadPNGintoBitmap32(Bit, ExtractFilePath(ParamStr(0)) + 'grafiken/pn_logo.png', Alpha);
setWindowLong(Handle, GWL_EXSTYLE,
getWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
BlendF.BlendOp := AC_SRC_OVER;
BlendF.BlendFlags := 0;
BlendF.SourceConstantAlpha := 255;
BlendF.AlphaFormat := AC_SRC_ALPHA;
P2 := Point(0, 0);
Size.cx := Bit.Width;
Size.cy := Bit.Height;
UpdateLayeredWindow(Handle, 0, nil, @Size, Bit.Handle, @P2, 0, @BlendF, ULW_ALPHA);
Jetzt bleibt lediglich das Problem: Wie lade ich 'grafiken/pn_logo.png' mit dem LoadPNGIntroBitmap32 aus meiner Resource-Datei? Nun braucht er die Datei ja wieder von extern. :/

Pixelex 8. Feb 2008 09:42

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Niemand ne Idee?

teebee 8. Feb 2008 10:49

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
LoadPNGIntoBitmap32 erwartet doch eigentlich einen Stream, die überladenen Version mit dem Filenamen erzeugt ja auch nur einen temporären Filestream. Also Resource-Stream erzeugen und den übergeben.

Gruß, teebee

Pixelex 8. Feb 2008 10:58

Re: .rc-Datei lässt sich nicht aus Projekt entfernen?!?
 
Zitat:

Zitat von teebee
LoadPNGIntoBitmap32 erwartet doch eigentlich einen Stream, die überladenen Version mit dem Filenamen erzeugt ja auch nur einen temporären Filestream. Also Resource-Stream erzeugen und den übergeben.

Gruß, teebee

Hm, kann ich dann einfach "ExtractFilePath(ParamStr(0)) + 'grafiken/pn_logo.png'" durch den Resourcen-Namen in meiner rc-Datei ersetzen oder wie würde das funktionieren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz